เดžเด™เตเด™เตพ ELK, เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเต เดŽเดจเตเดจเดฟเดตเดฏเตเดฎเดพเดฏเดฟ เดธเตเดนเตƒเดคเตเดคเตเด•เตเด•เดณเดพเดฃเต. เดญเดพเด—เด‚ 2

เดžเด™เตเด™เตพ ELK, เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเต เดŽเดจเตเดจเดฟเดตเดฏเตเดฎเดพเดฏเดฟ เดธเตเดนเตƒเดคเตเดคเตเด•เตเด•เดณเดพเดฃเต. เดญเดพเด—เด‚ 2

เดซเตเดฐเดฃเตเดŸเตเดธเต เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเตเด‚ ELK เด‰เด‚ เดŽเด™เตเด™เดจเต† เด‰เดฃเตเดŸเดพเด•เตเด•เดพเด‚ เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดŽเดจเตเดฑเต† เด•เดฅ เดžเดพเตป เดคเตเดŸเดฐเตเดจเตเดจเต (เด†เดฐเด‚เดญเด‚ เด‡เดตเดฟเดŸเต†). เดˆ เด•เต‹เดฎเตเดชเดฟเดจเต‡เดทเดจเต เด’เดฐเต เดฎเดŸเดฟเดฏเตเด‚ เด•เต‚เดŸเดพเดคเต† เดตเดณเดฐเต† เดตเดฒเดฟเดฏ เดฒเต‹เด—เตเด•เตพ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเดพเตป เดชเตเดฐเดพเดชเตเดคเดฎเดพเดฃเต†เดจเตเดจเต เดžเดพเตป เดจเดฟเด™เตเด™เดณเต† เด“เตผเดฎเตเดฎเดฟเดชเตเดชเดฟเด•เตเด•เดŸเตเดŸเต†. เดฒเต‹เด—เตเดธเตเดฑเตเดฑเดพเดทเต, เด•เดฟเดฌเดพเดจ เด˜เดŸเด•เด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเต เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเด‚ เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด‡เดคเตเดคเดตเดฃ เดจเดฎเตเดฎเตพ เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเด‚.

ELK เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเดฒเต† เดฒเต‹เด—เตเดธเตเดฑเตเดฑเดพเดทเต, เดฒเต‹เด—เตเด•เตพ เดฌเตเดฆเตเดงเดฟเดชเดฐเดฎเดพเดฏเดฟ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเตเด•เดณเตเดŸเต† เดฐเต‚เดชเดคเตเดคเดฟเตฝ เด‡เดฒเดพเดธเตเดฑเตเดฑเดฟเด•เต เดชเตเดฒเต†เดฏเตโ€Œเดธเตโ€Œเดฎเต†เดจเตเดฑเดฟเดจเดพเดฏเดฟ เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเตเดฑเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดคเตเดคเดฟเตฝ เด•เดฟเดฌเดพเดจเดฏเดฟเตฝ เดตเดฟเดตเดฟเดง เดฆเตƒเดถเตเดฏเดตเตฝเด•เตเด•เดฐเดฃเด™เตเด™เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเต เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฃเต.

เด‡เตปเดธเตเดฑเตเดฑเดฒเต‡เดทเตป

เดฐเดฃเตเดŸเต เด˜เดŸเตเดŸเด™เตเด™เตพ เด‰เตพเด•เตเด•เตŠเดณเตเดณเตเดจเตเดจเต:

  • OpenJDK เดชเดพเด•เตเด•เต‡เดœเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.
  • เดฒเต‹เด—เตเดธเตเดฑเตเดฑเดพเดทเต เดชเดพเด•เตเด•เต‡เดœเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

OpenJDK เดชเดพเด•เตเด•เต‡เดœเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

OpenJDK เดชเดพเด•เตเด•เต‡เดœเต เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เด…เตบเดชเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดตเต‡เดฃเด‚. เดคเตเดŸเตผเดจเตเดจเต เดˆ เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดชเดพเดค เดตเดฟเตปเดกเต‹เดธเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต† $env:Path, $env:JAVA_HOME เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเดฟเตฝ เดจเตฝเด•เดฃเด‚:

เดžเด™เตเด™เตพ ELK, เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเต เดŽเดจเตเดจเดฟเดตเดฏเตเดฎเดพเดฏเดฟ เดธเตเดนเตƒเดคเตเดคเตเด•เตเด•เดณเดพเดฃเต. เดญเดพเด—เด‚ 2

เดžเด™เตเด™เตพ ELK, เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเต เดŽเดจเตเดจเดฟเดตเดฏเตเดฎเดพเดฏเดฟ เดธเตเดนเตƒเดคเตเดคเตเด•เตเด•เดณเดพเดฃเต. เดญเดพเด—เด‚ 2

เดจเดฎเตเด•เตเด•เต เดœเดพเดต เดชเดคเดฟเดชเตเดชเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเด‚:

PS C:> java -version
openjdk version "13.0.1" 2019-10-15
OpenJDK Runtime Environment (build 13.0.1+9)
OpenJDK 64-Bit Server VM (build 13.0.1+9, mixed mode, sharing)

