Ro-rĂ dh
Nuair a bha sinn aâ cur an siostam as Ăšire againn an sĂ s, thĂ inig oirnn a bhith feumach air Ă ireamh mhòr de logaichean eadar-dhealaichte a phròiseasadh. Thagh sinn ELK mar an inneal. Bruidhnidh an t-artaigil seo air an eòlas againn aâ rèiteachadh aâ chruach seo.
Chan eil sinn ag amas air a h-uile comas a mhĂŹneachadh, ach an Ă ite sin bidh sinn aâ cur fòcas air fuasgladh fhaighinn air duilgheadasan practaigeach. Tha seo air sgĂ th, a dhâaindeoin an sgrĂŹobhainneachd mhòir agus na h-ĂŹomhaighean deiseil, gu bheil mòran chnapan-starra ann â co-dhiĂš, tha sinn air an lorg.
Chuir sinn an cruach an gnĂŹomh le Docker-compose. A bharrachd air sin, bha faidhle Docker-compose.yml againn a bha sgrĂŹobhte gu math, a leig leinn an cruach a chleachdadh gun duilgheadas sam bith. Agus bha sinn den bheachd gu robh sinn faisg air buaidh; dĂŹreach beagan atharrachaidhean gus freagairt air na feumalachdan againn, agus sin agad e.
Gu mĂŹ-fhortanach, cha do shoirbhich leis aâ chiad oidhirp againn an siostam a leasachadh gus logaichean fhaighinn agus a phròiseasadh bhon aplacaid againn. Mar sin, chuir sinn romhainn sgrĂšdadh a dhèanamh air gach pĂ irt air leth agus an uairsin tilleadh chun na ceanglaichean aca.
Mar sin, tòisichidh sinn le logstash.
Ărainneachd, cleachdadh, agus ruith Logstash ann an soitheach
Airson an cur an gnĂŹomh, bidh sinn aâ cleachdadh docker-compose; chaidh na deuchainnean a tha air am mĂŹneachadh an seo a dhèanamh air MacOS agus Ubuntu 18.0.4.
Is e docker.elastic.co/logstash/logstash:6.3.2 an Ïomhaigh logstash a chaidh a shònrachadh san docker-compose.yml thÚsail againn.
Cleachdaidh sinn e airson deuchainnean.
Gus Logstash a chur air bhog, sgrĂŹobh sinn docker-compose.yml air leth. Gu dearbh, dhâ fhaodadh sinn an ĂŹomhaigh a ruith bhon loidhne-Ă ithne, ach bha sinn aâ fuasgladh duilgheadas sònraichte far a bheil a h-uile cĂ il aâ ruith bho Docker-compose.
Goirid mu fhaidhlichean rèiteachaidh
Mar a tha an tuairisgeul ag rĂ dh, faodar logstash a ruith airson aon seanail, agus ma tha sin fĂŹor feumar faidhle *.conf a thoirt dha, no airson iomadh seanail, agus ma tha sin fĂŹor feumar faidhle pipelines.yml a thoirt dha, a bhios an uair sin aâ toirt iomradh air na faidhlichean .conf airson gach seanail.
Chaidh sinn leis an dà rna dòigh-obrach. Bha e coltach ri bhith nas uile-choitcheann agus nas sÚbailte. Mar sin, chruthaich sinn faidhle pipelines.yml agus eòlaire pipelines far an stòraich sinn na faidhlichean .conf airson gach seanail.
Tha faidhle rèiteachaidh eile taobh a-staigh aâ chontaineirâlogstash.yml. FĂ gaidh sinn e leis fhèin agus cleachdaidh sinn e mar a tha e.
Mar sin, structar ar clĂ ran-stiĂširidh:

Airson a-nis, gus dĂ ta cuir-a-steach fhaighinn, gabhaidh sinn ris gur e TCP a thâ ann air port 5046, agus airson toradh cleachdaidh sinn stdout.
Seo rèiteachadh sĂŹmplidh airson aâ chiad chur air bhog. Ăs dèidh a h-uile cĂ il, âs e aâ chiad obair a chur air bhog.
Mar sin, tha an docker-compose.yml seo againn.
version: '3'
networks:
elk:
volumes:
elasticsearch:
driver: local
services:
logstash:
container_name: logstash_one_channel
image: docker.elastic.co/logstash/logstash:6.3.2
networks:
- elk
ports:
- 5046:5046
volumes:
- ./config/pipelines.yml:/usr/share/logstash/config/pipelines.yml:ro
- ./config/pipelines:/usr/share/logstash/config/pipelines:ro
Dè a chÏ sinn an seo?
- Chaidh lĂŹonraidhean agus tomhas-lĂŹonaidh a thoirt bhon docker-compose.yml thĂšsail (am fear far a bheil an cruach gu lèir air a chur air bhog) agus chan eil mi aâ smaoineachadh gu bheil mòran buaidh aca air an dealbh iomlan.
- Cruthaichidh sinn aon sheirbheis logstash bhon ĂŹomhaigh docker.elastic.co/logstash/logstash:6.3.2 agus bheir sinn logstash_one_channel mar ainm oirre.
- Bidh sinn aâ cur port 5046 air adhart taobh a-staigh aâ chontaineir, chun aon phort a-staigh.
- Bidh sinn aâ mapadh ar faidhle rèiteachaidh loidhne-phĂŹoban ./config/pipelines.yml chun fhaidhle /usr/share/logstash/config/pipelines.yml taobh a-staigh aâ chontaineir, far an tog logstash e, agus ga dhèanamh ri leughadh a-mhĂ in, air eagal âs gum bi.
- Bidh sinn aâ mapadh an eòlaire ./config/pipelines, far a bheil sinn aâ stòradh faidhlichean rèiteachaidh an t-seanail, chun eòlaire /usr/share/logstash/config/pipelines agus ga dhèanamh ri leughadh a-mhĂ in cuideachd.

Am faidhle pipelines.yml
- pipeline.id: HABR
pipeline.workers: 1
pipeline.batch.size: 1
path.config: "./config/pipelines/habr_pipeline.conf"
An seo tha aon seanail leis an aithnichear HABR agus an t-slighe chun fhaidhle rèiteachaidh aige air a mhÏneachadh.
Agus mu dheireadh, am faidhle "./config/pipelines/habr_pipeline.conf"
input {
tcp {
port => "5046"
}
}
filter {
mutate {
add_field => [ "habra_field", "Hello Habr" ]
}
}
output {
stdout {
}
}
Na tèid sinn a-steach don tuairisgeul aige an-drà sta, feuchaidh sinn ri ruith:
docker-compose up
Dè a chÏ sinn?
Tha an soitheach air tòiseachadh. Is urrainn dhuinn deuchainn a dhèanamh air mar a tha e ag obair:
echo '13123123123123123123123213123213' | nc localhost 5046
Agus chĂŹ sinn am freagairt ann an consol aâ chontaineir:

