เบเบฒเบเบเปเบฒเบชเบฐเปเบซเบเบต
เปเบเบเบฐเบเบฐเบเบตเปเบเปเบฒเปเบเปเบฅเบฐเบเบปเบเบญเบทเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเบตเบเบเบฑเบเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบเบฐเบกเบงเบเบเบปเบเบเปเบฒเบเบงเบเบเบฐเบซเบเบฒเบเปเบซเบเปเบเบญเบเบเบฑเบเบเบถเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ. ELK เบเบทเบเปเบฅเบทเบญเบเปเบเบฑเบเปเบเบทเปเบญเบเบกเบท. เบเบปเบเบเบงเบฒเบกเบเบตเปเบเบฐเบชเบปเบเบเบฐเบเบฒเบเบฐเบชเบปเบเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบเบฒเบเบเบฑเปเบเบเปเบฒ stack เบเบตเป.
เบเบงเบเปเบฎเบปเบฒเบเปเปเปเบเปเบเปเบฒเบเบปเบเปเบเบปเปเบฒเบซเบกเบฒเบเปเบเบทเปเบญเบญเบฐเบเบดเบเบฒเบเบเบงเบฒเบกเบชเบฒเบกเบฒเบเบเบญเบเบกเบฑเบเบเบฑเบเบซเบกเบปเบ, เปเบเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบชเบธเบกเปเบชเปเบเบฒเบเปเบเปเปเบเบเบฑเบเบซเบฒเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบเบชเบฐเปเบเบฒเบฐ. เบเบตเปเปเบกเปเบเปเบเบทเปเบญเบเบกเบฒเบเบฒเบเบเบงเบฒเบกเบเบดเบเบเบตเปเบงเปเบฒเปเบเบดเบเปเบกเปเบเบงเปเบฒเบกเบตเปเบญเบเบฐเบชเบฒเบเปเบฅเบฐเบฎเบนเบเบเบฒเบเบเบตเปเบเบฝเบกเบเปเบญเบกเบซเบผเบฒเบเบเปเบชเบปเบกเบเบงเบ, เบกเบฑเบเบกเบตเบเบธเบกเบซเบผเบฒเบ, เบขเปเบฒเบเบซเบเปเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเปเบเบปเบเปเบซเบฑเบเบเบงเบเบกเบฑเบ.
เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบณเปเบเป stack เบเปเบฒเบ docker-compose. เบเบดเปเบเปเบเบเบงเปเบฒเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบกเบต docker-compose.yml เบเบตเปเบเบฝเบเปเบเปเบเบต, เปเบเบดเปเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบงเบเปเบฎเบปเบฒเบเบปเบ stack เปเบเบทเบญเบเบเปเปเบกเบตเบเบฑเบเบซเบฒ. เปเบฅเบฐโเปเบเบดเปเบโเบเบทโเบงเปเบฒโเบเบงเบโเปเบฎเบปเบฒโเปเบโเบเบฐโเบเบฐโเปเบเปโเปเบเปโเปเบเบปเปเบฒโเบกเบฒโเปเบฅเปเบง, เบเบฑเบโเบเบตเปโเบเบงเบโเปเบฎเบปเบฒโเบเบฐโเบเบฑเบโเบเปเบฝเบโเบกเบฑเบโเปเปเบญเบโเปเบถเปเบโเปเบซเปโเปเปเบฒเบฐโเบชเบปเบกโเบเบฑเบโเบเบงเบฒเบกโเบเปเบญเบโเบเบฒเบโเบเบญเบโเบเบงเบโเปเบฎเบปเบฒ เปเบฅเบฐโเบเบฑเปเบโเปเบกเปเบโเบกเบฑเบ.
เปเบเปเบซเบเปเบฒเปเบชเบเบเบฒเบ, เบเบงเบฒเบกเบเบฐเบเบฒเบเบฒเบกเปเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบฅเบฐเบเบปเบเปเบเบทเปเบญเบฎเบฑเบ เปเบฅเบฐเบเบฐเบกเบงเบเบเบปเบเบเบฑเบเบเบถเบเบเบฒเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเปเปเบเบฐเบชเบปเบเบเบปเบเบชเปเบฒเปเบฅเบฑเบเปเบเบเบฑเบเบเบต. เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบฑเบเบชเบดเบเปเบเบงเปเบฒเบกเบฑเบเบกเบตเบกเบนเบเบเปเบฒเบเบฒเบเบชเบถเบเบชเบฒเปเบเปเบฅเบฐเบญเบปเบเบเบฐเบเบญเบเปเบเบเบเปเบฒเบเบซเบฒเบ, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฑเบเบเบทเบเบชเบนเปเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบญเบเบเบงเบเปเบเบปเบฒ.
เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบ logstash.
เบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก, เบเบฒเบเบเบฐเบเบดเบเบฑเบ, เปเบฅเปเบ Logstash เปเบเบเบฑเบ
เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบดเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเปเบเป docker-compose;
เบฎเบนเบเบเบฒเบ logstash เบเบตเปเปเบเปเบฅเบปเบเบเบฐเบเบฝเบเบขเบนเปเปเบ docker-compose.yml เบเบปเปเบเบชเบฐเบเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบกเปเบ docker.elastic.co/logstash/logstash:6.3.2
เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบกเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบฅเบญเบ.
เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบฝเบ docker-compose.yml เปเบเบเบเปเบฒเบเบซเบฒเบเปเบเบทเปเบญเบเปเบฒเปเบเบตเบเบเบฒเบ logstash. เปเบเปเบเบญเบ, เบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเปเบเบตเบเบเบปเบงเบฎเบนเบเบเบฒเบเบเบฒเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบ, เปเบเปเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเปเบเปเปเบเบเบฑเบเบซเบฒเบชเบฐเปเบเบฒเบฐ, เบเปเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบตเบเบเบฒเบเบเบธเบเบขเปเบฒเบเบเบฒเบ docker-compose.
เปเบเบเบซเบเปเปเบเปเบฝเบงเบเบฑเบเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒ
เบเบฑเปเบเบเปเปเปเบเบเบตเปเบเบฒเบเบเปเบฒเบญเบฐเบเบดเบเบฒเบ, logstash เบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเปเบชเปเบฒเบฅเบฑเบเบซเบเบถเปเบเบเปเบญเบ, เปเบเบเปเบฅเบฐเบเบตเบเบตเปเบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเปเบฒเบเปเบเบฅเป *.conf, เบซเบผเบทเบชเปเบฒเบฅเบฑเบเบซเบผเบฒเบเบเปเบญเบเบเบฒเบ, เปเบเบเปเบฅเบฐเบเบตเบเบตเปเบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเปเบฒเบเปเบเบฅเป pipelines.yml, เปเบเบดเปเบ, เปเบเบเบฒเบเบเบฑเบเบเบฑเบ. , เบเบฐเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเปเบเบฅเป .conf เบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเปเบญเบ.
เบเบงเบเปเบฎเบปเบฒเปเบเปเปเบญเบปเบฒเปเบชเบฑเปเบเบเบฒเบเบเบตเบชเบญเบ. เปเบเบดเปเบโเบเบทโเบงเปเบฒโเบเบงเบโเปเบฎเบปเบฒโเบชเบฒโเบเบปเบโเปเบฅเบฐโเบชเบฒโเบกเบฒเบโเบเบฐโเบซเบเบฒเบโเบเบปเบงโเบซเบผเบฒเบโเบเบถเปเบ. เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบ pipelines.yml, เปเบฅเบฐเบชเปเบฒเบเบฅเบฐเบเบปเบ pipelines เบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบชเปเปเบเบฅเป .conf เบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเปเบญเบ.
เบเบฒเบเปเบเบเบฑเบเบเบธเบกเบตเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบญเบทเปเบ - logstash.yml . เบเบงเบเปเบฎเบปเบฒเบเปเปเปเบเบฐเบเปเบญเบเบกเบฑเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบกเบฑเบเบเบทเปเบเบปเปเบฒ.
เบเบฑเปเบเบเบฑเปเบ, เปเบเบเบชเปเบฒเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒ:
เปเบเบทเปเบญเบฎเบฑเบเบเปเปเบกเบนเบเบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบ, เบชเปเบฒเบฅเบฑเบเบเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบปเบกเบกเบธเบเบงเปเบฒเบเบตเปเปเบกเปเบ tcp เปเบเบเบญเบ 5046, เปเบฅเบฐเบชเปเบฒเบฅเบฑเบเบเบปเบเบเบฐเบฅเบดเบเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเป stdout.
เบเบตเปเปเบกเปเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบตเปเบเปเบฒเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบตเบเบเบปเบงเบเบฑเปเบเบเปเบฒเบญเบดเบ. เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบงเบฝเบเบเบฒเบเปเบเบทเปเบญเบเบเบปเปเบเปเบกเปเบเปเบเบทเปเบญเปเบเบตเบเบเบปเบง.
เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบกเบต docker-compose.yml เบเบตเป
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
เบเบงเบเปเบฎเบปเบฒเปเบซเบฑเบเบซเบเบฑเบเบขเบนเปเบเบตเป?
- เปเบเบทเบญเบเปเบฒเบเปเบฅเบฐเบเบฐเบฅเบดเบกเบฒเบเปเบเปเบเบทเบเปเบญเบปเบฒเบกเบฒเบเบฒเบ docker-compose.yml เบเบปเปเบเบชเบฐเบเบฑเบ (เบซเบเบถเปเบเบเปเบญเบเบเบตเป stack เบเบฑเบเบซเบกเบปเบเบเบทเบเปเบเบตเบเบเบปเบง) เปเบฅเบฐเบเปเบญเบเบเบดเบเบงเปเบฒเบเบงเบเบกเบฑเบเบเปเปเบกเบตเบเบปเบเบเบฐเบเบปเบเบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบเบเปเปเบเบฒเบเบฅเบงเบกเบขเบนเปเบเบตเปเบเบตเป.
- เบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบฑเบเบเบถเบเปเบถเปเบเบเบฒเบเบฎเบนเบ docker.elastic.co/logstash/logstash:6.3.2 เปเบฅเบฐเบเบฑเปเบเบเบทเปเบกเบฑเบเบงเปเบฒ logstash_one_channel.
- เบเบงเบเปเบฎเบปเบฒเบชเบปเปเบเบเปเปเบเบญเบ 5046 เบเบฒเบเปเบเบเบนเปเบเบญเบเปเบเบเปเบเบต, เปเบเบซเบฒเบเบญเบเบเบฒเบเปเบเบเบฝเบงเบเบฑเบ.
- เบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเปเบเบเบเบตเปเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเปเปเบเบญเบเบเบงเบเปเบฎเบปเบฒ ./config/pipelines.yml เบเบฑเบเปเบเบฅเป /usr/share/logstash/config/pipelines.yml เบเบฒเบเปเบเบเบฑเบ, เบเปเบญเบเบเบตเป logstash เบเบฐเปเบญเบปเบฒเบกเบฑเบเบเบถเปเบเปเบฅเบฐเปเบฎเบฑเบเปเบซเปเบกเบฑเบเบญเปเบฒเบเปเบเปเปเบเบปเปเบฒเบเบฑเปเบ, เปเบเบเปเบฅเบฐเบเบต.
- เบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเปเบเบเบเบตเป ./config/pipelines directory, เบเปเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบกเบตเปเบเบฅเปเบเบตเปเบกเบตเบเบฒเบเบเบฑเปเบเบเปเบฒเบเปเบญเบ, เปเบเบปเปเบฒเปเบเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต /usr/share/logstash/config/pipelines เปเบฅเบฐเบเบฑเบเปเบฎเบฑเบเปเบซเปเบกเบฑเบเบญเปเบฒเบเปเบเปเปเบเบปเปเบฒเบเบฑเปเบ.
เปเบเบฅเป Pipelines.yml
- pipeline.id: HABR
pipeline.workers: 1
pipeline.batch.size: 1
path.config: "./config/pipelines/habr_pipeline.conf"
เบเปเบญเบเบเบฒเบเบซเบเบถเปเบเบเบตเปเบกเบตเบเบปเบงเบฅเบฐเบเบธ HABR เปเบฅเบฐเปเบชเบฑเปเบเบเบฒเบเปเบเบซเบฒเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบญเบเบกเบฑเบเปเบเปเบเบทเบเบญเบฐเบเบดเบเบฒเบเบขเบนเปเบเบตเปเบเบตเป.
เปเบฅเบฐเบชเบธเบเบเปเบฒเบเปเบกเปเบเปเบเบฅเป โ./config/pipelines/habr_pipeline.confโ
input {
tcp {
port => "5046"
}
}
filter {
mutate {
add_field => [ "habra_field", "Hello Habr" ]
}
}
output {
stdout {
}
}
เบขเปเบฒเปเบเบปเปเบฒเปเบเปเบเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเบญเบเบกเบฑเบเบชเปเบฒเบฅเบฑเบเบเบญเบเบเบตเป, เปเบซเปเบเบฐเบเบฒเบเบฒเบกเปเบฅเปเบเบกเบฑเบ:
docker-compose up
เบเบงเบเปเบฎเบปเบฒเปเบซเบฑเบเบซเบเบฑเบ?
เบเบนเปเบเบญเบเปเบเบเปเบเบตเปเบเปเปเบฅเบตเปเบกเบเบปเปเบเปเบฅเปเบง. เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเบงเบเบชเบญเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบญเบเบกเบฑเบ:
echo '13123123123123123123123213123213' | nc localhost 5046
เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเปเบซเบฑเบเบเบฒเบเบเบญเบเบชเบฐ เปเบญเบ เปเบเบเบญเบเปเบเบเบเบฑเบเบเบธ:
เปเบเปเปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบ, เบเบงเบเปเบฎเบปเบฒเบเบฑเบเปเบซเบฑเบเบงเปเบฒ:
logstash_one_channel | [2019-04-29T11:28:59,790][ERROR][logstash.licensechecker.licensereader] เบเปเปเบชเบฒเบกเบฒเบเบเบถเบเบเปเปเบกเบนเบเปเบเบญเบฐเบเบธเบเบฒเบเบเบฒเบเปเบเบตเบเปเบงเบตเปเบเบญเบฐเบเบธเบเบฒเบเปเบเป {:message=>โElasticsearch Unreachable: [http://elasticsearch:9200/][Manticore ::ResolutionFailure] elasticsearch",...
logstash_one_channel | [2019-04-29T11:28:59,894][INFO][logstash.pipeline ] เบเปเปเปเบเปเปเบฅเบตเปเบกเบชเบณเปเบฅเบฑเบเปเบฅเปเบง {:pipeline_id=>".monitoring-logstash", :thread=>"# "}
logstash_one_channel | [2019-04-29T11:28:59,988][INFO ][logstash.agent ] เบเปเปเปเบฅเปเบ {:count=>2, :running_pipelines=>[:HABR, :"monitoring-logstash"], :non_running_pipelines=>[ ]}
logstash_one_channel | [2019-04-29T11:29:00,015][ERROR][logstash.inputs.metrics] X-Pack เบเบทเบเบเบดเบเบเบฑเปเบเบขเบนเปเปเบ Logstash เปเบเปเบเปเปเปเบกเปเบเบขเบนเปเปเบ Elasticsearch. เบเบฐเบฅเบธเบเบฒเบเบดเบเบเบฑเปเบ X-Pack เปเบ Elasticsearch เปเบเบทเปเบญเปเบเปเบเบธเบเบชเบปเบกเบเบฑเบเบเบฒเบเบเบดเบเบเบฒเบก. เบเบธเบเบชเบปเบกเบเบฑเบเบญเบทเปเบเปเบญเบฒเบเบเบฐเบชเบฒเบกเบฒเบเปเบเปเปเบเป.
logstash_one_channel | [2019-04-29T11:29:00,526][INFO][logstash.agent ] เปเบฅเบตเปเบกโเบเบปเปเบโเบชเปเบฒโเปเบฅเบฑเบ Logstash API endpoint {:port=>9600}
logstash_one_channel | [2019-04-29T11:29:04,478][INFO][logstash.outputs.elasticsearch] เบเบณเบฅเบฑเบเปเบฅเปเบเบเบฒเบเบเบงเบเบชเบธเบเบฐเบเบฒเบเปเบเบทเปเบญเปเบเบดเปเบเบงเปเบฒเบเบฒเบเปเบเบทเปเบญเบกเบเปเป Elasticsearch เปเบฎเบฑเบเบงเบฝเบเบซเบผเบทเบเปเป {:healthcheck_url=>http://elasticsearch:9200/, :path=> "/"}
logstash_one_channel | [2019-04-29T11:29:04,487][WARN ][logstash.outputs.elasticsearch] เปเบเปเบเบฐเบเบฒเบเบฒเบกเบเบทเปเบเบเบทเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบเบปเบงเบขเปเบฒเบ ES เบเบตเปเบเบฒเบเปเบฅเปเบง, เปเบเปเปเบเปเบฎเบฑเบเบเบงเบฒเบกเบเบดเบเบเบฒเบ. {:url=>โ
logstash_one_channel | [2019-04-29T11:29:04,704][INFO ][logstash.licensechecker.licensereader] เบเบณเบฅเบฑเบเปเบฅเปเบเบเบฒเบเบเบงเบเบชเบธเบเบฐเบเบฒเบเปเบเบทเปเบญเปเบเบดเปเบเบงเปเบฒเบเบฒเบเปเบเบทเปเบญเบกเบเปเป Elasticsearch เปเบฎเบฑเบเบงเบฝเบเบซเบผเบทเบเปเป {:healthcheck_url=>http://elasticsearch:9200/, :path=> "/"}
logstash_one_channel | [2019-04-29T11:29:04,710][WARN ][logstash.licensechecker.licensereader] เปเบเปเบเบฐเบเบฒเบเบฒเบกเบเบทเปเบเบเบทเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบเบปเบงเบขเปเบฒเบ ES เบเบตเปเบเบฒเบเปเบฅเปเบง, เปเบเปเปเบเปเบฎเบฑเบเบเบงเบฒเบกเบเบดเบเบเบฒเบ. {:url=>โ
เปเบฅเบฐเบเบฑเบเบเบถเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบกเปเบ creeping เปเบเบดเบเบเบฐเบซเบผเบญเบเปเบงเบฅเบฒ.
เปเบเบเบตเปเบเบตเปเบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเปเบเบฑเปเบเปเบชเปเบเปเปเบเบงเบฒเบกเบชเบตเบเบฝเบงเบงเปเบฒเบเปเปเปเบเปเปเบเบตเบเบเบปเบงเบขเปเบฒเบเบชเปเบฒเปเบฅเบฑเบเบเบปเบ, เบเปเปเบเบงเบฒเบกเบชเบฐเปเบเบเบเปเปเบเบดเบเบเบฒเบเบชเบตเปเบเบเปเบฅเบฐเปเบเบฑเบเบชเบตเปเบซเบผเบทเบญเบเบเปเปเบเบงเบฒเบกเบเปเบฝเบงเบเบฑเบเบเบงเบฒเบกเบเบฐเบเบฒเบเบฒเบกเบเบตเปเบเบฐเบเบดเบเบเปเป.
เบญเบฑเบเบเบตเปเปเบเบตเบเบเบถเปเบเปเบเบฒเบฐเบงเปเบฒ logstash.conf, เบฅเบงเบกเบขเบนเปเปเบเบฎเบนเบ, เบกเบตเบเบฒเบเบเบงเบเบชเบญเบเบเบงเบฒเบกเบเปเบญเบกเบเบญเบ elasticsearch. เบซเบผเบฑเบเบเบฒเบเบเบตเปเบเบฑเบเบซเบกเบปเบ, logstash เบเบทเบงเปเบฒเบกเบฑเบเปเบฎเบฑเบเบงเบฝเบเปเบเบฑเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบ Elk stack, เปเบเปเบเบงเบเปเบฎเบปเบฒเปเบเบเบกเบฑเบเบญเบญเบ.
เบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเปเบฎเบฑเบเบงเบฝเบ, เปเบเปเบกเบฑเบเบเปเปเบชเบฐเบเบงเบ.
เบเบฒเบเปเบเปเปเบเปเบกเปเบเปเบเบทเปเบญเบเบดเบเบเบฒเบเบเบงเบเบชเบญเบเบเบตเปเบเปเบฒเบเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก XPACK_MONITORING_ENABLED.
เบกเบฒเบเปเบฝเบเปเบเบ docker-compose.yml เปเบฅเบฐเปเบเบตเบเปเบเปเบกเบฑเบเบญเบตเบเบเบฑเปเบ:
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
เปเบเบเบฑเบเบเบธเบเบฑเบ, เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบกเปเบเบเบต. เบเบฑเบเปเบกเปเบเบเบฝเบกเบเปเบญเบกเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบฅเบญเบ.
เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเบดเบกเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบเปเบ console เบเปเปเปเบ:
echo '13123123123123123123123213123213' | nc localhost 5046
เปเบฅเบฐเปเบเบดเปเบ:
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 | }
เปเบฎเบฑเบเบงเบฝเบเบเบฒเบเปเบเบเปเบญเบเบเบฝเบง
เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเบตเบเบเบปเบง. เปเบเบเบฑเบเบเบธเบเบฑเบเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเปเปเบงเบฅเบฒเปเบเบเบฒเบเบเบฑเปเบเบเปเบฒ logstash เบเบปเบงเบเบญเบเบกเบฑเบเปเบญเบ. เบเปเปเปเบซเปเปเบเบฐเบเบตเปเปเบเบฅเป pipelines.yml เบชเปเบฒเบฅเบฑเบเปเบเบเบฑเบเบเบธเบเบฑเบ, เปเบซเปเปเบเบดเปเบเบชเบดเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบเปเบเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเปเบญเบเบเบฒเบเบเบฝเบง.
เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเปเบญเบเปเบงเบปเปเบฒเบงเปเบฒเบซเบผเบฑเบเบเบฒเบเบเบปเปเบงเปเบเบเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเปเบญเบเบเบฒเบเปเบกเปเบเปเบเปเบญเบฐเบเบดเบเบฒเบเปเบงเปเปเบเบเบนเปเบกเบทเบขเปเบฒเบเปเบเบฑเบเบเบฒเบเบเบฒเบ, เบเบตเปเบเบตเป
เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเบญเปเบฒเบเบเบฒเบชเบฒเบฅเบฑเบเปเบเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบญเบฑเบเบเบตเป
เปเบซเปเปเบเบเบฒเบกเบฅเปเบฒเบเบฑเบเบเบฒเบเบเบฒเบเบชเปเบงเบเบเปเบญเบเบเปเปเบกเบนเบ. เบเบงเบเปเบฎเบปเบฒเปเบเปเปเบซเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเปเบฝเบงเบเบฑเบ TCP เปเบฅเปเบง. เบกเบตเบซเบเบฑเบเบญเบตเบเปเบเปเบเบตเปเปเปเบฒเบชเบปเบเปเบเบขเบนเปเบเบตเปเบเบตเป?
เบเบปเบเบชเบญเบเบเปเปเบเบงเบฒเบกเปเบเบเปเบเปเบเบฒเบเปเบเบฑเปเบเบเบญเบเบซเบปเบงเปเบ
เบกเบตเปเบญเบเบฒเบเบเบตเปเบซเบเปเบฒเบชเบปเบเปเบเบเบตเปเบเบฐเบชเปเบฒเบเบเปเปเบเบงเบฒเบกเบเบปเบเบชเบญเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ.
เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเปเบเบตเบเปเบเป plugin heartbean เปเบเบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบ.
input {
heartbeat {
message => "HeartBeat!"
}
}
เปเบเบตเบเบกเบฑเบ, เปเบฅเบตเปเบกเบฎเบฑเบเปเบเบทเปเบญเบฅเบฐเบเบฒเบเบต
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 | }
เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบฎเบฑเบเปเบฅเบทเปเบญเบเป, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบตเปเบกเบเบฒเบฅเบฒเบกเบดเปเบเบตเปเบฅเบเบฐเบซเปเบฒเบ.
เบเบตเปเปเบกเปเบเบงเบดเบเบตเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบฎเบฑเบเบเปเปเบเบงเบฒเบกเบเบธเบเป 10 เบงเบดเบเบฒเบเบต.
input {
heartbeat {
message => "HeartBeat!"
interval => 10
}
}
เบเบถเบเบเปเปเบกเบนเบเบเบฒเบเปเบเบฅเป
เบเบงเบเปเบฎเบปเบฒเบเบฑเบเปเบเปเบเบฑเบเบชเบดเบเปเบเปเบเบดเปเบเบฎเบนเบเปเบเบเปเบเบฅเป. เบเปเบฒเบกเบฑเบเปเบฎเบฑเบเบงเบฝเบเปเบเปเบเบตเบเบฑเบเปเบเบฅเป, เบเบฒเบเบเบตเบญเบฒเบเบเบฐเบเปเปเบเปเบญเบเบเบฒเบเบเบปเบงเปเบเบ, เบขเปเบฒเบเบซเบเปเบญเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฒเปเบเปเปเบเบเปเบญเบเบเบดเปเบ.
เบญเบตเบเบเบฒเบกเบเปเบฒเบญเบฐเบเบดเบเบฒเบ, เบฎเบนเบเปเบเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบงเบเบเบฐเบเปเบฒเบเบเบทเบเบฑเบ tail -f, i.e. เบญเปเบฒเบเปเบเบงเปเปเป เบซเบผเบท, เปเบเบฑเบเบเบฒเบเปเบฅเบทเบญเบ, เบญเปเบฒเบเปเบเบฅเปเบเบฑเบเปเบปเบ.
เบเบฑเปเบเบเบฑเปเบเบชเบดเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเปเบเปเบฎเบฑเบ:
- เบเบงเบโเปเบฎเบปเบฒโเบเปเบญเบโเบเบฒเบโเบเบตเปโเบเบฐโเปเบเปโเบฎเบฑเบโเปเบชเบฑเปเบโเบเบตเปโเบเปเปโเบเปเบฒเบโเบเบฑเบโเปเบเบฅโเปโเบเบฑเบโเบเบถเบโเบซเบเบถเปเบโ.
- เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเปเบเปเบฎเบฑเบเบเปเปเบกเบนเบเบเบตเปเบเบฝเบเบฅเบปเบเปเบเปเบเบฅเปเบเบฑเบเบเบถเบเบซเบผเบฒเบ, เปเบเบเบฐเบเบฐเบเบตเปเบชเบฒเบกเบฒเบเปเบเบเบชเบดเปเบเบเบตเปเปเบเปเบฎเบฑเบเบเบฒเบเบเปเบญเบเปเบ.
- เบเบงเบโเปเบฎเบปเบฒโเบเปเบญเบโเบเบฒเบโเบเบตเปโเบเบฐโเปเบฎเบฑเบโเปเบซเปโเปเบเปโเปเบเบงเปโเบฒโเปเบโเปเบงโเบฅเบฒโเบเบตเป logstash เปเบกเปเบ restartedโ, เบกเบฑเบโเบเปเปโเปเบเปโเบฎเบฑเบโเบเปเปโเบกเบนเบโเบเบตเปโเบญเบตเบโเปเบเบทเปเบญโเบซเบเบถเปเบโ.
- เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบงเบเบชเบญเบเบงเปเบฒเบเปเบฒ logstash เบเบทเบเบเบดเบ, เปเบฅเบฐเบเปเปเบกเบนเบเบเบฑเบเบชเบทเบเบเปเปเบเบทเบเบเบฝเบเปเบชเปเปเบเบฅเป, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบกเบทเปเบญเบเบงเบเปเบฎเบปเบฒเปเบเบตเบเบเบปเบงเบกเบฑเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบฎเบฑเบเบเปเปเบกเบนเบเบเบตเป.
เปเบเบทเปเบญเบเปเบฒเปเบเบตเบเบเบฒเบเบเบปเบเบฅเบญเบ, เปเบซเปเปเบเบตเปเบกเปเบเบงเบญเบทเปเบเปเบชเป docker-compose.yml, เปเบเบตเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบตเปเบเบงเบเปเบฎเบปเบฒเบงเบฒเบเปเบเบฅเป.
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
เปเบฅเบฐเบเปเบฝเบเบเบฒเบเบชเปเบงเบเบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบเปเบ habr_pipeline.conf
input {
file {
path => "/usr/share/logstash/input/*.log"
}
}
เบกเบฒเปเบฅเบตเปเบกเบเบฑเบเปเบฅเบตเบ:
docker-compose up
เปเบเบทเปเบญเบชเปเบฒเบเปเบฅเบฐเบเบฝเบเปเบเบฅเปเบเบฑเบเบเบถเบเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบเปเบฒเบชเบฑเปเบ:
โจ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 | }
เปเบกเปเบเปเบฅเปเบง, เบกเบฑเบเปเบฎเบฑเบเบงเบฝเบ!
เปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบ, เบเบงเบเปเบฎเบปเบฒเปเบซเบฑเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเบตเปเบกเบเบฒเบเบชเบฐเบซเบเบฒเบกเปเบชเบฑเปเบเบเบฒเบเปเบเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ. เบเบตเปเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเปเบเบญเบฐเบเบฒเบเบปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบชเบฒเบกเบฒเบเบเบฑเปเบเบเบญเบเบเบฑเบเบเบถเบเปเบเบเบกเบฑเบ.
เบฅเบญเบเบญเบตเบเบเบฑเปเบ:
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 | }
เปเบฅเบฐเบเบญเบเบเบตเปเปเบเบซเบฒเปเบเบฅเปเบญเบทเปเบ:
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 | }
เบเบดเปเบเปเบซเบเป! เปเบเบฅเปเปเบเปเบเบทเบเปเบเบฑเบเบเบถเปเบ, เปเบชเบฑเปเบเบเบฒเบเปเบเปเบเบทเบเบฅเบฐเบเบธเบขเปเบฒเบเบเบทเบเบเปเบญเบ, เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบกเปเบเบเบต.
เบขเบธเบ logstash เปเบฅเบฐเปเบฅเบตเปเบกเบเบปเปเบเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบ. เปเบซเปเบฅเปเบเปเบฒ. เบเบงเบฒเบกเบเบฝเบ. เปเบซเบผเบปเปเบฒเบเบฑเปเบ. เบเบงเบเปเบฎเบปเบฒเบเปเปเปเบเปเบฎเบฑเบเบเบฑเบเบเบถเบเปเบซเบผเบปเปเบฒเบเบตเปเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบ.
เปเบฅเบฐเปเบเบเบฑเบเบเบธเบเบฑเบเบเบฒเบเบเบปเบเบฅเบญเบ daring เบเบตเปเบชเบธเบ.
เบเบดเบเบเบฑเปเบ logstash เปเบฅเบฐเบเปเบฒเปเบเบตเบเบเบฒเบ:
echo '3' >> logs/number2.log
echo '4' >> logs/number1.log
เปเบฅเปเบ logstash เบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบเปเบฅเบฐเปเบเบดเปเบ:
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 | }
เปเบซเปเบ! เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบเปเบเบทเบเปเบเบฑเบเบเบถเปเบ.
เปเบเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเปเบเบทเบญเบเบเปเบฒเบเบเปเบฝเบงเบเบฑเบเบชเบดเปเบเบเปเปเปเบเบเบตเป. เบเปเบฒเบเบปเบงเบเบฑเบเบเบธ logstash เบเบทเบเบฅเบถเบ (docker เบขเบธเบ logstash_one_channel && docker rm logstash_one_channel), เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเปเบกเบตเบซเบเบฑเบเบเบฐเบเบทเบเปเบเบฑเบเบเบถเปเบ. เบเบณเปเปเปเบเบเบญเบเปเบเบฅเปเบเบตเปเบกเบฑเบเบเบทเบเบญเปเบฒเบเบเบทเบเปเบเบฑเบเปเบงเปเบเบฒเบเปเบเบเบฑเบ. เบเปเบฒเบเปเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฑเปเบเปเบเปเปเบฅเบตเปเบกเบเบปเปเบ, เบกเบฑเบเบเบฐเบเบญเบกเบฎเบฑเบเบเบฝเบเปเบเปเบชเบฒเบเปเบซเบกเป.
เบเบณเบฅเบฑเบเบญเปเบฒเบเปเบเบฅเปเบเบตเปเบกเบตเบขเบนเป
เบชเบปเบกเบกเบธเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเปเบเบตเบเบเบปเบง logstash เปเบเบฑเบเบเบฑเปเบเบเปเบฒเบญเบดเบ, เปเบเปเบเบงเบเปเบฎเบปเบฒเบกเบตเบเบฑเบเบเบถเบเปเบฅเปเบงเปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบธเบเปเบเปเบเบเบงเบเบกเบฑเบ.
เบเปเบฒเบเบงเบเปเบฎเบปเบฒเปเบฅเปเบ logstash เบเบฑเบเบเบฒเบเบชเปเบงเบเบเปเบญเบเบเปเปเบกเบนเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเปเบเปเบฒเบเปเบเบดเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเปเบกเบตเบซเบเบฑเบเปเบฅเบตเบ. เบเบฝเบเปเบเปเปเบชเบฑเปเบเปเบซเบกเปเบเบฐเบเบทเบเบเบฐเบกเบงเบเบเบปเบเปเบเบ logstash.
เปเบเบทเปเบญเปเบซเปเปเบชเบฑเปเบเบเบฒเบเปเบเบฅเปเบเบตเปเบกเบตเบขเบนเปเบเบทเบเบเบถเบเบเบถเปเบ, เบเปเบฒเบเบเบงเบเปเบเบตเปเบกเปเบเบงเปเบเบตเปเบกเปเบเบตเบกเปเบชเปเบเบฒเบเบชเปเบงเบเบเปเบญเบเบเปเปเบกเบนเบ:
input {
file {
start_position => "beginning"
path => "/usr/share/logstash/input/*.log"
}
}
เบเบดเปเบเปเบเบเบงเปเบฒเบเบฑเปเบ, เบกเบตเบเบงเบฒเบกเปเบเบเบเปเบฒเบเบเบฑเบ: เบเบตเปเบเบฝเบเปเบเปเบเบปเบเบเบฐเบเบปเบเบเปเปเปเบเบฅเปเปเบซเบกเปเบเบตเป logstash เบเบฑเบเบเปเปเบเบฑเบเปเบซเบฑเบ. เบชเปเบฒเบฅเบฑเบเปเบเบฅเปเบเบฝเบงเบเบฑเบเบเบตเปเบขเบนเปเปเบเบเบฒเบเบชเบฐเบซเบเบฒเบกเบเบญเบ view of logstash, เบกเบฑเบเบเบทเปเบเบฐเบซเบเบฒเบเบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒเปเบฅเปเบงเปเบฅเบฐเปเบเบเบฑเบเบเบธเบเบฑเบเบเบฐเปเบญเบปเบฒเบเบฝเบเปเบเปเบฅเบฒเบเบเบฒเบเปเบซเบกเปเปเบเบเบงเบเบกเบฑเบ.
เปเบซเปเบขเบธเบเบขเบนเปเบเบตเปเบเบตเปเปเบฅเบฐเบชเบถเบเบชเบฒเบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบ. เบเบฑเบเบกเบตเบซเบผเบฒเบเบเบฒเบเปเบฅเบทเบญเบ, เปเบเปเบกเบฑเบเบเบฝเบเบเปเบชเปเบฒเบฅเบฑเบเบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบฅเบญเบเบเปเปเปเบเปเบเบเบฑเบเบเบธเบเบฑเบ.
เบเบฒเบเบเปเบฝเบเปเบชเบฑเปเบเบเบฒเบ เปเบฅเบฐเบเปเปเบกเบนเบ
เปเบซเปเบเบฐเบเบฒเบเบฒเบกเปเบเปเปเบเบเบฑเบเบซเบฒเบเปเปเปเบเบเบตเป, เปเบซเปเปเบงเบปเปเบฒเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบกเบตเบเปเปเบเบงเบฒเบกเบเบฒเบเบเปเบญเบเบเบฒเบเบซเบเบถเปเบ, เบเบฒเบเบชเปเบงเบเบเบญเบเบกเบฑเบเปเบเบฑเบเบเปเปเบกเบนเบ, เปเบฅเบฐเบเบฒเบเบเปเปเบเบงเบฒเบกเปเบกเปเบเบเบงเบฒเบกเบเบดเบเบเบฒเบ. เบเบงเบเปเบเบปเบฒเปเบเบเบเปเบฒเบเบเบฑเบเปเบเบเปเบเบฑเบ. เบเบฒเบเบญเบฑเบเปเบกเปเบ INFO, เบเบฒเบเบญเบฑเบเปเบกเปเบเบเบดเบเบเบฒเบ.
เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเปเบเบเปเบเบปเบฒเปเบเบปเปเบฒเบขเบนเปเบเบฒเบเบญเบญเบ. เปเบซเบผเบปเปเบฒเบเบฑเปเบ. เบเบงเบโเปเบฎเบปเบฒโเบเบฝเบโเบเปเปโเบเบงเบฒเบกโเบเปเปโเบกเบนเบโเบเปเบฒเบงโเบชเบฒเบโเบขเบนเปโเปเบโเบเปเบญเบโเบเบฒเบโเบซเบเบถเปเบโ, เปเบฅเบฐโเบเปเปโเบเบงเบฒเบกโเบเบดเบโเบเบฒเบโเปเบโเบญเบตเบโ.
เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เบเปเบฒเบเบเบฒเบเบเบฒเบเบชเปเบงเบเบเปเบญเบเปเบเบปเปเบฒเปเบเบซเบฒเบเบฒเบเบเบฑเปเบเบเบญเบเปเบฅเบฐเบเบปเบเบเบฐเบฅเบดเบ.
เบเบฒเบเบเปเบฒเปเบเปเบเบฒเบเบชเปเบงเบเบเบฒเบเบเบฑเปเบเบเบญเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบงเบดเปเบเบฒเบฐเบเปเปเบเบงเบฒเบกเบเบตเปเปเบเบปเปเบฒเบกเบฒ, เปเบเปเบฎเบฑเบ hash (เบเบนเปเบเบตเปเบชเปเบฒเบเบฑเบ) เบเบฒเบเบกเบฑเบ, เบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเปเปเบฅเปเบง, i.e. disassemble เบเบฒเบกเปเบเบทเปเบญเบเปเบ. เปเบฅเบฐเปเบเบเบฒเบเบเบปเบเบเบฐเบฅเบดเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบฅเบทเบญเบเบเปเปเบเบงเบฒเบกเปเบฅเบฐเบชเบปเปเบเปเบเปเบฅเบฐเบเบปเบเปเบเบซเบฒเบเปเบญเบเบเบฒเบเบเบญเบเบเบปเบเปเบญเบ.
เบงเบดเปเบเบฒเบฐเบเปเปเบเบงเบฒเบกเบเปเบงเบ grok
เปเบเบทเปเบญเปเบเบเบชเบฒเบเบเปเปเบเบงเบฒเบกเปเบฅเบฐเปเบเปเบฎเบฑเบเบเบธเบเบเบญเบเบเบฒเบเบชเบฐเบซเบเบฒเบกเบเบฒเบเบเบงเบเปเบเบปเบฒ, เบกเบต plugin เบเบดเปเบชเบเปเบเบเบฒเบเบเบฒเบเบเบฑเปเบเบเบญเบ - grok .
เปเบเบเบเปเปเบเบฑเปเบเปเบเบปเปเบฒเบซเบกเบฒเบเปเบซเปเบเบปเบเปเบญเบเบกเบตเบฅเบฒเบเบฅเบฐเบญเบฝเบเบเปเบฝเบงเบเบฑเบเบกเบฑเบเบขเบนเปเบเบตเปเบเบตเป (เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบตเปเบเปเบฒเบเบฐเปเบเบปเปเบฒเบญเปเบฒเบเปเบเบดเบ
เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฑเบเบชเบดเบเปเบเบเปเบฝเบงเบเบฑเบเบฎเบนเบเปเบเบเบเบญเบเบชเบฒเบเปเบเบปเปเบฒ. เบเปเบญเบเบกเบตเบเบงเบเบกเบฑเบเปเบเบเบเบตเป:
1 เบเปเปโเบกเบนเบโเบเปเบฒเบงโเบชเบฒเบ1
2 เบเปเปโเบเบงเบฒเบกโเบเบดเบโเบเบฒเบ2
เปเบซเบผเบปเปเบฒเบเบฑเปเบ. เบเบปเบงเบฅเบฐเบเบธเบกเบฒเบเปเบญเบ, เบเบฒเบเบเบฑเปเบ INFO/Error, เบเบฒเบเบเบฑเปเบเบเบฒเบเบเบณเบเบตเปเบเปเปเบกเบตเบเปเบญเบเบซเบงเปเบฒเบ.
เบกเบฑเบเบเปเปเบเบฒเบ, เปเบเปเบกเบฑเบเบเบฝเบเบเปเบเบตเปเบเบฐเปเบเบปเปเบฒเปเบเบซเบผเบฑเบเบเบฒเบเบเบญเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบ.
เบเบฑเปเบเบเบฑเปเบ, เปเบเบชเปเบงเบเบเบฒเบเบเบฑเปเบเบเบญเบเบเบญเบ plugin grok, เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเปเบฒเบเบปเบเบฎเบนเบเปเบเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบเบชเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ.
เบกเบฑเบเบเบฐเบกเบตเบฅเบฑเบเบชเบฐเบเบฐเบเบตเป:
filter {
grok {
match => { "message" => ["%{INT:message_id} %{LOGLEVEL:message_type} %{WORD:message_text}"] }
}
}
เปเบเบเบเบทเปเบเบเบฒเบเปเบฅเปเบงเบกเบฑเบเปเบเบฑเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบปเบเบเบฐเบเบด. เบฎเบนเบเปเบเบเบเบตเปเปเบฎเบฑเบเปเบฅเปเบงเปเบกเปเบเบเบทเบเบเปเบฒเปเบเป, เปเบเบฑเปเบ: INT, LOGLEVEL, WORD. เบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒ, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบฎเบนเบเปเบเบเบญเบทเปเบเป, เบชเบฒเบกเบฒเบเบเบปเบเปเบเปเบเบตเปเบเบตเป
เปเบเบเบฑเบเบเบธเบเบฑเบ, เบเปเบฒเบเบเบฒเบเบเบฑเปเบเบเบญเบเบเบตเป, เบชเบฐเบเบดเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฝเบเปเบเบฑเบ hash เบเบญเบเบชเบฒเบกเบเปเบญเบเบเปเปเบกเบนเบ: message_id, message_type, message_text.
เบเบงเบเปเบเบปเบฒเปเบเบปเปเบฒเบเบฐเบเบทเบเบชเบฐเปเบเบเบขเบนเปเปเบเบเบฒเบเบเบปเบเบเบฐเบฅเบดเบ.
เบเปเบฒเบเบปเบเปเบชเบฑเปเบเบเบฒเบเบเปเปเบเบงเบฒเบกเปเบเบซเบฒเบเบฒเบเบเบปเบเบเบฐเบฅเบดเบเปเบเบเปเบเปเบเปเบฒเบชเบฑเปเบ if
เปเบเบเบฒเบเบเบปเบเบเบฐเบฅเบดเบ, เบเบฑเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบทเป, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเบเบเปเปเบเบงเบฒเบกเบญเบญเบเปเบเบฑเบเบชเบญเบเบชเบฒเบ. เบเบฒเบเบขเปเบฒเบ - เปเบเบดเปเบเปเบกเปเบ iNFO, เบเบฐเบเบทเบเบชเบปเปเบเบญเบญเบเปเบเบซเบฒ console, เปเบฅเบฐเบกเบตเบเปเปเบเบดเบเบเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบชเบปเปเบเบญเบญเบเปเบเบซเบฒเปเบเบฅเป.
เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเบเบเปเปเบเบงเบฒเบกเปเบซเบผเบปเปเบฒเบเบตเปเปเบเบงเปเบ? เปเบเบทเปเบญเบเปเบเบเบญเบเบเบฑเบเบซเบฒเปเบเปเปเบเบฐเบเปเบฒเบเบฒเบเปเบเปเปเบ - เบซเบผเบฑเบเบเบฒเบเบเบตเปเบเบฑเบเบซเบกเบปเบ, เบเบงเบเปเบฎเบปเบฒเบกเบตเบเปเบญเบเบเปเปเบเบงเบฒเบกเบเบตเปเบญเบธเบเบดเบเบเบปเบเปเบฅเปเบง, เปเบเบดเปเบเบชเบฒเบกเบฒเบเปเบญเบปเบฒเบชเบญเบเบเปเบฒเปเบเบปเปเบฒเบเบฑเปเบ: INFO เปเบฅเบฐ ERROR. เบกเบฑเบเปเบกเปเบเบเบปเบเบเบทเปเบเบเบฒเบเบเบตเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบฅเบทเบญเบเปเบเบเปเบเปเบเปเบฒเบเบฐเปเบซเบผเบเบเบฒเบ if.
if [message_type] == "ERROR" {
# ะะดะตัั ะฒัะฒะพะดะธะผ ะฒ ัะฐะนะป
} else
{
# ะะดะตัั ะฒัะฒะพะดะธะผ ะฒ stdout
}
เบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบฒเบเบชเบฐเบซเบเบฒเบกเปเบฅเบฐเบเบนเปเบเบฐเบเบญเบเบเบฒเบเบชเบฒเบกเบฒเบเบเบปเบเปเบเปเบขเบนเปเปเบเบเบฒเบเบเบตเป
เปเบเบเบฑเบเบเบธเบเบฑเบ, เบเปเบฝเบงเบเบฑเบเบเบฒเบเบชเบฐเบซเบฅเบธเบเบเบปเบงเบเบดเบเบเบญเบเบกเบฑเบเปเบญเบ.
เบเบปเบเบเบฐเบฅเบดเบเบเบญเบเบเบญเบเปเบเบ, เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเบเบฐเปเบเปเบเบขเบนเปเบเบตเปเบเบตเป - stdout {}
เปเบเปเบเบปเบเบเบฐเบฅเบดเบเปเบเบซเบฒเปเบเบฅเป - เบเบปเปเบเบเบทเปเปเบงเปเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฑเบเบซเบกเบปเบเบเบตเปเบเบฒเบเบเบฑเบเปเบฅเบฐเปเบเบทเปเบญเปเบซเปเปเบเบฅเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฝเบเบเบปเบเปเบเปเบฎเบฑเบเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเบเปเบเบฒเบเบเบฒเบเบเบญเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบตเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบตเปเปเบ docker-compose.yml.
เบฅเบงเบก:
เบเบฒเบเบชเปเบงเบเบเบปเบเบเบฐเบฅเบดเบเบเบญเบเปเบเบฅเปเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบดเปเบเบเบทเบเบฑเปเบเบเบตเป:
โจoutput {
if [message_type] == "ERROR" {
file {
path => "/usr/share/logstash/output/test.log"
codec => line { format => "custom format: %{message}"}
}
} else
{stdout {
}
}
}
เปเบ docker-compose.yml เบเบงเบเปเบฎเบปเบฒเปเบเบตเปเบกเบเบฐเบฅเบดเบกเบฒเบเบญเบทเปเบเบชเปเบฒเบฅเบฑเบเบเบปเบเบเบฐเบฅเบดเบ:
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
เบเบงเบเปเบฎเบปเบฒเปเบเบตเบเบเบปเบงเบกเบฑเบ, เบฅเบญเบเบกเบฑเบ, เปเบฅเบฐเปเบเบดเปเบเบเบฒเบเปเบเปเบเบญเบญเบเปเบเบฑเบเบชเบญเบเบชเบฒเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com