เดฒเต‹เด—เตเดธเตเดฑเตเดฑเดพเดทเต เดชเดพเด•เตเด•เต‡เดœเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

Logstash เดตเดฟเดคเดฐเดฃเดคเตเดคเต‹เดŸเตŠเดชเตเดชเด‚ เด†เตผเด•เตเด•เตˆเดตเต เดซเดฏเตฝ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด• เด‡เดตเดฟเดŸเต† เดจเดฟเดจเตเดจเต. เด†เตผเด•เตเด•เตˆเดตเต เดกเดฟเดธเตเด•เดฟเดจเตเดฑเต† เดฑเต‚เดŸเตเดŸเดฟเดฒเต‡เด•เตเด•เต เด…เตบเดชเดพเด•เตเด•เต เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เดฃเด‚. เดซเต‹เตพเดกเดฑเดฟเดฒเต‡เด•เตเด•เต เด…เตบเดชเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด• C:Program Files เด‡เดคเต เดตเดฟเดฒเดฎเดคเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ, เดฒเต‹เด—เตเดธเตเดฑเตเดฑเดพเดทเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเตป เดตเดฟเดธเดฎเตเดฎเดคเดฟเด•เตเด•เตเด‚. เด…เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพ เดซเดฏเดฒเดฟเตฝ เดชเตเดฐเดตเต‡เดถเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต jvm.options เดœเดพเดต เดชเตเดฐเต‹เดธเดธเตเดธเดฟเดจเดพเดฏเดฟ เดฑเดพเด‚ เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดธเต†เตผเดตเดฑเดฟเดจเตเดฑเต† เดฑเดพเดฎเดฟเดจเตเดฑเต† เดชเด•เตเดคเดฟ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดพเตป เดžเดพเตป เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดฌเต‹เตผเดกเดฟเตฝ 16 GB เดฑเดพเด‚ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ เด•เต€เด•เตพ เด‡เดตเดฏเดพเดฃเต:

-Xms1g
-Xmx1g

เดชเด•เดฐเด‚ เดตเดฏเตเด•เตเด•เดฃเด‚:

-Xms8g
-Xmx8g

เด•เต‚เดŸเดพเดคเต†, เดตเดฐเดฟเดฏเดฟเตฝ เด…เดญเดฟเดชเตเดฐเดพเดฏเดฎเดฟเดŸเตเดจเตเดจเดคเต เด‰เดšเดฟเดคเดฎเดพเดฃเต -XX:+UseConcMarkSweepGC. เด‡เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เต‚เดŸเตเดคเตฝ เด‡เดตเดฟเดŸเต†. logstash.conf เดซเดฏเดฒเดฟเตฝ เด’เดฐเต เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต เด…เดŸเตเดคเตเดค เด˜เดŸเตเดŸเด‚:

input {
 stdin{}
}
 
filter {
}
 
output {
 stdout {
 codec => "rubydebug"
 }
}

เดˆ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, Logstash เด•เตบเดธเต‹เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดตเดพเดฏเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด’เดฐเต เดถเต‚เดจเตเดฏเดฎเดพเดฏ เดซเดฟเตฝเดŸเตเดŸเดฑเดฟเดฒเต‚เดŸเต† เด•เดŸเดจเตเดจเตเดชเต‹เด•เตเด•เดฏเตเด‚ เด…เดคเต เด•เตบเดธเต‹เดณเดฟเดฒเต‡เด•เตเด•เต เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดˆ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เดฒเต‹เด—เตเดธเตเดฑเตเดฑเดพเดทเดฟเดจเตเดฑเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดค เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด‚. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดจเดฎเตเด•เตเด•เต เด‡เดคเต เด‡เดจเตเดฑเดฑเดพเด•เตเดŸเต€เดตเต เดฎเต‹เดกเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเด‚:

