เชฎเชฟเชคเซเชฐเซ เชเชเซเชธเชเซเชจเซเช เช
เชจเซ ELK เชเซเชตเซ เชฐเซเชคเซ เชฌเชจเชพเชตเชตเซเช เชคเซ เชตเชฟเชถเซ เชนเซเช เชฎเชพเชฐเซ เชตเชพเชฐเซเชคเชพ เชเชพเชฒเซ เชฐเชพเชเซเช เชเซเช (เชถเชฐเซเชเชค
ELK เชธเซเชเซเชเชฎเชพเช เชฒเซเชเชธเซเชเซเชถเชจเซ เชเชชเชฏเซเช เชฒเซเช เชชเชฐ เชฌเซเชฆเซเชงเชฟเชชเซเชฐเซเชตเช เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเชตเชพ เช
เชจเซ เชฆเชธเซเชคเชพเชตเซเชเซเชจเชพ เชฐเซเชชเชฎเชพเช เชคเซเชฎเชจเซ เชธเซเชฅเชฟเชคเชฟเชธเซเชฅเชพเชชเชเชฎเชพเช เชชเซเชฒเซเชธเชฎเซเชจเซเช เชฎเชพเชเซ เชคเซเชฏเชพเชฐ เชเชฐเชตเชพ เชฎเชพเชเซ เชฅเชพเชฏ เชเซ, เชเซเชจเชพ เชเชงเชพเชฐเซ เชเชฟเชฌเชพเชจเชพเชฎเชพเช เชตเชฟเชตเชฟเชง เชตเชฟเชเซเชฏเซเชฒเชพเชเชเซเชถเชจ เชฌเชจเชพเชตเชตเชพเชจเซเช เช
เชจเซเชเซเชณ เชเซ.
เชธเซเชฅเชพเชชเชจ
เชฌเซ เชคเชฌเชเซเชเชพเช เชธเชฎเชพเชตเซ เชเซ:
- OpenJDK เชชเซเชเซเช เชเชจเซเชธเซเชเซเชฒ เช เชจเซ เชเซเช เชตเซ เชฐเชนเซเชฏเซเช เชเซ.
- Logstash เชชเซเชเซเช เชเชจเซเชธเซเชเซเชฒ เช เชจเซ เชเซเช เชตเซ เชฐเชนเซเชฏเซเช เชเซ.
OpenJDK เชชเซเชเซเช เชเชจเซเชธเซเชเซเชฒ เช เชจเซ เชเซเช เชตเซ เชฐเชนเซเชฏเซเช เชเซ
OpenJDK เชชเซเชเซเชเชจเซ เชเซเชเซเชเชธ เชกเชฟเชฐเซเชเซเชเชฐเซเชฎเชพเช เชกเชพเชเชจเชฒเซเชก เช เชจเซ เช เชจเชชเซเช เชเชฐเชตเซเช เชเชตเชถเซเชฏเช เชเซ. เชชเชเซ เชตเชฟเชจเซเชกเซเช เชเชชเชฐเซเชเชฟเชเช เชธเชฟเชธเซเชเชฎเชจเชพ $env:Path เช เชจเซ $env:JAVA_HOME เชตเซเชฐเซเชเชฌเชฒเซเชธเชฎเชพเช เช เชกเชฟเชฐเซเชเซเชเชฐเซเชจเซ เชชเชพเชฅ เชฆเชพเชเชฒ เชเชฐเชตเซ เชเชตเชถเซเชฏเช เชเซ:
เชเชพเชฒเซ เชเชพเชตเชพ เชธเชเชธเซเชเชฐเชฃ เชคเชชเชพเชธเซเช:
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 เชชเซเชเซเช เชเชจเซเชธเซเชเซเชฒ เช เชจเซ เชเซเช เชตเซ เชฐเชนเซเชฏเซเช เชเซ
Logstash เชตเชฟเชคเชฐเชฃ เชธเชพเชฅเซ เชเชฐเซเชเชพเชเชต เชซเชพเชเชฒ เชกเชพเชเชจเชฒเซเชก เชเชฐเซ C:Program Files
เชคเซ เชฎเซเชฒเซเชฏเชตเชพเชจ เชจเชฅเซ, Logstash เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชถเชฐเซ เชฅเชตเชพเชจเซ เชเชจเชเชพเชฐ เชเชฐเชถเซ. เชชเชเซ เชคเชฎเชพเชฐเซ เชซเชพเชเชฒ เชฆเชพเชเชฒ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ jvm.options
เชเชพเชตเชพ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชฎเชพเชเซ RAM เชซเชพเชณเชตเชตเชพ เชฎเชพเชเซ เชเชตเชพเชฌเชฆเชพเชฐ เชธเซเชงเชพเชฐเชพเช. เชนเซเช เชธเชฐเซเชตเชฐเชจเซ เช
เชกเชงเซ RAM เชจเซ เชเชฒเซเชฒเซเช เชเชฐเชตเชพเชจเซ เชญเชฒเชพเชฎเชฃ เชเชฐเซเช เชเซเช. เชเซ เชคเซเชฎเชพเช เชฌเซเชฐเซเชก เชชเชฐ 16 GB เชจเซ RAM เชนเซเชฏ, เชคเซ เชกเชฟเชซเซเชฒเซเช เชเซเช เชเซ:
-Xms1g
-Xmx1g
เชธเชพเชฅเซ เชฌเชฆเชฒเชตเซเช เชเชตเชถเซเชฏเช เชเซ:
-Xms8g
-Xmx8g
เชตเชงเซเชฎเชพเช, เชฒเซเชเซ เชฌเชนเชพเชฐ เชเชฟเชชเซเชชเชฃเซ เชเชฐเชตเชพเชจเซ เชธเชฒเชพเชน เชเชชเชตเชพเชฎเชพเช เชเชตเซ เชเซ -XX:+UseConcMarkSweepGC
. เช เชตเชฟเชถเซ เชตเชงเซ
input {
stdin{}
}
filter {
}
output {
stdout {
codec => "rubydebug"
}
}
เช เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชธเชพเชฅเซ, Logstash เชเชจเซเชธเซเชฒเชฎเชพเชเชฅเซ เชกเซเชเชพ เชตเชพเชเชเซ เชเซ, เชคเซเชจเซ เชเชพเชฒเซ เชซเชฟเชฒเซเชเชฐเชฎเชพเชเชฅเซ เชชเชธเชพเชฐ เชเชฐเซ เชเซ เช เชจเซ เชคเซเชจเซ เชเชจเซเชธเซเชฒ เชชเชฐ เชชเชพเชเซเช เชเชเชเชชเซเช เชเชฐเซ เชเซ. เช เชเซเช เชตเชฃเซเชจเซ เชเชชเชฏเซเช 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}
Logstash เชชเซเชฐเซเช 9600 เชชเชฐ เชธเชซเชณเชคเชพเชชเซเชฐเซเชตเช เชฒเซเชจเซเช เชฅเชฏเซเช.
เช
เชเชคเชฟเชฎ เชเชจเซเชธเซเชเซเชฒเซเชถเชจ เชชเชเชฒเซเช: เชฒเซเชเชธเซเชเซเชถเชจเซ Windows เชธเซเชตเชพ เชคเชฐเซเชเซ เชฒเซเชเช เชเชฐเซ. เช เชเชฐเซ เชถเชเชพเชฏ เชเซ, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชชเซเชเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ
PS C:...bin> .nssm.exe install logstash
Service "logstash" installed successfully!
เชธเชนเชจเชถเซเชฒเชคเชพ เชฆเซเชท
เชฒเซเชเชจเซ เชธเชฒเชพเชฎเชคเซ เชเซเชฏเชพเชฐเซ เชธเซเชฐเซเชธ เชธเชฐเซเชตเชฐเชฎเชพเชเชฅเซ เชเซเชฐเชพเชจเซเชธเชซเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชคเซเชฏเชพเชฐเซ เชชเชฐเซเชธเชฟเชธเซเชเชจเซเช เชเซเชฏเซเช เชฎเชฟเชเซเชจเชฟเชเชฎ เชฆเซเชตเชพเชฐเชพ เชธเซเชจเชฟเชถเซเชเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชคเซ เชเซเชตเซ เชฐเซเชคเซ เชเชพเชฎ เชเชฐเซ เชเซ
เชฒเซเช เชชเซเชฐเซเชธเซเชธเชฟเชเช เชฆเชฐเชฎเชฟเชฏเชพเชจ เชเชคเชพเชฐเซเชจเซเช เชฒเซเชเชเช เชเซ: เชเชจเชชเซเช โ เชเชคเชพเชฐ โ เชซเชฟเชฒเซเชเชฐ + เชเชเชเชชเซเช.
เชเชจเชชเซเช เชชเซเชฒเชเชเชจ เชฒเซเช เชธเซเชคเซเชฐเซเชคเชฎเชพเชเชฅเซ เชกเซเชเชพ เชฎเซเชณเชตเซ เชเซ, เชคเซเชจเซ เชเชคเชพเชฐเชฎเชพเช เชฒเชเซ เชเซ เช เชจเซ เชชเซเชทเซเชเชฟ เชฎเซเชเชฒเซ เชเซ เชเซ เชกเซเชเชพ เชธเซเชคเซเชฐเซเชคเชจเซ เชชเซเชฐเชพเชชเซเชค เชฅเชฏเซ เชเซ.
เชเชคเชพเชฐเชฎเชพเชเชฅเซ เชธเชเชฆเซเชถเชพเช เชฒเซเชเชธเซเชเซเชถ เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชซเชฟเชฒเซเชเชฐ เช เชจเซ เชเชเชเชชเซเช เชชเซเชฒเชเชเชจเชฎเชพเชเชฅเซ เชชเชธเชพเชฐ เชฅเชพเชฏ เชเซ. เชเซเชฏเชพเชฐเซ เชเชเชเชชเซเชเชฎเชพเชเชฅเซ เชชเซเชทเซเชเชฟ เชฎเชณเซ เชเซ เชเซ เชฒเซเช เชฎเซเชเชฒเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชเซ, เชคเซเชฏเชพเชฐเซ Logstash เชเชคเชพเชฐเชฎเชพเชเชฅเซ เชชเซเชฐเซเชธเซเชธเซเชก เชฒเซเชเชจเซ เชฆเซเชฐ เชเชฐเซ เชเซ. เชเซ Logstash เชฌเชเชง เชฅเช เชเชพเชฏ, เชคเซ เชฌเชงเชพ เชฌเชฟเชจเชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเชพเชฏเซเชฒเชพ เชธเชเชฆเซเชถเชพเช เช เชจเซ เชธเชเชฆเซเชถเชพเช เชเซ เชเซเชจเชพ เชฎเชพเชเซ เชเซเช เชชเซเชทเซเชเชฟ เชชเซเชฐเชพเชชเซเชค เชฅเช เชจเชฅเซ เชคเซ เชเชคเชพเชฐเชฎเชพเช เชฐเชนเซ เชเซ, เช เชจเซ Logstash เชเชเชฒเซ เชตเชเชคเซ เชเซเชฏเชพเชฐเซ เชคเซ เชถเชฐเซ เชฅเชถเซ เชคเซเชฏเชพเชฐเซ เชคเซเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเชตเชพเชจเซเช เชเชพเชฒเซ เชฐเชพเชเชถเซ.
เชเซเช เชตเชฃ
เชซเชพเชเชฒเชฎเชพเช เชเซเช เชฆเซเชตเชพเชฐเชพ เชเชกเชเชธเซเชเซเชฌเชฒ C:Logstashconfiglogstash.yml:
queue.type
: (เชถเชเซเชฏ เชฎเซเชฒเซเชฏเซ -persisted
ะธmemory (default))
.path.queue
: (เชเชคเชพเชฐ เชซเชพเชเชฒเซ เชธเชพเชฅเซ เชซเซเชฒเซเชกเชฐเชจเซ เชชเชพเชฅ, เชเซ เชฎเซเชณเชญเซเชค เชฐเซเชคเซ C:Logstashqueue เชฎเชพเช เชธเชเชเซเชฐเชนเชฟเชค เชเซ).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
เชเซเช เชตเชฃ
Logstash เชฐเซเชชเชฐเซเชเชพเชเชเชจเชฎเชพเช เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชคเซเชฐเชฃ เชญเชพเชเซเชจเซ เชธเชฎเชพเชตเซเชถ เชฅเชพเชฏ เชเซ, เชเซ เชเชจเชเชฎเชฟเชเช เชฒเซเชเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชจเชพ เชตเชฟเชตเชฟเชง เชคเชฌเชเซเชเชพเช เชฎเชพเชเซ เชเชตเชพเชฌเชฆเชพเชฐ เชเซ: เชชเซเชฐเชพเชชเซเชค เชเชฐเชตเซเช (เชเชจเชชเซเช เชตเชฟเชญเชพเช), เชชเชพเชฐเซเชธเชฟเชเช (เชซเชฟเชฒเซเชเชฐ เชตเชฟเชญเชพเช) เช เชจเซ เชธเซเชฅเชฟเชคเชฟเชธเซเชฅเชพเชชเช (เชเชเชเชชเซเช เชตเชฟเชญเชพเช) เชชเชฐ เชฎเซเชเชฒเชตเซเช. เชจเซเชเซ เชเชชเชฃเซ เชคเซเชฎเชพเชเชจเชพ เชฆเชฐเซเชเชจเซ เชจเชเซเชเชฅเซ เชเซเชเชถเซเช.
เชเชจเชชเซเช
เช เชฎเซ เชซเชพเชเชฒเชฌเซเช เชเชเชจเซเชเซ เชชเชพเชธเซเชฅเซ เชเชพเชเชพ เชฒเซเชเซเชธ เชธเชพเชฅเซ เชเชจเชเชฎเชฟเชเช เชธเซเชเซเชฐเซเชฎ เชชเซเชฐเชพเชชเซเชค เชเชฐเซเช เชเซเช. เชคเซ เช เชชเซเชฒเชเชเชจ เชเซ เชเซ เช เชฎเซ เชเชจเชชเซเช เชตเชฟเชญเชพเชเชฎเชพเช เชธเซเชเชตเซเช เชเซเช:
input {
beats {
port => 5044
}
}
เช เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชชเชเซ, Logstash เชชเซเชฐเซเช 5044 เชธเชพเชเชญเชณเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซ เชเซ, เช
เชจเซ เชฒเซเชเซเชธ เชชเซเชฐเชพเชชเซเชค เชเชฐเชคเซ เชตเชเชคเซ, เชซเชฟเชฒเซเชเชฐ เชตเชฟเชญเชพเชเชจเซ เชธเซเชเชฟเชเชเซเชธ เช
เชจเซเชธเชพเชฐ เชคเซเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซ เชเซ. เชเซ เชเชฐเซเชฐเซ เชนเซเชฏ เชคเซ, เชคเชฎเซ SSL เชฎเชพเช เชซเชพเชเชฒเชฌเชฟเชเชฎเชพเชเชฅเซ เชฒเซเช เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ เชเซเชจเชฒเชจเซ เชฒเชชเซเชเซ เชถเชเซ เชเซ. เชฌเซเชเซเชธ เชชเซเชฒเชเชเชจ เชธเซเชเชฟเชเชเซเชธ เชตเชฟเชถเซ เชตเชงเซ เชตเชพเชเชเซ
เชซเชฟเชฒเซเชเชฐ
เชฌเชงเชพ เชเซเชเซเชธเซเช เชฒเซเช เชเซ เชเซ เชเชเซเชธเชเซเชจเซเช เชเชจเชฐเซเช เชเชฐเซ เชเซ เชคเซ เชชเซเชฐเซเชธเซเชธเชฟเชเช เชฎเชพเชเซ เชฐเชธเชชเซเชฐเชฆ เชเซ เชคเซ เชฒเซเช เชซเชพเชเชฒเชฎเชพเช เช เชตเชฐเซเชฃเชตเซเชฒ เชซเซเชฒเซเชกเซเชธ เชธเชพเชฅเซ csv เชซเซเชฐเซเชฎเซเชเชฎเชพเช เชเซ. CSV เชฐเซเชเซเชฐเซเชกเชจเซ เชชเชพเชฐเซเชธ เชเชฐเชตเชพ เชฎเชพเชเซ, Logstash เช
เชฎเชจเซ เชคเซเชฐเชฃ เชชเซเชฒเชเชเชจเซเชธ เชเชซเชฐ เชเชฐเซ เชเซ:
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชคเซ เชจเซเชเซเชจเชพ เชฐเซเชเซเชฐเซเชกเชจเซ เชฌเซ เชญเชพเชเชฎเชพเช เชตเชฟเชญเชพเชเชฟเชค เชเชฐเชถเซ (เชเซเชทเซเชคเซเชฐเชจเซ เช
เชเชฆเชฐ เช
เชฒเซเชชเชตเชฟเชฐเชพเชฎเชจเซ เชนเชพเชเชฐเซเชจเซ เชเชพเชฐเชฃเซ), เชเซเชจเชพ เชเชพเชฐเชฃเซ เชฒเซเชเชจเซ เชเซเชเซ เชฐเซเชคเซ เชตเชฟเชถเซเชฒเซเชทเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ:
โฆ,"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" }
}
}
}
Logstash เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชคเชฎเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ 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}"
}
}
เชเชชเชฏเซเชเซ เชฒเชฟเชเชเซเชธ:
เชตเชฟเชจเซเชกเซเช เชชเชฐ เชเชชเชจเชเซเชกเซเชเซ 11 เชเซเชตเซ เชฐเซเชคเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเซเช? เชฒเซเชเชธเซเชเซเชถ เชกเชพเชเชจเชฒเซเชก เชเชฐเซ เชธเซเชฅเชฟเชคเชฟเชธเซเชฅเชพเชชเช เชตเชเชเชฟเชค เชตเชฟเชเชฒเซเชชเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ UseConcMarkSweepGC #36828 เชเชจเชเชธเชเชธเชเชฎ เชธเชคเชค เชเชคเชพเชฐเซ เชฌเซเชเซเชธ เชเชจเชชเซเช เชชเซเชฒเชเชเชจ เชฒเซเชเชธเซเชเซเชถ เชฆเซเชธเซเชค, เชฎเชพเชฐเซ เชเซเชเชจเชธเซ เชเซเชฏเชพเช เชเซ? เชฎเชพเชฐเซ เชฎเชพเชฐเชพ เชฒเซเชเชจเซเช เชตเชฟเชเซเชเซเชฆเชจ เชเชฐเชตเซเช เชเซ เชซเชฟเชฒเซเชเชฐ เชชเซเชฒเชเชเชจเชจเซ เชกเชฟเชธเซเชเซเช เชเชฐเซ เชเชเชกเชฟเชถเชจเชฒเซเชธ เชซเชฟเชฒเซเชเชฐ เชชเซเชฒเชเชเชจเชจเซ เชฌเชฆเชฒเซ เชคเชพเชฐเซเช เชซเชฟเชฒเซเชเชฐ เชชเซเชฒเชเชเชจ เชธเซเชฅเชฟเชคเชฟเชธเซเชฅเชพเชชเช เชถเซเชง เชเชเชเชชเซเช เชชเซเชฒเชเชเชจ
เชธเซเชฐเซเชธ: www.habr.com