上一章將Nginx error Log利用Filebeat導到Elastic Cloud,但不明原因有grok錯誤的資訊,Message沒有自動分段,這時候就要靠Logstash做欄位Filter。
OpenAPM有個工具能輕鬆連結工具串起資料流,點工具後還有選單選擇Input、Output的組件 (OpenAPM也是很強的APM工具)
Landscape: https://openapm.io/landscape
本章為beat -> Logstash -> Elasticsearch -> kiban的 架構
到 /etc/logstash/logstash.yml 確定Config放置的位置
在上面path.data 路徑建立 logstash-beat.conf
input設定一個沒用到的Port等等讓beat把資料丟過來
input {
beats {
port => 1234
}
}
output {
stdout { codec => rubydebug }
elasticsearch {
hosts => ["https://aaa.asia-east1.gcp.elastic-cloud.com:9243"]
index => "test-%{+YYYY.MM.dd}"
#index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
user => "aaa"
password => "aaa"
}
}
把cloud.id、 cloud.auth部分註解掉,修改output後執行.
output.logstash:
enabled: true
hosts: ["logsatshIP:1234"]
./usr/share/logstash/bin/logstash -f /var/lib/logstash/logstash-beat.conf
確認output資料正確
kiban -> Stack Management -> Index patterns -> Create index pattern
logstash 上面設定test開頭,搜尋的到表示資料有到Elastic Cloud
Grok是Logstash中的過濾器插件
可以到 https://grokdebug.herokuapp.com 測試規則,後面在介紹怎麼寫規則
./usr/share/logstash/bin/logstash -f /var/lib/logstash/logstash-beat.conf