PS C:...bin> .logstash.bat -f .logstash.conf
...
[2019-12-19T11:15:27,769][INFO ][logstash.javapipeline    ][main] Pipeline started {"pipeline.id"=>"main"}
The stdin plugin is now waiting for input:
[2019-12-19T11:15:27,847][INFO ][logstash.agent           ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
[2019-12-19T11:15:28,113][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}

เดชเต‹เตผเดŸเตเดŸเต 9600-เตฝ เดฒเต‹เด—เตเดธเตเดฑเตเดฑเดพเดทเต เดตเดฟเดœเดฏเด•เดฐเดฎเดพเดฏเดฟ เดธเดฎเดพเดฐเด‚เดญเดฟเดšเตเดšเต.

เด…เดตเดธเดพเดจ เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เด˜เดŸเตเดŸเด‚: เด’เดฐเต เดตเดฟเตปเดกเต‹เดธเต เดธเต‡เดตเดจเดฎเดพเดฏเดฟ เดฒเต‹เด—เตเดธเตเดฑเตเดฑเดพเดทเต เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด•. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดชเดพเด•เตเด•เต‡เดœเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‡เดคเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚ เดŽเตปโ€ŒเดŽเดธเตโ€ŒเดŽเดธเตเดŽเด‚:

PS C:...bin> .nssm.exe install logstash
Service "logstash" installed successfully!

เดคเต†เดฑเตเดฑเต เดธเดนเดฟเดทเตเดฃเตเดค

เดธเต‹เดดเตเดธเต เดธเต†เตผเดตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดŸเตเดฐเดพเตปเดธเตเดซเตผ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดฒเต‹เด—เตเด•เดณเตเดŸเต† เดธเตเดฐเด•เตเดท เดชเต†เตผเดธเดฟเดธเตเดฑเตเดฑเดจเตเดฑเต เด•เตเดฏเต‚เดธเต เดฎเต†เด•เตเด•เดพเดจเดฟเดธเด‚ เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเดจเตเดจเต.

เด‡เดคเต เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต

เดฒเต‹เด—เต เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต เดธเดฎเดฏเดคเตเดคเต เด•เตเดฏเต‚เด•เดณเตเดŸเต† เดฒเต‡เด”เดŸเตเดŸเต เด‡เดคเดพเดฃเต: เด‡เตปเดชเตเดŸเตเดŸเต โ†’ เด•เตเดฏเต‚ โ†’ เดซเดฟเตฝเดŸเตเดŸเตผ + เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต.

เด‡เตปเดชเตเดŸเตเดŸเต เดชเตเดฒเด—เดฟเตป เด’เดฐเต เดฒเต‹เด—เต เด‰เดฑเดตเดฟเดŸเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดกเดพเดฑเตเดฑ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเต เด’เดฐเต เด•เตเดฏเต‚เดตเดฟเดฒเต‡เด•เตเด•เต เดŽเดดเตเดคเตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เด‰เดฑเดตเดฟเดŸเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดกเดพเดฑเตเดฑ เดฒเดญเดฟเดšเตเดšเตเดตเต†เดจเตเดจเต เดธเตเดฅเดฟเดฐเต€เด•เดฐเดฃเด‚ เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเต.

เด•เตเดฏเต‚เดตเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดฒเต‹เด—เตเดธเตเดฑเตเดฑเดพเดทเต เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เดซเดฟเตฝเดŸเตเดŸเดฑเดฟเดฒเต‚เดŸเต†เดฏเตเด‚ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดชเตเดฒเด—เดฟเดจเดฟเดฒเต‚เดŸเต†เดฏเตเด‚ เด•เดŸเดจเตเดจเตเดชเต‹เด•เตเดจเตเดจเต. เดฒเต‹เด—เต เด…เดฏเดšเตเดšเดคเดพเดฏเดฟ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเดฟเตฝ เดจเดฟเดจเตเดจเต เดธเตเดฅเดฟเดฐเต€เด•เดฐเดฃเด‚ เดฒเดญเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดฒเต‹เด—เตเดธเตเดฑเตเดฑเดพเดทเต เด•เตเดฏเต‚เดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดค เดฒเต‹เด—เต เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. Logstash เดจเดฟเตผเดคเตเดคเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดธเตเดฅเดฟเดฐเต€เด•เดฐเดฃเด‚ เดฒเดญเดฟเด•เตเด•เดพเดคเตเดค เดŽเดฒเตเดฒเดพ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเดพเดคเตเดค เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเตเด‚ เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเตเด‚ เด•เตเดฏเต‚เดตเดฟเตฝ เดจเดฟเดฒเดจเดฟเตฝเด•เตเด•เตเด‚, เด…เดŸเตเดคเตเดค เดคเดตเดฃ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ Logstash เด…เดต เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดคเตเดŸเดฐเตเด‚.

เด•เดฎเดชเตเดชเต†เดŸเตเดคเตเดคเดฒเต

เดซเดฏเดฒเดฟเดฒเต† เด•เต€เด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เดพเดตเตเดจเตเดจเดคเดพเดฃเต C:Logstashconfiglogstash.yml:

  • queue.type: (เดธเดพเดงเตเดฏเดฎเดพเดฏ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ - persisted ะธ memory (default)).
  • path.queue: (เดธเดฟ: เดฒเต‹เด—เตเดธเตเดฑเตเดฑเดพเดทเตเด•เตเดฏเต‚เดตเดฟเตฝ เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด•เตเดฏเต‚ เดซเดฏเดฒเตเด•เดณเตเดณเตเดณ เดซเต‹เตพเดกเดฑเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดชเดพเดค).
  • queue.page_capacity: (เดชเดฐเดฎเดพเดตเดงเดฟ เด•เตเดฏเต‚ เดชเต‡เดœเต เดตเดฒเตเดชเตเดชเด‚, เดธเตเดฅเดฟเดฐ เดฎเต‚เดฒเตเดฏเด‚ 64mb เด†เดฃเต).
  • queue.drain: (true/false - Logstash เดทเดŸเตเดŸเต เดกเต—เตบ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เด•เตเดฏเต‚ เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต เดจเดฟเตผเดคเตเดคเตเดจเตเดจเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเดจเตเดจเต/เด…เดชเตเดฐเดพเดชเตโ€Œเดคเดฎเดพเด•เตเด•เตเดจเตเดจเต. เด‡เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดพเตป เดžเดพเตป เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ, เด•เดพเดฐเดฃเด‚ เด‡เดคเต เดธเต†เตผเดตเตผ เดทเดŸเตเดŸเตเดกเต—เตบ เดตเต‡เด—เดคเดฏเต† เดจเต‡เดฐเดฟเดŸเตเดŸเต เดฌเดพเดงเดฟเด•เตเด•เตเด‚).
  • queue.max_events: (เด•เตเดฏเต‚เดตเดฟเดฒเต† เดชเดฐเดฎเดพเดตเดงเดฟ เดŽเดฃเตเดฃเด‚ เด‡เดตเดจเตเดฑเตเด•เตพ, เดกเดฟเดซเต‹เตพเดŸเตเดŸเต 0 เด†เดฃเต (เดชเดฐเดฟเดงเดฟเดฏเดฟเดฒเตเดฒเดพเดคเตเดคเดคเต)).
  • queue.max_bytes: (เดชเดฐเดฎเดพเดตเดงเดฟ เด•เตเดฏเต‚ เดตเดฒเตเดชเตเดชเด‚ เดฌเตˆเดฑเตเดฑเตเด•เดณเดฟเตฝ, เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ - 1024mb (1gb)).

เด•เตเดฐเดฎเต€เด•เดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ queue.max_events ะธ queue.max_bytes, เดˆ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เดณเดฟเตฝ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดฎเต‚เดฒเตเดฏเด‚ เดŽเดคเตเดคเตเดฎเตเดชเต‹เตพ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เด•เตเดฏเต‚เดตเดฟเดฒเต‡เด•เตเด•เต เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เดจเดฟเตผเดคเตเดคเตเด‚. เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เด•เตเดฏเต‚เด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เต‚เดŸเตเดคเดฒเดฑเดฟเดฏเตเด• เด‡เดตเดฟเดŸเต†.

เด•เตเดฏเต‚ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดฏเดพเดฏ logstash.yml-เดจเตเดฑเต† เดญเดพเด—เดคเตเดคเดฟเดจเตเดฑเต† เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚:

queue.type: persisted
queue.max_bytes: 10gb

เด•เดฎเดชเตเดชเต†เดŸเตเดคเตเดคเดฒเต

เดฒเต‹เด—เตเดธเตเดฑเตเดฑเดพเดทเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดฎเต‚เดจเตเดจเต เดญเดพเด—เด™เตเด™เตพ เด‰เตพเด•เตเด•เตŠเดณเตเดณเตเดจเตเดจเต, เด‡เตปเด•เดฎเดฟเด‚เด—เต เดฒเต‹เด—เตเด•เตพ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดตเดฟเดตเดฟเดง เด˜เดŸเตเดŸเด™เตเด™เตพเด•เตเด•เต เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเดฎเตเดฃเตเดŸเต: เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตฝ (เด‡เตปเดชเตเดŸเตเดŸเต เดตเดฟเดญเดพเด—เด‚), เดชเดพเดดเตเดธเดฟเด‚เด—เต (เดซเดฟเตฝเดŸเตเดŸเตผ เดตเดฟเดญเดพเด—เด‚), เด‡เดฒเดพเดธเตเดฑเตเดฑเดฟเด•เต (เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดตเดฟเดญเดพเด—เด‚) เดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตเด•เตเด•เตฝ. เดšเตเดตเดŸเต† เดžเด™เตเด™เตพ เด…เดต เด“เดฐเต‹เดจเตเดจเตเด‚ เดธเต‚เด•เตเดทเตเดฎเดฎเดพเดฏเดฟ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด‚.

เด‡เตปเดชเตเดŸเตเดŸเต

เดซเดฏเตฝเดฌเต€เดฑเตเดฑเต เดเดœเดจเตเดฑเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดฑเต‹ เดฒเต‹เด—เตเด•เตพ เด‰เดณเตเดณ เด‡เตปเด•เดฎเดฟเด‚เด—เต เดธเตเดŸเตเดฐเต€เด‚ เดžเด™เตเด™เตพเด•เตเด•เต เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเต. เดˆ เดชเตเดฒเด—เดฟเตป เด†เดฃเต เดžเด™เตเด™เตพ เด‡เตปเดชเตเดŸเตเดŸเต เดตเดฟเดญเดพเด—เดคเตเดคเดฟเตฝ เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต:

input {
  beats {
    port => 5044
  }
}

เดˆ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเดถเต‡เดทเด‚, Logstash เดชเต‹เตผเดŸเตเดŸเต 5044 เด•เต‡เตพเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เดฒเต‹เด—เตเด•เตพ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดซเดฟเตฝเดŸเตเดŸเตผ เดตเดฟเดญเดพเด—เดคเตเดคเดฟเดจเตเดฑเต† เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพเด•เตเด•เดจเตเดธเดฐเดฟเดšเตเดšเต เด…เดต เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด†เดตเดถเตเดฏเดฎเต†เด™เตเด•เดฟเตฝ, SSL-เตฝ เดซเดฏเตฝเดฌเดฟเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดฒเต‹เด—เตเด•เตพ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดšเดพเดจเตฝ เดชเตŠเดคเดฟเดฏเดพเดตเตเดจเตเดจเดคเดพเดฃเต. เดฌเต€เดฑเตเดฑเตเดธเต เดชเตเดฒเด—เดฟเตป เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เต‚เดŸเตเดคเตฝ เดตเดพเดฏเดฟเด•เตเด•เตเด• เด‡เดตเดฟเดŸเต†.

เด…เดฐเดฟเดชเตเดช

เดŽเด•เตโ€Œเดธเตโ€Œเดšเต‡เดžเตเดšเต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเดจเตเดจ เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เดฟเดจเต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เดŸเต†เด•เตโ€Œเดธเตโ€Œเดฑเตเดฑเต เดฒเต‹เด—เตเด•เดณเตเด‚ เดฒเต‹เด—เต เดซเดฏเดฒเดฟเตฝ เดคเดจเตเดจเต† เดตเดฟเดตเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดซเต€เตฝเดกเตเด•เดณเตเดณเตเดณ csv เดซเต‹เตผเดฎเดพเดฑเตเดฑเดฟเดฒเดพเดฃเต. csv เดฑเต†เด•เตเด•เต‹เตผเดกเตเด•เตพ เดชเดพเดดเตโ€Œเดธเดฟเด‚เด—เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, Logstash เดžเด™เตเด™เตพเด•เตเด•เต เดฎเต‚เดจเตเดจเต เดชเตเดฒเด—เดฟเดจเตเด•เตพ เดตเดพเด—เตเดฆเดพเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต: เดตเดฟเดšเตเด›เต‡เดฆเดฟเด•เตเด•เตเด•, csv, grok. เด†เดฆเตเดฏเดคเตเดคเต‡เดคเดพเดฃเต เดเดฑเตเดฑเดตเตเด‚ เด•เต‚เดŸเตเดคเตฝ เดธเตเดตเดฟเดซเตเดฑเตเดฑเต, เดŽเดจเตเดจเดพเตฝ เดเดฑเตเดฑเดตเตเด‚ เดฒเดณเดฟเดคเดฎเดพเดฏ เดฒเต‹เด—เตเด•เตพ เดฎเดพเดคเตเดฐเด‚ เดชเดพเดดเตโ€Œเดธเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดจเต‡เดฐเดฟเดŸเตเดจเตเดจเต.
เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด‡เดคเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฑเต†เด•เตเด•เต‹เตผเดกเดฟเดจเต† เดฐเดฃเตเดŸเดพเดฏเดฟ เดตเดฟเดญเดœเดฟเด•เตเด•เตเด‚ (เดซเต€เตฝเดกเดฟเดจเตเดณเตเดณเดฟเตฝ เด’เดฐเต เด•เต‹เดฎเดฏเตเดŸเต† เดธเดพเดจเตเดจเดฟเดงเตเดฏเด‚ เด•เดพเดฐเดฃเด‚), เด…เดคเดฟเดจเดพเดฒเดพเดฃเต เดฒเต‹เด—เต เดคเต†เดฑเตเดฑเดพเดฏเดฟ เดชเดพเดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต:

โ€ฆ,"MDB:GUID1, Mailbox:GUID2, Event:526545791, MessageClass:IPM.Note, CreationTime:2020-05-15T12:01:56.457Z, ClientType:MOMT, SubmissionAssistant:MailboxTransportSubmissionEmailAssistant",โ€ฆ

เดฒเต‹เด—เตเด•เตพ เดชเดพเดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, IIS. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดซเดฟเตฝเดŸเตเดŸเตผ เดตเดฟเดญเดพเด—เด‚ เด‡เดคเตเดชเต‹เดฒเต†เดฏเดพเด•เดพเด‚:

filter {
  if "IIS" in [tags] {
    dissect {
      mapping => {
        "message" => "%{date} %{time} %{s-ip} %{cs-method} %{cs-uri-stem} %{cs-uri-query} %{s-port} %{cs-username} %{c-ip} %{cs(User-Agent)} %{cs(Referer)} %{sc-status} %{sc-substatus} %{sc-win32-status} %{time-taken}"
      }
      remove_field => ["message"]
      add_field => { "application" => "exchange" }
    }
  }
} 

เดฒเต‹เด—เตเดธเตเดฑเตเดฑเดพเดทเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดจเดฟเด™เตเด™เดณเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต เดธเต‹เดชเดพเดงเดฟเด• เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เตพ, เด…เดคเดฟเดจเดพเตฝ เดซเดฏเตฝเดฌเต€เดฑเตเดฑเต เดŸเดพเด—เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดŸเดพเด—เต เดšเต†เดฏเตเดค เดฒเต‹เด—เตเด•เตพ เดฎเดพเดคเตเดฐเดฎเต‡ เดžเด™เตเด™เตพเด•เตเด•เต เดกเดฟเดธเต†เด•เตเดฑเตเดฑเต เดชเตเดฒเด—เดฟเดจเดฟเดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตเด•เตเด•เดพเตป เด•เดดเดฟเดฏเต‚. IIS. เดชเตเดฒเด—เดฟเดจเดฟเดจเตเดณเตเดณเดฟเตฝ เดžเด™เตเด™เตพ เดซเต€เตฝเดกเต เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เด…เดตเดฏเตเดŸเต† เดชเต‡เดฐเตเด•เดณเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต, เดฏเดฅเดพเตผเดคเตเดฅ เดซเต€เตฝเดกเต เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเด• message, เด…เดคเดฟเตฝ เดฒเต‹เด—เดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด’เดฐเต เดŽเตปเดŸเตเดฐเดฟ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เดžเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดค เดซเต€เตฝเดกเต เดšเต‡เตผเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดžเด™เตเด™เตพ เดฒเต‹เด—เตเด•เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเดจเตเดจ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเดฑเต† เดชเต‡เดฐเต เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚.

เดŸเตเดฐเดพเด•เตเด•เดฟเด‚เด—เต เดฒเต‹เด—เตเด•เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, csv เดชเตเดฒเด—เดฟเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต; เด‡เดคเดฟเดจเต เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏ เดซเต€เตฝเดกเตเด•เตพ เดถเดฐเดฟเดฏเดพเดฏเดฟ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚:

filter {
  if "Tracking" in [tags] {
    csv {
      columns => ["date-time","client-ip","client-hostname","server-ip","server-hostname","source-context","connector-id","source","event-id","internal-message-id","message-id","network-message-id","recipient-address","recipient-status","total-bytes","recipient-count","related-recipient-address","reference","message-subject","sender-address","return-path","message-info","directionality","tenant-id","original-client-ip","original-server-ip","custom-data","transport-traffic-type","log-id","schema-version"]
      remove_field => ["message", "tenant-id", "schema-version"]
      add_field => { "application" => "exchange" }
    }
}

เดชเตเดฒเด—เดฟเดจเดฟเดจเตเดณเตเดณเดฟเตฝ เดžเด™เตเด™เตพ เดซเต€เตฝเดกเต เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เด…เดตเดฏเตเดŸเต† เดชเต‡เดฐเตเด•เดณเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต, เดฏเดฅเดพเตผเดคเตเดฅ เดซเต€เตฝเดกเต เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเด• message (เด•เต‚เดŸเดพเดคเต† เดตเดฏเดฒเตเด•เดณเตเด‚ tenant-id ะธ schema-version), เด…เดคเดฟเตฝ เดฒเต‹เด—เดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด’เดฐเต เดŽเตปเดŸเตเดฐเดฟ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เดžเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดค เดซเต€เตฝเดกเต เดšเต‡เตผเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดžเด™เตเด™เตพ เดฒเต‹เด—เตเด•เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเดจเตเดจ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเดฑเต† เดชเต‡เดฐเต เด‡เดคเดฟเตฝ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚.

เดซเดฟเตฝเดŸเตเดŸเดฑเดฟเด‚เด—เต เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฑเดคเตเดคเตเด•เดŸเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด•เดฟเดฌเดพเดจเดฏเดฟเตฝ เดฆเตƒเดถเตเดฏเดตเตฝเด•เตเด•เดฐเดฃเดคเตเดคเดฟเดจเต เดคเดฏเตเดฏเดพเดฑเดพเดฏ เด†เดฆเตเดฏ เดเด•เดฆเต‡เดถเดฐเต‡เด–เดฏเดฟเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเตเด•เตพ เดฒเดญเดฟเด•เตเด•เตเด‚. เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต เดžเด™เตเด™เตพเด•เตเด•เต เดจเดทเตโ€ŒเดŸเดฎเดพเด•เตเด‚:

  • เดธเด‚เด–เตเดฏเดพ เดซเต€เตฝเดกเตเด•เตพ เดŸเต†เด•เตโ€Œเดธเตโ€Œเดฑเตเดฑเดพเดฏเดฟ เด…เด‚เด—เต€เด•เดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚, เด…เดคเต เด…เดตเดฏเดฟเดฒเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเต† เดคเดŸเดฏเตเดจเตเดจเต. เด…เดคเดพเดฏเดคเต, เดตเดฏเดฒเตเด•เตพ time-taken IIS เดฒเต‹เด—เต, เด…เดคเตเดชเต‹เดฒเต† เดซเต€เตฝเดกเตเด•เตพ recipient-count ะธ total-bites เดฒเต‹เด—เต เดŸเตเดฐเดพเด•เตเด•เดฟเด‚เด—เต.
  • เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต เดŸเตˆเด‚เดธเตเดฑเตเดฑเดพเดฎเตเดชเดฟเตฝ เดฒเต‹เด—เต เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดค เดธเดฎเดฏเด‚ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚, เดธเต†เตผเดตเตผ เดตเดถเดคเตเดคเต เดŽเดดเตเดคเดฟเดฏ เดธเดฎเดฏเดฎเดฒเตเดฒ.
  • เดซเต€เตฝเดกเต recipient-address เด’เดฐเต เดจเดฟเตผเดฎเตเดฎเดพเดฃ เดธเตˆเดฑเตเดฑเต เดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเด‚, เด…เดคเต เด…เด•เตเดทเดฐเด™เตเด™เดณเตเดŸเต† เดธเตเดตเต€เด•เตผเดคเตเดคเดพเด•เตเด•เดณเต† เด•เดฃเด•เตเด•เดพเด•เตเด•เดพเตป เดตเดฟเดถเด•เดฒเดจเด‚ เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ.

เดฒเต‹เด—เต เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเดฟเตฝ เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดฎเดพเดœเดฟเด•เต เดšเต‡เตผเด•เตเด•เต‡เดฃเตเดŸ เดธเดฎเดฏเดฎเดพเดฃเดฟเดคเต.

เดธเด‚เด–เตเดฏเดพ เดซเต€เตฝเดกเตเด•เตพ เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เดกเดฟเดธเต†เด•เตเดฑเตเดฑเต เดชเตเดฒเด—เดฟเดจเต เด’เดฐเต เด“เดชเตเดทเตป เด‰เดฃเตเดŸเต convert_datatype, เด’เดฐเต เดŸเต†เด•เตเดธเตเดฑเตเดฑเต เดซเต€เตฝเดกเต เดกเดฟเดœเดฟเดฑเตเดฑเตฝ เดซเต‹เตผเดฎเดพเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เต เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเดพเตป เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด‡เดคเตเดชเต‹เดฒเต†:

dissect {
  โ€ฆ
  convert_datatype => { "time-taken" => "int" }
  โ€ฆ
}

เดซเต€เตฝเดกเดฟเตฝ เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚ เด’เดฐเต เดธเตเดŸเตเดฐเดฟเด‚เด—เต เด…เดŸเด™เตเด™เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เดฎเดพเดคเตเดฐเดฎเต‡ เดˆ เดฐเต€เดคเดฟ เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเด•เต‚ เดŽเดจเตเดจเดคเต เด“เตผเดฎเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดพเดฃเต. เด“เดชเตโ€Œเดทเตป เดซเต€เตฝเดกเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดจเตพ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ เด•เต‚เดŸเดพเดคเต† เด’เดฐเต เด…เดชเดตเดพเดฆเด‚ เดŽเดฑเดฟเดฏเตเดจเตเดจเต.

เดฒเต‹เด—เตเด•เตพ เดŸเตเดฐเดพเด•เตเด•เตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดซเต€เตฝเดกเตเด•เตพ เดฎเตเดคเตฝ เดธเดฎเดพเดจเดฎเดพเดฏ เดชเดฐเดฟเดตเตผเดคเตเดคเดจ เดฐเต€เดคเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต recipient-count ะธ total-bites เดถเต‚เดจเตเดฏเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚. เดˆ เดซเต€เตฝเดกเตเด•เตพ เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเดพเตป เด’เดฐเต เดชเตเดฒเด—เดฟเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเตเด•:

mutate {
  convert => [ "total-bytes", "integer" ]
  convert => [ "recipient-count", "integer" ]
}

เดธเตเดตเต€เด•เตผเดคเตเดคเดพเดตเดฟเดจเตเดฑเต†_เดตเดฟเดฒเดพเดธเด‚ เดตเตเดฏเด•เตเดคเดฟเด—เดค เดธเตเดตเต€เด•เตผเดคเตเดคเดพเด•เตเด•เดณเดพเดฏเดฟ เดตเดฟเดญเดœเดฟเด•เตเด•เตเดจเตเดจเต

เดฎเตเดฏเต‚เดŸเตเดŸเต‡เดฑเตเดฑเต เดชเตเดฒเด—เดฟเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเตเด‚ เดˆ เดชเตเดฐเดถเตเดจเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚:

mutate {
  split => ["recipient_address", ";"]
}

เดŸเตˆเด‚เดธเตเดฑเตเดฑเดพเดฎเตเดชเต เดฎเดพเดฑเตเดฑเตเดจเตเดจเต

เดŸเตเดฐเดพเด•เตเด•เดฟเด‚เด—เต เดฒเต‹เด—เตเด•เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดชเตเดฒเด—เดฟเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดถเตเดจเด‚ เดตเดณเดฐเต† เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚ เดคเต€เดฏเดคเดฟ, เด‡เดคเต เดซเต€เตฝเดกเดฟเตฝ เดŽเดดเตเดคเดพเตป เดจเดฟเด™เตเด™เดณเต† เดธเดนเดพเดฏเดฟเด•เตเด•เตเด‚ timestamp เดซเต€เตฝเดกเดฟเตฝ เดจเดฟเดจเตเดจเต เด†เดตเดถเตเดฏเดฎเดพเดฏ เดซเต‹เตผเดฎเดพเดฑเตเดฑเดฟเตฝ เดคเต€เดฏเดคเดฟเดฏเตเด‚ เดธเดฎเดฏเดตเตเด‚ date-time:

date {
  match => [ "date-time", "ISO8601" ]
  timezone => "Europe/Moscow"
  remove_field => [ "date-time" ]
}

IIS เดฒเต‹เด—เตเด•เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดžเด™เตเด™เตพ เดซเต€เตฝเดกเต เดกเดพเดฑเตเดฑ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต date ะธ time เดฎเตเดฏเต‚เดŸเตเดŸเต‡เดฑเตเดฑเต เดชเตเดฒเด—เดฟเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, เดจเดฎเตเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เดธเดฎเดฏ เดฎเต‡เด–เดฒ เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดšเต†เดฏเตเดคเต เดˆ เดŸเตˆเด‚ เดธเตเดฑเตเดฑเดพเดฎเตเดชเต เด‡เดŸเตเด• timestamp เดคเต€เดฏเดคเดฟ เดชเตเดฒเด—เดฟเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต:

mutate { 
  add_field => { "data-time" => "%{date} %{time}" }
  remove_field => [ "date", "time" ]
}
date { 
  match => [ "data-time", "YYYY-MM-dd HH:mm:ss" ]
  timezone => "UTC"
  remove_field => [ "data-time" ]
}

เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต

เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดค เดฒเต‹เด—เตเด•เตพ เดฒเต‹เด—เต เดฑเดฟเดธเต€เดตเดฑเดฟเดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตเด•เตเด•เดพเตป เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดตเดฟเดญเดพเด—เด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดฒเดพเดธเตเดฑเตเดฑเดฟเด•เต เดจเต‡เดฐเดฟเดŸเตเดŸเต เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด’เดฐเต เดชเตเดฒเด—เดฟเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต เด‡เดฒเดพเดธเตเดฑเตเดฑเดฟเด•เต เดคเดฟเดฐเดฏเตฝ, เดœเดจเดฑเต‡เดฑเตเดฑเต เดšเต†เดฏเตโ€Œเดค เดชเตเดฐเดฎเดพเดฃเด‚ เด…เดฏเดฏเตโ€Œเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดธเต†เตผเดตเตผ เดตเดฟเดฒเดพเดธเดตเตเด‚ เดธเต‚เดšเดฟเด• เดจเดพเดฎ เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเตเด‚ เด‡เดคเต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเดจเตเดจเต:

output {
  elasticsearch {
    hosts => ["127.0.0.1:9200", "127.0.0.2:9200"]
    manage_template => false
    index => "Exchange-%{+YYYY.MM.dd}"
  }
}

เด…เดจเตเดคเดฟเดฎ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป

เด…เดจเตเดคเดฟเดฎ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเด‚:

input {
  beats {
    port => 5044
  }
}
 
filter {
  if "IIS" in [tags] {
    dissect {
      mapping => {
        "message" => "%{date} %{time} %{s-ip} %{cs-method} %{cs-uri-stem} %{cs-uri-query} %{s-port} %{cs-username} %{c-ip} %{cs(User-Agent)} %{cs(Referer)} %{sc-status} %{sc-substatus} %{sc-win32-status} %{time-taken}"
      }
      remove_field => ["message"]
      add_field => { "application" => "exchange" }
      convert_datatype => { "time-taken" => "int" }
    }
    mutate { 
      add_field => { "data-time" => "%{date} %{time}" }
      remove_field => [ "date", "time" ]
    }
    date { 
      match => [ "data-time", "YYYY-MM-dd HH:mm:ss" ]
      timezone => "UTC"
      remove_field => [ "data-time" ]
    }
  }
  if "Tracking" in [tags] {
    csv {
      columns => ["date-time","client-ip","client-hostname","server-ip","server-hostname","source-context","connector-id","source","event-id","internal-message-id","message-id","network-message-id","recipient-address","recipient-status","total-bytes","recipient-count","related-recipient-address","reference","message-subject","sender-address","return-path","message-info","directionality","tenant-id","original-client-ip","original-server-ip","custom-data","transport-traffic-type","log-id","schema-version"]
      remove_field => ["message", "tenant-id", "schema-version"]
      add_field => { "application" => "exchange" }
    }
    mutate {
      convert => [ "total-bytes", "integer" ]
      convert => [ "recipient-count", "integer" ]
      split => ["recipient_address", ";"]
    }
    date {
      match => [ "date-time", "ISO8601" ]
      timezone => "Europe/Moscow"
      remove_field => [ "date-time" ]
    }
  }
}
 
output {
  elasticsearch {
    hosts => ["127.0.0.1:9200", "127.0.0.2:9200"]
    manage_template => false
    index => "Exchange-%{+YYYY.MM.dd}"
  }
}

เดชเตเดฐเดฏเต‡เดพเดœเดจเดชเตเดฐเดฆเดฎเดพเดฏ เดฒเดฟเด™เตเด•เตเด•เตพ:

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•