Logstash, grok 程式設計
Ming-der Wang
ming@log4analytics.com
第五天: 6月12日(週一:全天) - Logstash, Grok
TurboTeam 集先鋒科技
ELK logs 的資料流 (更新版)
redis
kafka
RabbitMQ
zeroMQ
syslog, other servers
或
BigQuery, spreadsheet
視覺化
查詢
Spark, Storm, Hadoop, 或其他分析, 預測, 或預警軟體
fluentd
logspout
filebeat
logstash
plugins
Redis or Kafka 當 streaming buffers
logstash
redis
Logstash config
logstash config 檔的位置
/opt/logstash/bin/logstash -f turboteam-iislog-cell.conf
/opt/logstash/bin/logstash -f turboteam-iislog-cell.conf --configtest
Configuration OK
Logstash config 範例
ELK demo
Link 到自己 docker-machine 的 ip
Logstash 文法
請參考 https://www.elastic.co/guide/index.html
https://www.elastic.co/guide/en/logstash/current/getting-started-with-logstash.html
Logstash tips 小技巧
- 常用軟體, 先找現成的 grok patterns 是否有定義.
- 現有的 patterns (https://github.com/elastic/logstash/blob/v1.4.2/patterns/grok-patterns)
- Logstash 可以處理 multiline
- 最不得已才用 patterns 目錄, 但非內建的就要加, 如 cisco logs
- input, output, filter 都有 plugins 可用
Logstash tips 小技巧(2)
parsing multiple space 用
((?:%{SPACE})|(?:(%{SPACE}%{SPACE})))
Logstash tips 小技巧(3)
online rexep
https://regex101.com/
Grok Debugger
https://grokdebug.herokuapp.com/
Grok 文法
grok patterns
Grok pattern path
增加非標準的 patterns 在 patterns directory 裡
click on above image for CISCO ASA logs config example.
https://github.com/elastic/logstash/blob/v1.4.2/patterns/firewalls
常用 Grok patterns ant tips
舊版用 ((?:%{SPACE})|(?:(%{SPACE}%{SPACE})))
新版可直接用 %{SPACE}
以上 pattern 是用來 parsing 多個 space 的部分
Filebeat -> Logstash
|
- > Elasticsearch
Filebeat config
./filebeat -configtest -e -c filebeat.yml
Logstash conf
input {
beats {
port => 5044
}
}
- 注意: CentOS 很多問題不通, 是防火牆沒開 port 5044
用 telnet <ip> 5044 來測試
也可用 nc (or netcat) <ip> 5044 來試丟資料
Q & A
TurboTeam 集先鋒科技
第五天: 6月12日(週一:全天) - Logstash, Grok
By Ming-der Wang
第五天: 6月12日(週一:全天) - Logstash, Grok
- 1,273