您好,登錄后才能下訂單哦!
通過logstash過濾nginx-error日志,篩選日志中比較嚴重報錯,并進行報警。
由于網絡上很多帖子都是要么寫了怎么篩選報錯,要么就只翻譯了logstash-zabbix-output插件的使用說明,并沒有一個完整的配置,整個項目做完,整理出來供大家閱讀。
【軟件版本】
zabbix 版本:2.4.8
logstash 版本:2.4.0
JDK 版本: 1.8.0_101
【zabbix配置】
首先配置zabbix的item,使其能夠成功接收logstash發送過來的信息.
創建Template:“Configuration” -> “Templates” -> “Create template”
這里我對Template的名字叫“Log file check”
然后創建Application:“Create applicaton”
Application名字還叫“Log file check”
最后創建item:“Create item”:
注意四個地方:
Type 一定要選擇“Zabbix trapper”,否則無法接收logstash發送的信息;
Key 一定要寫正確,最好不要有空格,需要在logstash中配置;
Type of information 選擇 “Text”,因為我傳過來的值是一段報錯日志,所以選擇文本;
Allowed hosts:允許傳送的主機,一定要設定為logstash所在的主機。
【Logstash配置】
注:logstash的下載及安裝不介紹。
安裝目錄:/opt/logstash/
由于日志量并沒有達到上W級,因此針對logstash進行了一些優化,降低了部分性能:
# vim /opt/logstash/bin/logstash LS_HEAP_SIZE=500m LS_JAVA_OPTS="-server -Xmx200m"
【安裝logstash-output-zabbix插件】
/opt/logstash/bin/logstash-plugin install logstash-output-zabbix
logstash 配置文件:
input { file { type => "error-log" # 指定類型,用于以后判斷操作 path => "/tmp/test.log" # 文件路徑 start_position => "beginning" # 文件開始位置 codec => multiline { # 使用多行匹配方式進行過濾 pattern => "^\d{4}" # 以4個數字開頭的為第一行, negate => true # 所有不以4個數字開頭的,均歸于上一行(下面what配置) what => "previous" } } } filter { grok { match => { message:\s+\n.*Code:(?<Code>\d+).*Message:(?<Message>.+)\n.*File:(?<File>.+)\n.*Line:(?<Line>\s+\d+).*" # 對于匹配規則,還是要針對自己場景自己寫 } add_tag => [ "zabbix-sender" ] # 添加一個標簽 add_field => [ # 設定agent主機的主機名和key的映射 "zabbix_host", "web01", # 主機名 "zabbix_key", "logstash" # 添加item時,設定的key名稱 ]} if "_grokparsefailure" in [tags] { # 如果過濾報錯,那么移除報錯標簽,不進行其他處理 mutate { remove_tag => "_grokparsefailure" } } } output { # 輸出配置 stdout { # 測試時可以開啟終端輸出 codec => rubydebug #codec => json # 可以選擇json格式的輸出還是rubydebug格式的輸出 } zabbix { # 發送給zabbix的配置 zabbix_host => "zabbix_host" # zabbix_host指上面映射的主機,不能用ip zabbix_key => "zabbix_key" # zabbix_key指上面映射的key,意思就 是發送給某主機的某key,值為zabbix_value zabbix_server_host => "192.168.1.229" # zabbix server zabbix_server_port => "10051" # zabbix server port 默認為10051 zabbix_value => "Message" # 要發送的key值 } }
如果需要進行測試,可以在zabbix agent使用zabbix_sender進行測試:
/opt/zabbix/sender -z zabbix-server -p port -s agentservername -k keyname -o keyvalue
所有配置完成后,可以在監測日志文件中輸入一些測試數據,并在zabbix web上查看是否正常出現數據:
【配置報警】
“configuration” -> “Templates” -> “Triggers” -> “Create Trigger”:
Name:log error check
Expression:判斷獲取值的長度是否為0,如果不為0,trigger為problem狀態,發送報警
其他關于報警相關配置請自行某度······
參考資料:
http://blog.sina.com.cn/s/blog_7ba28b620102xw2w.html
https://www.elastic.co/guide/en/logstash/current/plugins-outputs-zabbix.html
https://www.zabbix.org/wiki/Docs/protocols/zabbix_sender/2.0
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。