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