通過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
分享題目:Logstash整合zabbix過濾Nginx錯誤日志并進行報警
瀏覽地址:http://vcdvsql.cn/article30/peijpo.html
成都網站建設公司_創新互聯,為您提供網站排名、網站導航、網站收錄、、動態網站、網站設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