Ach aig an aon Ă m, chĂŹ sinn cuideachd:
logstash_one_channel | [2019-04-29T11:28:59,790][ERROR][logstash.licensechecker.licensereader] Cha ghabh fiosrachadh ceadachais fhaighinn bhon fhrithealaiche ceadachais {:message=>âElasticsearch Gun Ruigsinneachd: [http://elasticsearch:9200/][Manticore::ResolutionFailure] elasticsearchâ, ...
logstash_one_channel | [2019-04-29T11:28:59,894][INFO ][logstash.pipeline] Thòisich am pÏob-loidhne gu soirbheachail {:pipeline_id=>".monitoring-logstash", :thread=>"# }
logstash_one_channel | [2019-04-29T11:28:59,988][INFO ][logstash.agent] PĂŹoban aâ ruith {:count=>2, :running_pipelines=>[:HABR, :".monitoring-logstash"], :non_running_pipelines=>[]}
logstash_one_channel | [2019-04-29T11:29:00,015][ERROR][logstash.inputs.metrics] Tha X-Pack air a stĂ ladh air Logstash ach chan ann air Elasticsearch. Feumaidh tu X-Pack a stĂ ladh air Elasticsearch gus am feart sgrĂšdaidh a chleachdadh. Dhâfhaodadh gum bi feartan eile rim faighinn.
logstash_one_channel | [2019-04-29T11:29:00,526][INFO ][logstash.agent ] Thòisich sinn gu soirbheachail aig ceann-uidhe API Logstash {:port=>9600}
logstash_one_channel | [2019-04-29T11:29:04,478][INFO ][logstash.outputs.elasticsearch] Aâ ruith sgrĂšdadh slĂ inte gus faicinn a bheil ceangal Elasticsearch ag obair {:healthcheck_url=>http://elasticsearch:9200/, :path=>"/"}
logstash_one_channel | [2019-04-29T11:29:04,487][WARN ][logstash.outputs.elasticsearch] Dhâfheuch mi ri ceangal ri eisimpleir ES marbh ath-bheothachadh, ach fhuair mi mearachd. {:url=>â:9200/", :error_type=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError, :error=>"Chan eil Elasticsearch ri ruigsinn: [http://elasticsearch:9200/][Manticore::ResolutionFailure] elasticsearch"}
logstash_one_channel | [2019-04-29T11:29:04,704][INFO ][logstash.licensechecker.licensereader] Aâ ruith sgrĂšdadh slĂ inte gus faicinn a bheil ceangal Elasticsearch ag obair {:healthcheck_url=>http://elasticsearch:9200/, :path=>"/"}
logstash_one_channel | [2019-04-29T11:29:04,710][WARN ][logstash.licensechecker.licensereader] Dhâfheuch mi ri ceangal ri eisimpleir ES marbh ath-bheothachadh, ach fhuair mi mearachd. {:url=>â:9200/", :error_type=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError, :error=>"Chan eil Elasticsearch ri ruigsinn: [http://elasticsearch:9200/][Manticore::ResolutionFailure] elasticsearch"}
Agus tha an clĂ r againn aâ sĂŹor dhol am meud.
An seo, tha mi air an teachdaireachd a chomharrachadh ann an uaine gun do thòisich am pÏob-loidhne gu soirbheachail, an teachdaireachd mearachd ann an dearg agus an teachdaireachd mu oidhirp air fios a chuir gu buidhe. : 9200.
Tha seo aâ tachairt leis gu bheil sgrĂšdadh ann airson ruigsinneachd elasticsearch anns an fhaidhle logstash.conf a tha san ĂŹomhaigh. Ăs dèidh a h-uile cĂ il, tha logstash aâ gabhail ris gu bheil e aâ ruith mar phĂ irt de chruach Elk, a tha sinn air a sgaradh.
Tha e comasach obrachadh, ach chan eil e goireasach.
Is e am fuasgladh an sgrĂšdadh seo a dhĂŹ-cheadachadh tron ââchaochladair Ă rainneachd XPACK_MONITORING_ENABLED.
Dèanamaid atharrachadh air docker-compose.yml agus ruithidh sinn a-rithist e:
version: '3'
networks:
elk:
volumes:
elasticsearch:
driver: local
services:
logstash:
container_name: logstash_one_channel
image: docker.elastic.co/logstash/logstash:6.3.2
networks:
- elk
environment:
XPACK_MONITORING_ENABLED: "false"
ports:
- 5046:5046
volumes:
- ./config/pipelines.yml:/usr/share/logstash/config/pipelines.yml:ro
- ./config/pipelines:/usr/share/logstash/config/pipelines:ro
Tha a h-uile rud ceart gu leòr a-nis. Tha an soitheach deiseil airson deuchainnean.
Is urrainn dhuinn taipeadh a-rithist san ath chonsĂłl:
echo '13123123123123123123123213123213' | nc localhost 5046
Agus faic:
logstash_one_channel | {
logstash_one_channel | "message" => "13123123123123123123123213123213",
logstash_one_channel | "@timestamp" => 2019-04-29T11:43:44.582Z,
logstash_one_channel | "@version" => "1",
logstash_one_channel | "habra_field" => "Hello Habr",
logstash_one_channel | "host" => "gateway",
logstash_one_channel | "port" => 49418
logstash_one_channel | }
Ag obair taobh a-staigh aon sianal
Mar sin, tha sinn deiseil. A-nis is urrainn dhuinn beagan Ăšine a chaitheamh aâ rèiteachadh Logstash fhèin. FĂ gaidh sinn am faidhle pipelines.yml leis fhèin an-drĂ sta; chĂŹ sinn dè as urrainn dhuinn a choileanadh le aon phĂŹob-loidhne.
Bu chòir a rà dh gu bheil am prionnsapal coitcheann airson a bhith ag obair leis an fhaidhle rèiteachaidh seanail air a mhÏneachadh gu math anns an leabhar-là imhe oifigeil, an seo
Ma tha thu airson leughadh ann an Ruisis, chleachd sinn am fear seo (ach tha co-chĂ radh aâ cheiste an sin sean, feumar seo a thoirt fa-near).
Gluaisidh sinn air adhart bhon earrann Cuir-a-steach ann an òrdugh. Tha sinn air faicinn mar a tha TCP ag obair mu thrĂ th. Dè eile a dhâ fhaodadh a bhith inntinneach an seo?
Teachdaireachdan deuchainn aâ cleachdadh buille cridhe
Tha feart inntinneach ann airson teachdaireachdan deuchainn fèin-ghluasadach a ghineadh.
Gus seo a dhèanamh, feumaidh tu am plugan heartbean a thoirt a-steach don earrann cuir a-steach.
input {
heartbeat {
message => "HeartBeat!"
}
}
Bidh sinn ga thionndadh air agus aâ tòiseachadh ga fhaighinn aon uair sa mhionaid.
logstash_one_channel | {
logstash_one_channel | "@timestamp" => 2019-04-29T13:52:04.567Z,
logstash_one_channel | "habra_field" => "Hello Habr",
logstash_one_channel | "message" => "HeartBeat!",
logstash_one_channel | "@version" => "1",
logstash_one_channel | "host" => "a0667e5c57ec"
logstash_one_channel | }
Ma tha sinn airson faighinn nas trice, feumaidh sinn am paramadair eadar-ama a chur ris.
San dòigh seo gheibh sinn teachdaireachd a h-uile 10 diogan.
input {
heartbeat {
message => "HeartBeat!"
interval => 10
}
}
Aâ faighinn dĂ ta bho fhaidhle
Cho-dhĂšin sinn cuideachd sĂšil a thoirt air modh nam faidhlichean. Ma dhâobraicheas e gu ceart le faidhlichean, is dòcha nach bi feum air riochdaire sam bith, co-dhiĂš airson cleachdadh ionadail.
A rèir an tuairisgeul, bu chòir don mhodh obrachaidh a bhith coltach ri tail -f, i.e. bidh e aâ leughadh loidhnichean Ăšra no, mar roghainn, aâ leughadh am faidhle gu lèir.
Mar sin, na tha sinn airson fhaighinn:
- Tha sinn airson loidhnichean fhaighinn a tha ceangailte ri aon fhaidhle loga.
- Tha sinn airson dà ta fhaighinn a tha sgrÏobhte gu grunn fhaidhlichean loga, agus aig an aon à m a bhith comasach air sgaradh a dhèanamh eadar na fhuaireadh agus cà ite.
- Tha sinn airson dearbhadh nach fhaigh logstash an dà ta seo a-rithist nuair a thèid ath-thòiseachadh.
- Tha sinn airson dèanamh cinnteach ma tha Logstash à comas, ach ma tha dà ta fhathast ga sgrÏobhadh gu faidhlichean, gum faigh sinn an dà ta seo nuair a thòisicheas sinn e.
Gus an deuchainn a dhèanamh, cuir sinn loidhne eile ri docker-compose.yml, aâ fosgladh an eòlaire far an do chuir sinn na faidhlichean.
version: '3'
networks:
elk:
volumes:
elasticsearch:
driver: local
services:
logstash:
container_name: logstash_one_channel
image: docker.elastic.co/logstash/logstash:6.3.2
networks:
- elk
environment:
XPACK_MONITORING_ENABLED: "false"
ports:
- 5046:5046
volumes:
- ./config/pipelines.yml:/usr/share/logstash/config/pipelines.yml:ro
- ./config/pipelines:/usr/share/logstash/config/pipelines:ro
- ./logs:/usr/share/logstash/input
Agus atharraicheamaid an earrann cuir-a-steach ann an habr_pipeline.conf
input {
file {
path => "/usr/share/logstash/input/*.log"
}
}
Cuiridh sinn air bhog:
docker-compose up
Gus faidhlichean loga a chruthachadh agus a sgrĂŹobhadh, cleachdaidh sinn an Ă ithne:
â¨echo '1' >> logs/number1.log
{
logstash_one_channel | "host" => "ac2d4e3ef70f",
logstash_one_channel | "habra_field" => "Hello Habr",
logstash_one_channel | "@timestamp" => 2019-04-29T14:28:53.876Z,
logstash_one_channel | "@version" => "1",
logstash_one_channel | "message" => "1",
logstash_one_channel | "path" => "/usr/share/logstash/input/number1.log"
logstash_one_channel | }
Seadh, tha e ag obair!
ChĂŹ sinn cuideachd gun deach an raon slighe a chur ris gu fèin-ghluasadach. Tha seo aâ ciallachadh gum bi e comasach dhuinn clĂ ran a shĂŹoladh leis san Ă m ri teachd.
Feuchaidh sinn a-rithist:
echo '2' >> logs/number1.log
{
logstash_one_channel | "host" => "ac2d4e3ef70f",
logstash_one_channel | "habra_field" => "Hello Habr",
logstash_one_channel | "@timestamp" => 2019-04-29T14:28:59.906Z,
logstash_one_channel | "@version" => "1",
logstash_one_channel | "message" => "2",
logstash_one_channel | "path" => "/usr/share/logstash/input/number1.log"
logstash_one_channel | }
Agus a-nis ann am faidhle eile:
echo '1' >> logs/number2.log
{
logstash_one_channel | "host" => "ac2d4e3ef70f",
logstash_one_channel | "habra_field" => "Hello Habr",
logstash_one_channel | "@timestamp" => 2019-04-29T14:29:26.061Z,
logstash_one_channel | "@version" => "1",
logstash_one_channel | "message" => "1",
logstash_one_channel | "path" => "/usr/share/logstash/input/number2.log"
logstash_one_channel | }
Sgoinneil! Chaidh am faidhle a thogail, chaidh an t-slighe a shònrachadh gu ceart, tha a h-uile dad ceart gu leòr.
Stadamaid logstash agus tòisichidh sinn a-rithist e. Fuirichidh sinn. Sà mhchair. 'S e sin, chan fhaigh sinn na clà ran seo a-rithist.
Agus a-nis an deuchainn as dĂ na.
StĂ laich logstash agus ruith:
echo '3' >> logs/number2.log
echo '4' >> logs/number1.log
Ruithidh sinn logstash a-rithist agus chĂŹ sinn:
logstash_one_channel | {
logstash_one_channel | "host" => "ac2d4e3ef70f",
logstash_one_channel | "habra_field" => "Hello Habr",
logstash_one_channel | "message" => "3",
logstash_one_channel | "@version" => "1",
logstash_one_channel | "path" => "/usr/share/logstash/input/number2.log",
logstash_one_channel | "@timestamp" => 2019-04-29T14:48:50.589Z
logstash_one_channel | }
logstash_one_channel | {
logstash_one_channel | "host" => "ac2d4e3ef70f",
logstash_one_channel | "habra_field" => "Hello Habr",
logstash_one_channel | "message" => "4",
logstash_one_channel | "@version" => "1",
logstash_one_channel | "path" => "/usr/share/logstash/input/number1.log",
logstash_one_channel | "@timestamp" => 2019-04-29T14:48:50.856Z
logstash_one_channel | }
Hurra! Chaidh a h-uile cĂ il a thogail.
Ach, bu chòir dhomh rabhadh a thoirt dhut mun leanas. Ma thèid an soitheach Logstash a dhubhadh às (docker stop logstash_one_channel && docker rm logstash_one_channel), cha tèid dad a thogail. Chaidh an suidheachadh faidhle far an deach a leughadh a shà bhaladh taobh a-staigh an t-soithich. Ma thòisicheas tu e bhon fhÏor thoiseach, cha ghabh e ach loidhnichean Úra.
Aâ leughadh fhaidhlichean a tha ann mar-thĂ
Abair gu bheil sinn aâ ruith logstash airson aâ chiad uair, ach gu bheil logaichean againn mu thrĂ th agus bu mhath leinn an giullachd.
Ma ruitheas sinn logstash leis an aon earrann cuir-a-steach a chleachd sinn gu h-à rd, cha gheibh sinn dad. Cha tèid ach loidhnichean Úra a phròiseasadh le logstash.
Gus loidhnichean a tharraing bho fhaidhlichean a tha ann mar-thà , bu chòir dhut loidhne a bharrachd a chur ris an earrann cuir-a-steach:
input {
file {
start_position => "beginning"
path => "/usr/share/logstash/input/*.log"
}
}
Tha rabhadh ann: chan eil seo aâ buntainn ach ri faidhlichean Ăšra nach fhaca Logstash fhathast. Airson faidhlichean a chunnaic Logstash mu thrĂ th, tha e aâ cuimhneachadh am meud mu thrĂ th agus cha ghabh e a-steach ach clĂ ran Ăšra annta a-nis.
Stadamaid an seo agus sgrÚdamaid an earrann cuir-a-steach. Tha mòran roghainnean eile ann, ach an-drà sta, tha seo gu leòr airson tuilleadh deuchainneachd.
Slighe dĂ ta agus cruth-atharrachadh
Feuchaidh sinn ri fuasgladh fhaighinn air an duilgheadas a leanas. Abair gu bheil teachdaireachdan againn aâ tighinn bho aon seanail, cuid dhiubh fiosrachaidh, agus cuid eile teachdaireachdan mearachd. Tha iad air an comharrachadh leis na tagaichean aca. Tha cuid dhiubh INFO, cuid eile ERROR.
Feumaidh sinn an sgaradh aig an toradh. âS e sin, bidh sinn aâ sgrĂŹobhadh teachdaireachdan fiosrachaidh gu aon seanail, agus teachdaireachdan mearachd gu seanail eile.
Gus seo a dhèanamh, gluaisidh sinn bhon roinn cuir-a-steach chun an sÏoltachain agus an toraidh.
Aâ cleachdadh an earrainn sĂŹoltachain, nĂŹ sinn mion-sgrĂšdadh air an teachdaireachd a tha aâ tighinn a-steach, aâ toirt a-mach a hash (paidhrichean luach-iuchair) gus an urrainn dhuinn a phròiseasadh, i.e., a mion-sgrĂšdadh a rèir ar cumhaichean. Agus san earrainn toraidh, taghaidh sinn teachdaireachdan agus cuiridh sinn gach fear chun t-sianal aige fhèin.
Aâ parsadh teachdaireachd le grok
Gus sreangan teacsa a pharsadh agus seata de raointean fhaighinn bhuapa, tha plugan sònraichte aig an earrann sÏoltachain - grok.
Chan e mo rĂšn cunntas mionaideach a thoirt air an seo (airson seo tha mi aâ toirt iomradh air ), bheir mi eisimpleir sĂŹmplidh dhomh.
Gus seo a dhèanamh, feumaidh tu co-dhÚnadh dè an cruth a bhios air na sreangan cuir-a-steach. Seo mar a tha na sreangan agamsa:
1 teachdaireachd fiosrachaidh1
2 Teachdaireachd MEARACHD2
âS e sin, thig an comharraiche an toiseach, an uairsin INFO/ERROR, agus an uairsin facal air choreigin gun bheĂ rnan.
Chan eil e iom-fhillte, ach tha e gu leòr airson prionnsabal an obrachaidh a thuigsinn.
Mar sin, anns an earrann sĂŹoltachain, anns aâ plugan grok, feumaidh sinn pĂ tran a mhĂŹneachadh airson ar sreangan a pharsadh.
Bidh e coltach ri seo:
filter {
grok {
match => { "message" => ["%{INT:message_id} %{LOGLEVEL:message_type} %{WORD:message_text}"] }
}
}
Gu bunaiteach, âs e abairt cunbhalach a thâ ann. Bidh e aâ cleachdadh phĂ tranan deiseil leithid INT, LOGLEVEL, agus WORD. Gheibhear na tuairisgeulan aca, a bharrachd air pĂ train eile, an seo.
A-nis, aâ dol tron ââchriathrag seo, tionndaidhidh an sreang againn gu hash de thrĂŹ raointean: message_id, message_type, message_text.
Is iad sin na faidhlichean a thèid a thaisbeanadh anns an earrann toraidh.
Aâ stiĂšireadh teachdaireachdan san earrann toraidh aâ cleachdadh an Ă ithne ma
Anns an earrann toraidh, mar a chuimhnicheas sinn, bha sinn gu bhith aâ roinn nan teachdaireachdan ann an dĂ shruth. Thèid an fheadhainn anns a bheil iNFO a chur a-mach chun chonsail, agus thèid an fheadhainn anns a bheil mearachdan a chur a-mach gu faidhle.
Ciamar a sgaras sinn na teachdaireachdan seo? Tha an aithris duilgheadas mu thrĂ th aâ moladh fuasgladhâtha raon sònraichte againn mu thrĂ th airson message_type, nach gabh ach dĂ luach: INFO agus ERROR. Cleachdaidh sinn an raon seo gus an roghainn a dhèanamh aâ cleachdadh an aithris if.
if [message_type] == "ERROR" {
# ĐĐ´ĐľŃŃ Đ˛ŃвОдиП в ŃаКН
} else
{
# ĐĐ´ĐľŃŃ Đ˛ŃвОдиП в stdout
}
Gheibhear tuairisgeul air mar a dhâobraicheas tu le raointean agus gnĂŹomhaichean san earrann seo. .
A-nis, mu dheidhinn aâ cho-dhĂšnaidh fhèin.
Toradh console, tha a h-uile dad soilleir an seo - stdout {}
A thaobh toradh gu faidhle, cuimhnich gu bheil sinn aâ ruith seo uile bho shoitheach, agus gus dèanamh cinnteach gu bheil am faidhle dhan sgrĂŹobh sinn an toradh ruigsinneach bhon taobh a-muigh, feumaidh sinn an eòlaire seo fhosgladh ann an docker-compose.yml.
Iomlan:
Tha earrann toraidh ar faidhle coltach ri seo:
â¨output {
if [message_type] == "ERROR" {
file {
path => "/usr/share/logstash/output/test.log"
codec => line { format => "custom format: %{message}"}
}
} else
{stdout {
}
}
}
Cuir tomhas-lĂŹonaidh eile ri docker-compose.yml airson toradh:
version: '3'
networks:
elk:
volumes:
elasticsearch:
driver: local
services:
logstash:
container_name: logstash_one_channel
image: docker.elastic.co/logstash/logstash:6.3.2
networks:
- elk
environment:
XPACK_MONITORING_ENABLED: "false"
ports:
- 5046:5046
volumes:
- ./config/pipelines.yml:/usr/share/logstash/config/pipelines.yml:ro
- ./config/pipelines:/usr/share/logstash/config/pipelines:ro
- ./logs:/usr/share/logstash/input
- ./output:/usr/share/logstash/output
Bidh sinn ga chur air bhog, ga fheuchainn, agus aâ faicinn roinneadh ann an dĂ shruth.
Source: www.habr.com
