ELK-แƒ˜แƒก แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒฃแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ. logstash-แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ

แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜

แƒกแƒฎแƒ•แƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ’แƒ•แƒฎแƒ•แƒ“แƒ แƒ“แƒ˜แƒ“แƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒ— แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒŸแƒฃแƒ แƒœแƒแƒšแƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒก แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ. แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒแƒ“ แƒแƒ˜แƒ แƒฉแƒ˜แƒ”แƒก 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. แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ•แƒ”แƒฎแƒ”แƒ‘แƒ˜แƒ—, แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒ แƒแƒ’แƒแƒ แƒช แƒแƒ แƒ˜แƒก.

แƒแƒกแƒ” แƒ แƒแƒ›, แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ:

ELK-แƒ˜แƒก แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒฃแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ. logstash-แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ

แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒฆแƒ”แƒ‘แƒแƒ“, แƒแƒฎแƒšแƒ แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒ•แƒแƒ แƒแƒฃแƒ“แƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒ”แƒก แƒแƒ แƒ˜แƒก 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

แƒ แƒแƒก แƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ— แƒแƒฅ?

  1. แƒฅแƒกแƒ”แƒšแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒขแƒแƒ›แƒ”แƒ‘แƒ˜ แƒแƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒแƒ แƒ˜แƒ’แƒ˜แƒœแƒแƒšแƒฃแƒ แƒ˜ docker-compose.yml-แƒ“แƒแƒœ (แƒ˜แƒก, แƒกแƒแƒ“แƒแƒช แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ›แƒ—แƒ”แƒšแƒ˜ แƒกแƒขแƒ”แƒ™แƒ˜) แƒ“แƒ แƒ•แƒคแƒ˜แƒฅแƒ แƒแƒ‘, แƒ แƒแƒ› แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ“แƒ˜แƒ“แƒแƒ“ แƒแƒ  แƒ˜แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒœ แƒกแƒแƒ”แƒ แƒ—แƒ แƒกแƒฃแƒ แƒแƒ—แƒ–แƒ” แƒแƒฅ.
  2. แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒ”แƒ แƒ— logstash แƒกแƒ”แƒ แƒ•แƒ˜แƒก(แƒ”แƒ‘แƒก) docker.elastic.co/logstash/logstash:6.3.2 แƒกแƒฃแƒ แƒแƒ—แƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒ•แƒฃแƒฌแƒแƒ“แƒ”แƒ‘แƒ— แƒ›แƒแƒก logstash_one_channel.
  3. แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒ— แƒžแƒแƒ แƒขแƒก 5046 แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ—, แƒ˜แƒ›แƒแƒ•แƒ” แƒจแƒ˜แƒ“แƒ แƒžแƒแƒ แƒขแƒจแƒ˜.
  4. แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒ˜แƒšแƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒก ./config/pipelines.yml แƒ•แƒแƒคแƒ˜แƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒ— แƒคแƒแƒ˜แƒšแƒจแƒ˜ /usr/share/logstash/config/pipelines.yml แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ—, แƒกแƒแƒ“แƒแƒช logstash แƒแƒ˜แƒฆแƒ”แƒ‘แƒก แƒ›แƒแƒก แƒ“แƒ แƒ’แƒแƒฎแƒ“แƒ˜แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒแƒ“แƒก, แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.
  5. แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒคแƒ˜แƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒ— ./config/pipelines แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒก, แƒกแƒแƒ“แƒแƒช แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒแƒ แƒฎแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒ—, /usr/share/logstash/config/pipelines แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ แƒ“แƒ แƒแƒกแƒ”แƒ•แƒ” แƒ•แƒแƒฅแƒชแƒ”แƒ•แƒ— แƒ›แƒแƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒแƒ“.

ELK-แƒ˜แƒก แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒฃแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ. logstash-แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ

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

แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ— แƒžแƒแƒกแƒฃแƒฎแƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒ™แƒแƒœแƒกแƒแƒšแƒจแƒ˜:

ELK-แƒ˜แƒก แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒฃแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ. logstash-แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ

แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ›แƒแƒ•แƒ” แƒ“แƒ แƒแƒก, แƒฉแƒ•แƒ”แƒœ แƒแƒกแƒ”แƒ•แƒ” แƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ—:

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=>โ€œแƒ”แƒšแƒแƒกแƒขแƒ˜แƒฃแƒ แƒ˜:9200/", :error_type=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError, :error=>"Elasticsearch แƒ›แƒ˜แƒฃแƒฌแƒ•แƒ“แƒแƒ›แƒ”แƒšแƒ˜แƒ: [http://elasticsearch:9200/:][Resoureail:]Resoureail แƒ”แƒšแƒแƒกแƒขแƒ˜แƒฃแƒ แƒ˜ แƒซแƒ˜แƒ”แƒ‘แƒ"}
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=>โ€œแƒ”แƒšแƒแƒกแƒขแƒ˜แƒฃแƒ แƒ˜:9200/", :error_type=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError, :error=>"Elasticsearch แƒ›แƒ˜แƒฃแƒฌแƒ•แƒ“แƒแƒ›แƒ”แƒšแƒ˜แƒ: [http://elasticsearch:9200/:][Resoureail:]Resoureail แƒ”แƒšแƒแƒกแƒขแƒ˜แƒฃแƒ แƒ˜ แƒซแƒ˜แƒ”แƒ‘แƒ"}

แƒ“แƒ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒŸแƒฃแƒ แƒœแƒแƒšแƒ˜ แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ•แƒแƒ“ แƒชแƒแƒชแƒแƒ•แƒก.

แƒแƒฅ แƒ›แƒ” แƒ›แƒฌแƒ•แƒแƒœแƒ”แƒ“ แƒ’แƒแƒ›แƒแƒ•แƒงแƒแƒ•แƒ˜ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ, แƒ แƒแƒ› แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒแƒ˜แƒฌแƒงแƒ, แƒฌแƒ˜แƒ—แƒšแƒแƒ“ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒงแƒ•แƒ˜แƒ—แƒšแƒแƒ“ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒชแƒ“แƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘. แƒ”แƒšแƒแƒกแƒขแƒ˜แƒฃแƒ แƒ˜: 9200.
แƒ”แƒก แƒ˜แƒ›แƒ˜แƒขแƒแƒ› แƒฎแƒ“แƒ”แƒ‘แƒ, แƒ แƒแƒ› 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, แƒ”.แƒ˜. แƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒแƒ‘แƒก แƒแƒฎแƒแƒš แƒฎแƒแƒ–แƒ”แƒ‘แƒก แƒแƒœ, แƒ แƒแƒ’แƒแƒ แƒช แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜, แƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒแƒ‘แƒก แƒ›แƒ—แƒ”แƒš แƒคแƒแƒ˜แƒšแƒก.

แƒแƒกแƒ” แƒ แƒแƒ›, แƒ แƒ˜แƒกแƒ˜ แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ แƒ’แƒ•แƒ˜แƒœแƒ“แƒ:

  1. แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒ˜แƒœแƒ“แƒ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒแƒ— แƒฎแƒแƒ–แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ“แƒแƒ แƒ—แƒฃแƒšแƒ˜แƒ แƒ”แƒ แƒ— แƒŸแƒฃแƒ แƒœแƒแƒšแƒ˜แƒก แƒคแƒแƒ˜แƒšแƒจแƒ˜.
  2. แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒกแƒฃแƒ แƒก แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒแƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒŸแƒฃแƒ แƒœแƒแƒšแƒ˜แƒก แƒคแƒแƒ˜แƒšแƒจแƒ˜, แƒ˜แƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“, แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒœแƒ•แƒแƒกแƒฎแƒ•แƒแƒ•แƒแƒ— แƒ˜แƒก, แƒ แƒแƒช แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒกแƒแƒ˜แƒ“แƒแƒœ.
  3. แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒ˜แƒœแƒ“แƒ แƒ“แƒแƒ•แƒ แƒฌแƒ›แƒฃแƒœแƒ“แƒ”แƒ—, แƒ แƒแƒ› แƒ แƒแƒ“แƒ”แƒกแƒแƒช logstash แƒ’แƒแƒ“แƒแƒ˜แƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ‘แƒ, แƒ˜แƒก แƒแƒฆแƒแƒ  แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒก แƒแƒ› แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก.
  4. แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒ˜แƒœแƒ“แƒ แƒจแƒ”แƒ•แƒแƒ›แƒแƒฌแƒ›แƒแƒ—, แƒ แƒแƒ› แƒ—แƒฃ 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

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