2. Elastic stack: mion-sgrùdadh air logaichean tèarainteachd. Logstash

2. Elastic stack: mion-sgrùdadh air logaichean tèarainteachd. Logstash

Anns an àm a dh ’fhalbh artaigil choinnich sinn cruach ELK, dè am bathar-bog a th’ ann. Agus is e a’ chiad obair a tha fa chomhair innleadair nuair a bhios e ag obair leis a’ chruach ELK a’ cur logaichean airson an stòradh ann an rannsachadh elastic airson mion-sgrùdadh às deidh sin. Ach, is e dìreach seirbheis bilean a tha seo, bidh elasticsearch a ’stòradh logaichean ann an cruth sgrìobhainnean le raointean agus luachan sònraichte, a tha a’ ciallachadh gum feum an innleadair diofar innealan a chleachdadh gus an teachdaireachd a thèid a chuir bho na siostaman crìochnachaidh a pharsadh. Faodar seo a dhèanamh ann an grunn dhòighean - sgrìobh thu fhèin prògram a chuireas sgrìobhainnean ris an stòr-dàta a’ cleachdadh an API, no cleachd fuasglaidhean deiseil. Anns a 'chùrsa seo beachdaichidh sinn air fuasgladh Logstash, a tha na phàirt de chruach ELK. Seallaidh sinn air mar as urrainn dhuinn logaichean a chuir bho shiostaman endpoint gu Logstash, agus an uairsin cuiridh sinn air dòigh faidhle rèiteachaidh gus a pharsadh agus ath-stiùireadh gu stòr-dàta Elasticsearch. Gus seo a dhèanamh, bheir sinn logaichean bho bhalla-teine ​​​​Check Point mar an siostam a tha a’ tighinn a-steach.

Chan eil an cùrsa a 'còmhdach stàladh ELK stack, oir tha àireamh mhòr de artaigilean air a' chuspair seo; beachdaichidh sinn air a 'phàirt rèiteachaidh.

Feuch an dèan sinn plana gnìomh airson rèiteachadh Logstash:

  1. A’ dèanamh cinnteach gun gabh elasticsearch ri logaichean (a’ sgrùdadh gnìomhachd agus fosgarrachd a’ phuirt).
  2. Bidh sinn a’ beachdachadh air mar as urrainn dhuinn tachartasan a chuir gu Logstash, dòigh a thaghadh, agus a bhuileachadh.
  3. Bidh sinn a’ rèiteachadh Input anns an fhaidhle rèiteachaidh Logstash.
  4. Bidh sinn a’ rèiteachadh Toradh anns an fhaidhle rèiteachaidh Logstash ann am modh deasbaid gus tuigse fhaighinn air cò ris a tha an teachdaireachd log coltach.
  5. A' stèidheachadh Filter.
  6. A’ stèidheachadh an toradh ceart ann an ElasticSearch.
  7. Logstash a’ cur air bhog.
  8. A’ sgrùdadh nan logaichean ann an Kibana.

Bheir sinn sùil nas mionaidiche air gach puing:

A’ dèanamh cinnteach gun gabh elasticsearch ri logaichean

Gus seo a dhèanamh, faodaidh tu an àithne curl a chleachdadh gus faighinn a-steach gu Elasticsearch bhon t-siostam air a bheil Logstash air a chleachdadh. Ma tha dearbhadh agad air a rèiteachadh, bidh sinn cuideachd a’ gluasad an neach-cleachdaidh / facal-faire tro curl, a’ sònrachadh port 9200 mura h-atharraich thu e. Ma gheibh thu freagairt coltach ris an fhear gu h-ìosal, tha a h-uile dad ann an òrdugh.

