1.Elastyske stack: analyze fan feiligens logs. Ynlieding

1.Elastyske stack: analyze fan feiligens logs. Ynlieding

Yn ferbân mei it ein fan 'e ferkeap yn Ruslân fan it Splunk-logging- en analytyksysteem, ûntstie de fraach: wat kin dizze oplossing ferfange? Nei't ik tiid trochbrocht hie om mysels fertroud te meitsjen mei ferskate oplossingen, besleat ik in oplossing foar in echte man - "ELK stack". Dit systeem duorret tiid om op te setten, mar as gefolch kinne jo in heul krêftich systeem krije foar it analysearjen fan de status en fuortendaliks reagearje op ynsidinten fan ynformaasjefeiligens yn 'e organisaasje. Yn dizze searje artikels sille wy de basis (of miskien net) mooglikheden fan 'e ELK-stapel besjen, beskôgje hoe't jo logs kinne parse, hoe't jo grafiken en dashboards kinne bouwe, en hokker nijsgjirrige funksjes kinne wurde dien mei it foarbyld fan logs fan de Check Point-firewall of de OpenVas-befeiligingsscanner. Om te begjinnen, litte wy sjen wat it is - de ELK-stapel, en út hokker komponinten it bestiet.

"ELK stack" is in akronym foar trije iepen boarne projekten: Elastyskesearch, logstash и kibana. Untwikkele troch Elastic tegearre mei alle relatearre projekten. Elasticsearch is de kearn fan it hiele systeem, dat de funksjes fan in databank, sykjen en analytysk systeem kombinearret. Logstash is in tsjinner-side gegevensferwurkingspipeline dy't gegevens fan meardere boarnen tagelyk ûntfangt, it logboek parseart en it dan stjoert nei in Elasticsearch-database. Kibana lit brûkers gegevens visualisearje mei diagrammen en grafiken yn Elasticsearch. Jo kinne de databank ek beheare fia Kibana. Folgjende, wy sille beskôgje elk systeem apart yn mear detail.

1.Elastyske stack: analyze fan feiligens logs. Ynlieding

logstash

Logstash is in hulpprogramma foar it ferwurkjen fan log-eveneminten út ferskate boarnen, wêrmei jo fjilden en har wearden kinne selektearje yn in berjocht, en jo kinne ek gegevensfiltering en bewurkjen ynstelle. Nei alle manipulaasjes omliedt Logstash eveneminten nei de definitive gegevenswinkel. It hulpprogramma wurdt allinich konfigureare fia konfiguraasjebestannen.
In typyske logstash-konfiguraasje is in triem(en) besteande út ferskate ynkommende streamen fan ynformaasje (ynfier), ferskate filters foar dizze ynformaasje (filter) en ferskate útgeande streamen (útfier). It liket op ien of mear konfiguraasjebestannen, dy't yn 'e ienfâldichste ferzje (dy't hielendal neat docht) der sa útsjen:

input {
}

filter {
}

output {
}

Yn INPUT konfigurearje wy nei hokker poarte de logs wurde stjoerd nei en troch hokker protokol, of út hokker map nije of konstant bywurke bestannen lêze moatte. Yn FILTER konfigurearje wy de log-parser: fjilden analysearje, wearden bewurkje, nije parameters tafoegje of se wiskje. FILTER is in fjild foar it behearen fan it berjocht dat nei Logstash komt mei in protte bewurkingsopsjes. Yn útfier konfigurearje wy wêr't wy it al parsearre log stjoere, as it elastysk sykjen is, wurdt in JSON-fersyk ferstjoerd wêryn fjilden mei wearden wurde ferstjoerd, of as ûnderdiel fan 'e debug kin it wurde útfierd nei stdout of skreaun nei in bestân.

1.Elastyske stack: analyze fan feiligens logs. Ynlieding

Elasticsearch

Yn earste ynstânsje is Elasticsearch in oplossing foar folsleine-tekstsykjen, mar mei ekstra foarsjenningen lykas maklike skaalfergrutting, replikaasje en oare dingen, dy't it produkt tige handich makken en in goede oplossing foar projekten mei hege lading mei grutte folumes fan gegevens. Elasticsearch is in net-relasjonele (NoSQL) JSON-dokumintwinkel en sykmasjine basearre op Lucene folsleine tekstsykjen. It hardwareplatfoarm is Java Virtual Machine, sadat it systeem in grutte hoemannichte prosessor en RAM-boarnen fereasket om te operearjen.
Elk ynkommende berjocht, itsij mei Logstash as mei help fan de query API, wurdt yndeksearre as in "dokumint" - analoog oan in tabel yn relationele SQL. Alle dokuminten wurde opslein yn in yndeks - in analoog fan in database yn SQL.

Foarbyld fan in dokumint yn 'e databank:

{
  "_index": "checkpoint-2019.10.10",
  "_type": "_doc",
  "_id": "yvNZcWwBygXz5W1aycBy",
  "_version": 1,
  "_score": null,
  "_source": {
	"layer_uuid": [
      "dae7f01c-4c98-4c3a-a643-bfbb8fcf40f0",
      "dbee3718-cf2f-4de0-8681-529cb75be9a6"
	],
	"outzone": "External",
	"layer_name": [
  	"TSS-Standard Security",
  	"TSS-Standard Application"
	],
	"time": "1565269565",
	"dst": "103.5.198.210",
	"parent_rule": "0",
	"host": "10.10.10.250",
	"ifname": "eth6",
    ]
}

Alle wurk mei de databank is basearre op JSON-oanfragen mei de REST API, dy't óf dokuminten produsearje troch yndeks as guon statistiken yn it formaat: fraach - antwurd. Om alle antwurden op oanfragen te visualisearjen, waard Kibana skreaun, dat is in webtsjinst.

kibana

Kibana kinne jo sykje, ophelje gegevens en query statistiken út de elasticsearch databank, mar in protte prachtige grafiken en dashboards binne boud op basis fan de antwurden. It systeem hat ek funksjonaliteit foar administraasje fan elasticsearch-database; yn folgjende artikels sille wy dizze tsjinst yn mear detail besjen. Litte wy no in foarbyld sjen litte fan dashboards foar de Check Point-firewall en de OpenVas kwetsberensscanner dy't kin wurde boud.

In foarbyld fan in dashboard foar Check Point, de foto is te klikken:

1.Elastyske stack: analyze fan feiligens logs. Ynlieding

In foarbyld fan in dashboard foar OpenVas, de foto is te klikken:

1.Elastyske stack: analyze fan feiligens logs. Ynlieding

konklúzje

Wy hawwe sjoen wêr't it út bestiet ELK stapel, wy hawwe in bytsje kunde mei de haadprodukten, letter yn 'e kursus sille wy apart beskôgje om in Logstash-konfiguraasjetriem te skriuwen, dashboards op Kibana op te setten, yn 'e kunde te kommen mei API-oanfragen, automatisearring en folle mear!

Dus bliuw op 'e hichte (Telegram, facebook, VK, TS Solution Blog), Yandex Zen.

Boarne: www.habr.com

Add a comment