แจแแกแแแแแ
แกแฎแแ แกแแกแขแแแแก แแแแแแแแแแกแแก แฉแแแ แแแแแฎแแแ แแแแ แ แแแแแแแแแ แกแฎแแแแแกแฎแแ แแฃแ แแแแแก แแแแฃแจแแแแแแก แแฃแชแแแแแแแแ. แแแกแขแ แฃแแแแขแแ แแแ แฉแแแก ELK. แแก แกแขแแขแแ แแแแแฎแแแแแก แฉแแแแก แแแแแชแแแแแแแก แแ แกแขแแแแก แแแงแแแแแแจแ.
แฉแแแ แแ แแแกแแฎแฃแแ แแแแฅแแก แแแแแแ, แ แแ แแฆแแฌแแ แแ แแแกแ แแแแแ แจแแกแแซแแแแแแแแแ, แแแแ แแ แแแแแแ แแแแชแแแขแ แแ แแแ แแแแแ แแขแฃแแแ แแ แแฅแขแแแฃแแ แแ แแแแแแแแแก แแแแแญแ แแแ. แแก แแแแก แแแแ แฎแแแแ, แ แแ แแแฃแฎแแแแแแ แแแแกแ, แ แแ แแ แกแแแแแก แกแแแแแแ แแแแ แ แแแแแแแแแ แแแแฃแแแแขแแชแแ แแ แแแ แกแฃแ แแแแแ, แกแแแแแแ แแแแ แ แฎแแ แแแแแ, แงแแแแ แจแแแแฎแแแแแจแ, แฉแแแ แแฆแแแแแฉแแแแ.
แฉแแแ แแแแแแแแแกแแ แกแขแแแ docker-compose-แแก แกแแจแฃแแแแแแ. แฃแคแ แ แแแขแแช, แฉแแแ แแแฅแแแแ แแแ แแแ แแแฌแแ แแแ docker-compose.yml, แ แแแแแแช แแแแซแแแแแ แกแแจแฃแแแแแแก แแแแแฆแ แกแขแแแ แแแแฅแแแก แฃแแ แแแแแแแ. แแ แแแแฉแแแแแแแแ, แ แแ แแแแแ แฏแแแแ แฃแแแ แแฎแแแก แแงแ, แแฎแแ แฉแแแ แแแก แชแแขแแก แจแแแแกแฌแแ แแแ แฉแแแแก แกแแญแแ แแแแแแแ แแ แแก แแ แแก.
แกแแแฌแฃแฎแแ แแ, แฉแแแแ แแชแแแแแแ แกแแกแขแแแแก แแแแคแแแฃแ แแชแแแกแแแแก, แ แแ แแแแฆแแ แแ แแแแแฃแจแแแแก แแฃแ แแแแแแ แฉแแแแ แแแแแแแชแแแแแ, แแแจแแแแ แฌแแ แแแขแแแฃแแ แแ แแงแ. แแแแขแแ, แฉแแแ แแแแแแฌแงแแแขแแ, แ แแ แฆแแ แแ แแแแแแฃแแ แแแแแแแแแขแแก แชแแ-แชแแแแ แจแแกแฌแแแแ แแ แจแแแแแ แแแ แแแแจแแ แแแแ แแแแ แฃแแแแ.
แแกแ แ แแ, แแแแแฌแงแแ logstash-แแ.
แแแ แแแ, แแแแแแแแแ, Logstash-แแก แแแจแแแแ แแแแขแแแแแ แจแ
แแแแแแแแแแกแแแแก แฉแแแ แแแงแแแแแ docker-compose-แก; แแฅ แแฆแฌแแ แแแ แแฅแกแแแ แแแแแขแแแ แฉแแขแแ แแ MacOS-แแ แแ Ubuntu 18.0.4-แแ.
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-แแแ (แแก, แกแแแแช แแแจแแแแฃแแแ แแแแแ แกแขแแแ) แแ แแคแแฅแ แแ, แ แแ แแกแแแ แแแแแ แแ แแแแฅแแแแแแแ แกแแแ แแ แกแฃแ แแแแ แแฅ.
- แฉแแแ แแฅแแแแ แแ แ logstash แกแแ แแแก(แแแก) docker.elastic.co/logstash/logstash:6.3.2 แกแฃแ แแแแแแ แแ แแฃแฌแแแแแ แแแก logstash_one_channel.
- แฉแแแ แแแแแแแแแ แแแ แขแก 5046 แแแแขแแแแแ แแก แจแแแแแ, แแแแแ แจแแแ แแแ แขแจแ.
- แฉแแแแ แแแแแก แแแแคแแแฃแ แแชแแแก แคแแแแก ./config/pipelines.yml แแแคแแฅแกแแ แแแ แคแแแแจแ /usr/share/logstash/config/pipelines.yml แแแแขแแแแแ แแก แจแแแแแ, แกแแแแช logstash แแแฆแแแก แแแก แแ แแแฎแแแก แแฎแแแแ แฌแแแแแฎแแแแก, แงแแแแแ แจแแแแฎแแแแแกแแแแก.
- แฉแแแ แแแคแแฅแกแแ แแแ ./config/pipelines แแแ แแฅแขแแ แแแก, แกแแแแช แแแแฅแแก แคแแแแแแ แแ แฎแแก แแแ แแแแขแ แแแแ, /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 แแแฃแฌแแแแแแแแ: [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 แกแแแแแแ แฌแแ แขแแแ {: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=>โ
แแ แฉแแแแ แแฃแ แแแแ แแฃแแแแแแ แชแแชแแแก.
แแฅ แแ แแฌแแแแแ แแแแแแงแแแ แจแแขแงแแแแแแแ, แ แแ แแแแกแแแแแ แฌแแ แแแขแแแแ แแแแฌแงแ, แฌแแแแแ แจแแชแแแแแก แจแแขแงแแแแแแแ แแ แงแแแแแแ แจแแขแงแแแแแแแ แแแแแแจแแ แแแแก แแชแแแแแแแก แจแแกแแฎแแ.
แแก แแแแขแแ แฎแแแแ, แ แแ logstash.conf, แ แแแแแแช แจแแแแก แกแฃแ แแแจแ, แจแแแชแแแก elasticsearch-แแก แฎแแแแแกแแฌแแแแแแแแก แจแแแแฌแแแแแก. แงแแแแแแแ แแแแก แจแแแแแ, logstash แแแ แแฃแแแแก, แ แแ แแก แแฃแจแแแแก แ แแแแ แช Elk แกแขแแแแก แแแฌแแแ, แแแแ แแ แฉแแแ แแแแแแงแแแแ แแแ.
แจแแกแแซแแแแแแแ แแฃแจแแแแ, แแแแ แแ แแก แแ แแ แแก แแแกแแฎแแ แฎแแแแแ.
แแแแแกแแแแแ แแ แแก แแ แจแแแแฌแแแแแก แแแแแ แแแ 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
แแฎแแ แงแแแแแคแแ แ แแแ แแแแแ. แแแแขแแแแแ แ แแแแ แแ แแก แแฅแกแแแ แแแแแขแแแแกแแแแก.
แฉแแแ แจแแแแแซแแแ แฎแแแแฎแแ แแแ แแคแแ แจแแแแแ แแแแกแแแจแ:
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-แแ. แแแแแ แ แ แจแแแซแแแแ แแงแแก แแฅ แกแแแแขแแ แแกแ?
แขแแกแขแ แจแแขแงแแแแแแแแแ แแฃแแแกแชแแแแก แแแแแงแแแแแแ
แแ แกแแแแแก แแกแแแ แกแแแแขแแ แแกแ แจแแกแแซแแแแแแแ แแแขแแแแขแฃแ แ แกแแขแแกแขแ แจแแขแงแแแแแแแแแแก แแแแแ แแ แแแแก.
แแแแกแแแแแก แแฅแแแ แฃแแแ แฉแแ แแแ 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, แ.แ. แแแแฎแฃแแแแก แแฎแแ แฎแแแแแก แแ, แ แแแแ แช แแแ แแแแขแ, แแแแฎแฃแแแแก แแแแ แคแแแแก.
แแกแ แ แแ, แ แแกแ แแแฆแแแ แแแแแแ:
- แฉแแแ แแแแแแ แแแแแฆแแ แฎแแแแแ, แ แแแแแแแช แแแ แแฃแแแ แแ แ แแฃแ แแแแแก แคแแแแจแ.
- แฉแแแ แแแกแฃแ แก แแแแแฆแแ แแแแแชแแแแแ, แ แแแแแแแช แฉแแฌแแ แแแแ แ แแแแแแแแ แแฃแ แแแแแก แคแแแแจแ, แแแแแแ แแฃแแแ, แจแแแแแซแแแ แแแแแแกแฎแแแแแ แแก, แ แแช แแแฆแแแฃแแแ แกแแแแแ.
- แฉแแแ แแแแแแ แแแแ แฌแแฃแแแแ, แ แแ แ แแแแกแแช logstash แแแแแแขแแแ แแแแ, แแก แแฆแแ แแแแฆแแแก แแ แแแแแชแแแแแก.
- แฉแแแ แแแแแแ แจแแแแแแฌแแแ, แ แแ แแฃ 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 แแ แแแแฌแงแ แแแแแแแ. แแแแแแแแแ. แกแแฉแฃแแ. แแแแ. แฉแแแ แแฆแแ แแแแแฆแแแ แแ แฉแแแแฌแแ แแแก.
แแฎแแ แแ แงแแแแแแ แแแแแแฃแแ แแฅแกแแแ แแแแแขแ.
แแแแแแกแขแแแแ แแ 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 stop logstash_one_channel && docker rm logstash_one_channel), แแแจแแ แแ แแคแแ แ แแ แแฅแแแแ แแฆแแแฃแแ. แคแแแแแก แแแแแชแแ, แกแแแแช แแก แแแแแฎแแแแแ, แแแแฎแแแแแ แแแแขแแแแแ แจแ. แแฃ แแฅแแแ แแฌแแ แแแแแ แแแก แแฃแแแแแ, แแก แแแแฆแแแก แแฎแแแแ แแฎแแ แฎแแแแแก.
แแ แกแแแฃแแ แคแแแแแแแก แแแแฎแแ
แแแฅแแแ, แแแ แแแแแ แแแฌแงแแแ logstash-แก, แแแแ แแ แฃแแแ แแแแฅแแก แแฃแ แแแแแแ แแ แแแกแฃแ แก แแแแ แแแแฃแจแแแแแ.
แแฃ logstash-แก แแแแฃแจแแแ แแแแแ แแแแแงแแแแแฃแแ แจแแงแแแแแก แแแแงแแคแแแแแแ, แแแ แแคแแ แก แแแแแฆแแแ. แแฎแแแแ แแฎแแแ แฎแแแแแ แแแแฃแจแแแแแแ logstash-แแ.
แแแแกแแแแก, แ แแ แแ แกแแแฃแแ แคแแแแแแแแแ แฎแแแแแ แแแแขแแแแก, แแฅแแแ แฃแแแ แแแแแแขแแ แแแแแขแแแแแ แฎแแแ แจแแงแแแแแก แแแแงแแคแแแแแแจแ:
input {
file {
start_position => "beginning"
path => "/usr/share/logstash/input/*.log"
}
}
แฃแคแ แ แแแขแแช, แแ แกแแแแแก แแแฃแแแกแ: แแก แแฎแแแ แแฎแแแแ แแฎแแ แคแแแแแแก, แ แแแแแแแช logstash-แก แฏแแ แแ แฃแแแฎแแแก. แแแแแ แคแแแแแแแกแแแแก, แ แแแแแแแช แฃแแแ แแงแ logstash-แแก แฎแแแแแก แแแแจแ, แแแก แฃแแแ แแฎแกแแแแ แแแแ แแแแ แแ แแฎแแ แแฎแแแแ แแฎแแ แฉแแแแฌแแ แแแก แแแแฆแแแก แแแแจแ.
แแฅ แจแแแฉแแ แแแ แแ แจแแแแกแฌแแแแแ แจแแงแแแแแก แแแแงแแคแแแแแ. แฏแแ แแแแแ แแแแ แ แแแ แแแแขแแ, แแแแ แแ แแก แกแแแแแ แแกแแ แฉแแแแแแแก แจแแแแแแแ แแฅแกแแแ แแแแแขแแแแกแแแแก.
แแแ แจแ แฃแขแแแแชแแ แแ แแแแแชแแแแ แขแ แแแกแคแแ แแแชแแ
แจแแแแชแแแแ แแแแแแญแ แแ แจแแแแแแ แแ แแแแแแ, แแแฅแแแ, แแแแฅแแก แจแแขแงแแแแแแแแแ แแ แแ แแ แฎแแแแ, แแแแแแ แแ แแแแแแแ แกแแแแคแแ แแแชแแแ, แแแฌแแแ แแ แจแแชแแแแแก แจแแกแแฎแแ. แแกแแแ แแแแกแฎแแแแแแแแแ แขแแแแ. แแแแแแ แแ แแ แแก INFO, แกแฎแแแแ แแ แแก ERROR.
แแแกแแกแแแแแจแ แฃแแแ แแแแแแงแแ แแกแแแ. แแแแ. แฉแแแ แแฌแแ แ แกแแแแคแแ แแแชแแ แจแแขแงแแแแแแแแแก แแ แ แแ แฎแแ, แฎแแแ แจแแชแแแแแก แจแแขแงแแแแแแแแแก แแแแ แแจแ.
แแแแกแแแแแก แแแแแแแ แจแแงแแแแแก แแแแงแแคแแแแแแแแ แคแแแขแ แแ แแ แแแแแแแแแแแ.
แคแแแขแ แแก แแแแงแแคแแแแแแก แแแแแงแแแแแแ แฉแแแ แแแแแแแแแแแแแ แจแแแแกแฃแ แจแแขแงแแแแแแแแก, แแแฆแแแ แแแกแแแ แฐแแจแแก (แแแกแแฆแแแ-แแแแจแแแแแแแแก แฌแงแแแแแแก), แ แแแแแแแแแแช แฃแแแ แจแแแแแซแแแ แแฃแจแแแแ, แ.แ. แแแจแแ แแแ แแแแแแก แแแฎแแแแแ. แแ แแแแแแแแแแ แแแแงแแคแแแแแแจแ แฉแแแ แแแแ แฉแแแ แจแแขแงแแแแแแแแแก แแ แแแแแแแแแแแแ แแแแแแฃแแก แกแแแฃแแแ แแ แฎแแ.
แจแแขแงแแแแแแแแก แแแ แฉแแแ grok-แแ
แขแแฅแกแขแแก แกแขแ แแฅแแแแแแก แแแกแแแแแแแแแแแแ แแ แแแแแแ แแแแแแแก แแแแ แแแแก แแแกแแฆแแแแ, แคแแแขแ แแก แแแแงแแคแแแแแแจแ แแ แแก แกแแแชแแแแฃแ แ แแแแแแแขแ - grok.
แแแแแแก แแแกแแฎแแแก แแแ แแจแ แแแกแ แแแขแแแฃแ แ แแฆแฌแแ แ แแฅ (แแแแกแแแแก แแ แแแฃแแแกแฎแแแ
แแแแกแแแแแก แแฅแแแ แฃแแแ แแแแแฌแงแแแขแแ แจแแงแแแแแก แกแขแ แแฅแแแแแแก แคแแ แแแขแ. แแ แแแฅแแก แแกแแแ:
1 แกแแแแคแแ แแแชแแ แจแแขแงแแแแแแแ1
2 แจแแชแแแแแก แจแแขแงแแแแแแแ2
แแแแ. แฏแแ แแแแแขแแคแแแแขแแ แ แแแแแก, แจแแแแแ INFO/ERROR, แจแแแแแ แ แแแแแแแแ แกแแขแงแแ แแแขแแ แแแแแก แแแ แแจแ.
แแก แแ แแ แแก แ แแฃแแ, แแแแ แแ แกแแแแแ แแกแแ แแแแ แแชแแแก แแ แแแชแแแแก แแแแแแ.
แแกแ แ แแ, grok แแแแฃแแแก แคแแแขแ แแก แแแแงแแคแแแแแแจแ แฉแแแ แฃแแแ แแแแแกแแแฆแแ แแ แแแแฃแจแ แฉแแแแ แกแขแ แแฅแแแแแแก แแแกแแแแแแแแแแแแ.
แแก แแกแ แแแแแแงแฃแ แแแ:
filter {
grok {
match => { "message" => ["%{INT:message_id} %{LOGLEVEL:message_type} %{WORD:message_text}"] }
}
}
แแ แกแแแแแแ, แแก แฉแแแฃแแแแ แแแ แแแแแฎแแขแฃแแแแแ. แแแแแแงแแแแแ แแแ แจแแแแแแแแ, แ แแแแ แแชแแ INT, LOGLEVEL, WORD. แแแแ แแฆแฌแแ แ, แแกแแแ แ แแแแ แช แกแฎแแ แแแแฃแจแแแ, แจแแแแซแแแแ แแฎแแแแ แแฅ
แแฎแแ, แแ แคแแแขแ แแก แแแแแแ, แฉแแแแ แกแขแ แแฅแแแ แแแแแแฅแชแแแ แกแแแ แแแแแก แฐแแจแแ: message_id, message_type, message_text.
แแกแแแ แแแฉแแแแแแ แแฅแแแแ แแแแแแแแแแ แแแแงแแคแแแแแแจแ.
แจแแขแงแแแแแแแแแแก แแแ แจแ แฃแขแแ แแแ แแแแแแแแแแ แแแแงแแคแแแแแแจแ if แแ แซแแแแแแก แแแแแงแแแแแแ
แแแแแแแแแแ แแแแงแแคแแแแแแจแ, แ แแแแ แช แแแแฎแกแแแก, แแแแแ แแแแแ แแแกแแฏแแแแก แแ แแแแแแแ แแแงแแคแแก. แแแแแแ แแ - แ แแแแแแช แแ แแก iNFO, แแแแแแ แแแแกแแแจแ แแ แจแแชแแแแแแแก แจแแแแฎแแแแแจแ, แฉแแแ แแแแแแแขแแแ แคแแแแก.
แ แแแแ แแแแแแกแฎแแแแแ แแก แจแแขแงแแแแแแแแแ? แแ แแแแแแแก แแแแแแแ แแแแ แฃแแแ แแแแแแแแแแก แแแแแกแแแแแก - แแแแแก แแ แแแแแก, แฉแแแ แฃแแแ แแแแฅแแก แแแแแงแแคแแแ message_type แแแแ, แ แแแแแกแแช แจแแฃแซแแแ แแแแฆแแก แแฎแแแแ แแ แ แแแแจแแแแแแแ: 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