[elastic@elasticsearch ~]$ curl -u <<user_name>> : <<password>> -sS -XGET "<<ip_address_elasticsearch>>:9200"
{
  "name" : "elastic-1",
  "cluster_name" : "project",
  "cluster_uuid" : "sQzjTTuCR8q4ZO6DrEis0A",
  "version" : {
    "number" : "7.4.1",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "fc0eeb6e2c25915d63d871d344e3d0b45ea0ea1e",
    "build_date" : "2019-10-22T17:16:35.176724Z",
    "build_snapshot" : false,
    "lucene_version" : "8.2.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
[elastic@elasticsearch ~]$

Mura faighear am freagairt, faodaidh grunn sheòrsaichean de mhearachdan a bhith ann: chan eil am pròiseas elasticsearch a’ ruith, tha am port ceàrr air a shònrachadh, no tha am port air a bhacadh le balla-teine ​​​​air an fhrithealaiche far a bheil elasticsearch air a chuir a-steach.

Bheir sinn sùil air mar as urrainn dhut logaichean a chuir gu Logstash bho bhalla-teine ​​​​àite seic

Bho fhrithealaiche riaghlaidh Check Point faodaidh tu logaichean a chuir gu Logstash tro syslog a ’cleachdadh a’ ghoireas log_exporter, faodaidh tu barrachd a leughadh mu dheidhinn an seo artaigil, an seo fàgaidh sinn dìreach an àithne a chruthaicheas an t-sruth:

cp_log_export cuir ainm ris check_point_syslog target-server > targaid-port 5555 protocol tcp cruth modh leughaidh gnèitheach leth-aonaichte

> - seòladh an fhrithealaiche air a bheil Logstash a’ ruith, targaid-port 5555 - am port dhan cuir sinn logaichean, a’ cur logaichean tro tcp is urrainn dhaibh am frithealaiche a luchdachadh, agus mar sin ann an cuid de chùisean tha e nas ceart udp a chleachdadh .

A’ stèidheachadh INPUT anns an fhaidhle rèiteachaidh Logstash

2. Elastic stack: mion-sgrùdadh air logaichean tèarainteachd. Logstash

Gu gnàthach, tha am faidhle rèiteachaidh suidhichte anns an eòlaire /etc/logstash/conf.d/. Tha 3 pàirtean brìoghmhor anns an fhaidhle rèiteachaidh: INPUT, FILTER, TORADH. ANNS -steach bidh sinn a’ comharrachadh cò às a bheir an siostam logaichean, a-steach FILTAR parse an log - cuir air dòigh mar a roinn thu an teachdaireachd ann an raointean agus luachan, a-steach GnOMh bidh sinn a’ rèiteachadh an t-sruth toraidh - far an tèid na logaichean parsed a chuir.

An toiseach, leig dhuinn INPUT a rèiteachadh, beachdaich air cuid de na seòrsaichean a dh’ fhaodadh a bhith - faidhle, tcp agus exe.

Tcp:

input {
tcp {
    port => 5555
    host => “10.10.1.205”
    type => "checkpoint"
    mode => "server"
}
}

mode => "frithealaiche"
A’ nochdadh gu bheil Logstash a’ gabhail ri ceanglaichean.

port => 5555
òstair => "10.10.1.205"
Gabhaidh sinn ri ceanglaichean tro sheòladh IP 10.10.1.205 (Logstash), port 5555 - feumaidh am port a bhith ceadaichte leis a’ phoileasaidh balla-teine.

seòrsa => "phuing-seic"
Bidh sinn a’ comharrachadh na sgrìobhainn, gu math goireasach ma tha grunn cheanglaichean a’ tighinn a-steach. Às deidh sin, airson gach ceangal faodaidh tu do chriathrag fhèin a sgrìobhadh a’ cleachdadh an loidsigeach ma tha thu a’ togail.

File:

input {
  file {
    path => "/var/log/openvas_report/*"
    type => "openvas"
    start_position => "beginning"
    }
}

Tuairisgeul air na roghainnean:
slighe => "/var/log/openvas_report/*"
Bidh sinn a’ comharrachadh an eòlaire anns am feum na faidhlichean a leughadh.

seòrsa => "openvas"
Seòrsa tachartas.

start_position => "a' tòiseachadh"
Nuair a dh’ atharraicheas tu faidhle, leughaidh e am faidhle gu lèir; ma shuidhicheas tu “crìoch”, bidh an siostam a’ feitheamh ri clàran ùra nochdadh aig deireadh an fhaidhle.

Eacarsaich:

input {
  exec {
    command => "ls -alh"
    interval => 30
  }
}

A’ cleachdadh an cuir a-steach seo, thèid àithne slige (a-mhàin!) a chuir air bhog agus thèid an toradh aige a thionndadh gu teachdaireachd log.

àithne => "ls -alh"
An àithne anns a bheil ùidh againn ann an toradh.

eadar-amail => 30
Ùine ionnsaigh àithne ann an diogan.

Gus logaichean fhaighinn bhon bhalla-teine, bidh sinn a’ clàradh sìoltachan tcp no udp, a rèir mar a thèid na clàran a chuir gu Logstash.

Bidh sinn a’ rèiteachadh Toradh ann am faidhle rèiteachaidh Logstash ann am modh deasbaid gus tuigse fhaighinn air cò ris a tha an teachdaireachd log coltach

Às deidh dhuinn INPUT a rèiteachadh, feumaidh sinn tuigsinn cò ris a bhios an teachdaireachd log coltach agus dè na dòighean a dh’ fheumar a chleachdadh gus an sìoltachan loga (parser) a rèiteachadh.

Gus seo a dhèanamh, cleachdaidh sinn criathrag a bheir a-mach an toradh gu stdout gus an teachdaireachd tùsail fhaicinn; seallaidh am faidhle rèiteachaidh iomlan an-dràsta mar seo:

input 
{
         tcp 
         {
                port => 5555
  	  	type => "checkpoint"
    		mode => "server"
                host => “10.10.1.205”
   	 }
}

output 
{
	if [type] == "checkpoint" 
       {
		stdout { codec=> json }
	}
}

Ruith an àithne gus sgrùdadh a dhèanamh:
sudo /usr/share/logstash/bin//logstash -f /etc/logstash/conf.d/checkpoint.conf
Chì sinn an toradh, faodar cliogadh air an dealbh:

2. Elastic stack: mion-sgrùdadh air logaichean tèarainteachd. Logstash

Ma nì thu lethbhreac dheth seallaidh e mar seo:

action="Accept" conn_direction="Internal" contextnum="1" ifdir="outbound" ifname="bond1.101" logid="0" loguid="{0x5dfb8c13,0x5,0xfe0a0a0a,0xc0000000}" origin="10.10.10.254" originsicname="CN=ts-spb-cpgw-01,O=cp-spb-mgmt-01.tssolution.local.kncafb" sequencenum="8" time="1576766483" version="5" context_num="1" dst="10.10.10.10" dst_machine_name="[email protected]" layer_name="TSS-Standard Security" layer_name="TSS-Standard Application" layer_uuid="dae7f01c-4c98-4c3a-a643-bfbb8fcf40f0" layer_uuid="dbee3718-cf2f-4de0-8681-529cb75be9a6" match_id="8" match_id="33554431" parent_rule="0" parent_rule="0" rule_action="Accept" rule_action="Accept" rule_name="Implicit Cleanup" rule_uid="6dc2396f-9644-4546-8f32-95d98a3344e6" product="VPN-1 & FireWall-1" proto="17" s_port="37317" service="53" service_id="domain-udp" src="10.10.1.180" ","type":"qqqqq","host":"10.10.10.250","@version":"1","port":50620}{"@timestamp":"2019-12-19T14:50:12.153Z","message":"time="1576766483" action="Accept" conn_direction="Internal" contextnum="1" ifdir="outbound" ifname="bond1.101" logid="0" loguid="{0x5dfb8c13,

A 'coimhead air na teachdaireachdan seo, tha sinn a' tuigsinn gu bheil coltas nan logaichean mar: field = luach no iuchair = luach, a tha a 'ciallachadh gu bheil criathrag ris an canar kv freagarrach. Gus an sìoltachan ceart a thaghadh airson gach cùis shònraichte, bhiodh e na dheagh bheachd eòlas fhaighinn orra anns na sgrìobhainnean teicnigeach, no faighneachd do charaid.

A' stèidheachadh Filter

Aig an ìre mu dheireadh a thagh sinn kv, tha rèiteachadh a’ chriathrag seo air a thaisbeanadh gu h-ìosal:

filter {
if [type] == "checkpoint"{
	kv {
		value_split => "="
		allow_duplicate_values => false
	}
}
}

Bidh sinn a’ taghadh an samhla leis an roinn sinn an raon agus an luach - “=”. Ma tha an aon inntrigean againn san loga, cha shàbhail sinn ach aon eisimpleir san stòr-dàta, air neo ma bhios an aon luachan agad, is e sin, ma tha an teachdaireachd “foo = cuid foo = cuid” sgrìobh sinn dìreach foo. = cuid.

A’ stèidheachadh an toradh ceart ann an ElasticSearch

Aon uair ‘s gu bheil Filter air a rèiteachadh, faodaidh tu logaichean a luchdachadh suas chun stòr-dàta lorg elastaig:

output 
{
if [type] == "checkpoint"
{
 	elasticsearch 
        {
		hosts => ["10.10.1.200:9200"]
		index => "checkpoint-%{+YYYY.MM.dd}"
    		user => "tssolution"
    		password => "cool"
  	}
}
}

Ma tha an sgrìobhainn air a shoidhnigeadh leis an t-seòrsa puing-seic, sàbhalaidh sinn an tachartas don stòr-dàta elasticsearch, a ghabhas ri ceanglaichean air 10.10.1.200 air port 9200 gu bunaiteach. Tha gach sgrìobhainn air a shàbhaladh gu clàr-amais sònraichte, anns a 'chùis seo bidh sinn a' sàbhaladh chun chlàr-amais "seic-phuing-" + ceann-latha làithreach. Faodaidh seata sònraichte de raointean a bhith aig gach clàr-amais, no thèid a chruthachadh gu fèin-ghluasadach nuair a nochdas raon ùr ann an teachdaireachd; chithear roghainnean achaidh agus an seòrsa aca ann am mapaichean.

Ma tha dearbhadh agad air a rèiteachadh (thoir sùil air nas fhaide air adhart), feumar na teisteanasan airson sgrìobhadh gu clàr-amais sònraichte a shònrachadh, san eisimpleir seo is e “tssolution” a th’ ann leis an fhacal-fhaire “cool”. Faodaidh tu eadar-dhealachadh a dhèanamh air còraichean luchd-cleachdaidh airson logaichean a sgrìobhadh a-mhàin gu clàr-amais sònraichte agus gun a bhith nas fhaide.

Cuir Logstash air bhog.

Faidhle rèiteachaidh Logstash:

input 
{
         tcp 
         {
                port => 5555
  	  	type => "checkpoint"
    		mode => "server"
                host => “10.10.1.205”
   	 }
}

filter {
        if [type] == "checkpoint"{
	kv {
		value_split => "="
		allow_duplicate_values => false
	}
        }
}

output 
{
if [type] == "checkpoint"
{
 	elasticsearch 
        {
		hosts => ["10.10.1.200:9200"]
		index => "checkpoint-%{+YYYY.MM.dd}"
    		user => "tssolution"
    		password => "cool"
  	}
}
}

Bheir sinn sùil air an fhaidhle rèiteachaidh airson ceartachd:
/usr/share/logstash/bin//logstash -f checkpoint.conf
2. Elastic stack: mion-sgrùdadh air logaichean tèarainteachd. Logstash

Tòisich am pròiseas Logstash:
sudo systemctl a 'tòiseachadh logstash

Nì sinn cinnteach gu bheil am pròiseas air tòiseachadh:
logstash inbhe sudo systemctl

2. Elastic stack: mion-sgrùdadh air logaichean tèarainteachd. Logstash

Feuch an dèan sinn cinnteach a bheil an socaid suas:
netstat -nat | grep 5555

2. Elastic stack: mion-sgrùdadh air logaichean tèarainteachd. Logstash

A’ sgrùdadh nan logaichean ann an Kibana.

Às deidh a h-uile càil a bhith a ’ruith, rachaibh gu Kibana - Faigh a-mach, dèan cinnteach gu bheil a h-uile càil air a rèiteachadh gu ceart, faodar cliogadh air an dealbh!

2. Elastic stack: mion-sgrùdadh air logaichean tèarainteachd. Logstash

Tha na logaichean uile nan àite agus chì sinn na raointean uile agus na luachan aca!

co-dhùnadh

Choimhead sinn air mar a sgrìobhas sinn faidhle rèiteachaidh Logstash, agus mar thoradh air an sin fhuair sinn parser de gach raon agus luachan. A-nis is urrainn dhuinn obrachadh le bhith a’ lorg agus a’ dealbhadh raointean sònraichte. An ath rud sa chùrsa bheir sinn sùil air fradharc ann an Kibana agus cruthaichidh sinn deas-bhòrd sìmplidh. 'S fhiach toirt iomradh air gu bheil am faidhle rèiteachaidh Logstash feumar ùrachadh gu cunbhalach ann an suidheachaidhean sònraichte, mar eisimpleir, nuair a tha sinn ag iarraidh a chur an àite luach achadh bho àireamh gu facal. Anns na h-artaigilean às deidh sin nì sinn seo an-còmhnaidh.

Mar sin cùm sùil airteileagram, Facebook, VK, Blog Fuasgladh TS), Yandex Zen.

Source: www.habr.com

Cuir beachd ann