Zabbix触发器_action动作及模板应用(二)
原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://gzsamlee.blog.51cto.com/9976612/1865878 ? ? ? ? ? ?
? ? ? ? ? ? ? ?
? ?
? 一個完善的監控系統需要一定的報警機制,什么時候告警警需要觸發器,怎么告警,在什么情況下如何告警取決于action動作:
創建觸發器(trigger)
? **"監控項"僅負責收集數據,而通常收集數據的目的還包括在某指標對應的數據超出合理范圍時給相關人員發送告警信息,"觸發器"正是用于為監控項所收集的數據定義閾值。
? **每個觸發器僅能關聯至一個監控項,但可以為一個監控項或同時使用多個觸發器:
??? 事實上,為一個監控項定義多個具有不用閾值的觸發器,可以實現不用級別的報警功能
? **一個觸發器由一個表達式構成,它定義監控項所采取的數據的一個閾值。
? **一旦某次采集的數據超出了此觸發器定義的閾值,觸發器狀態將會轉換為"Problem";而當采取的數據再次回歸至合理范圍內時,其狀態將重新返回到"OK"
觸發器表達式
**觸發器表達式高度靈活,可以創建出非常復雜的測試條件
**基本的觸發器表達式如下所示:
| 1 | {<server>:<key>.<function>(<parameter>)}<operator><constant> |
-->server : 主機名稱
-->key : 主機上關系的相應監控項的key;
-->funtion:評估采集到的數據是否合理范圍內時所使用的函數,其評估過程可以根據采集的數據、當前時間及其它因素進行;
-->目前,觸發器所支持的函數有avg、count、change、date、dayofweek、delta、diff、iregexp、last、max、min、nodata、now、sum等
-->parameter:函數參數;大多數數值函數可以接受秒數為其參數,而如果在數值參數之前使用"#"作為前綴,則表示為最近幾次的取值,如果sum(300)表示300秒內所有取值之和,而sum(#10)則表示最近10次取值之和;
-->此外,avg、count、last、min和max還支持使用第二個參數,用于完成時間限定;例如,max(1h,7d)將返回一周之前的最大值;
operator:表達式所支持的運算符及其功能如下所示:
| PRIORITY | OPERATOR | DEFINITION |
| 1 | / | Division |
| 2 | * | Multiplication |
| 3 | - | Arithmetical minus |
| 4 | + | Arithmetical plus |
| 5 | < | Less than. The operator is defined as: A<B <=> (A<=B-0.000001) |
| 6 | > | More than. The operator is defined as: A>B <=> (A<=B+0.000001) |
| 7 | # | Not equal. The operator is defined as:A#B <=>(A<=B-0.000001)|(A>=B+0.000001) |
| 8 | = | Is equal. The operator is defined as:A=B <=>(A<=B-0.000001)|(A>=B+0.000001) |
| 9 | & | Logical AND |
| 10 | | | Logical OR |
觸發器表達式例子:
| 1 | {www.samlee.com:system.cpu.load[all,avg1].last(0)}>3 |
| 12 | -->表示主機-->對last函數來說,last(0)相當于last(#1) |
創建觸發器:
創建觸發器各種可用的屬性說明:
-->Name: 觸發器名稱,可以使用宏,如$1、$2、....、$9等;
-->Expression:邏輯表達式,用于評估觸發器狀態;
-->Multiple PROBLEM events generation:依賴于當前觸發器的"Problem"狀態生成其他事件;
-->Description: 當前觸發器的描述信息;
-->URL:在screen的"Status of Trigger"中顯示的內容的鏈接;
-->Severity: 當前觸發器的嚴重級別;
-->Enabled:是否啟用當前觸發器;
下面我們通過實例演示應用Zabbix觸發器:
(1)創建觸發器trigger:入站流量過大
(2)觸發器觸發后執行動作(action)及媒介定義
-->在配置好監控項和觸發器之后,一旦正常工作中的某觸發器狀態發生改變,一般意味著有異常情況發生,此時通常需要采取一定動作(action),如告警或者執行遠程命令等。
-->并非所有的觸發器狀態發生改變的場景都需要對其進行干預,如轉變為"OK"狀態時,相應地,如果觸發器的狀態轉變為"Problem",就需要告知所有關心其相關監控指標的人員了。
-->"通知(notification)"是zabbix中最常用的"動作"之一。
實現zabbix通知功能,一般需要兩個步驟:
-->定義所需的"媒介(media)": 通常指發送信息的途徑,如郵件、Jabber和SMS等;
-->配置一個"動作(action)": 發送信息至某"媒介";
動作由"條件"和"操作"組成,它的邏輯為當"條件"滿足時,就執行相應的"操作"
"發送通知"和"執行遠程命令"是兩個最基本的操作
zabbix事件(event)
Zabbix的時間是基于時間戳進行標記,它們是采取動作(action)如發送郵件通知的基礎,其主要來源于三種途徑:
-->觸發器(trigger)事件:觸發器狀態每次發生改變,都會生成相應"事件",且通常包含詳細信息,如發生的時間及新的狀態等;
-->發現(discovery)事件: zabbix會周期期性掃描"網絡發現規則"中指定的IP范圍,一旦發現主機或服務,就會生成一個或幾個發現時間;
-->發現事件有8類: Service Up、Service Down、Host Up、Host Down、Service Discovered、Service Lost、Host Discovered和Host Lost;
-->主動agent自動發現事件(也稱為"自動注冊事件"): 當一個此前狀態未知的主動agent發起檢測請求時會生成此舉事件;
因此,在Zabbix的通知機制也稱做基于事件的通知機制,也只有理解了事件本身,才能定制符合需求的通知系統。
告警媒介類型(Media type)
在zabbix中,媒介指發送通知信息的通道,其通常有以下幾種類型:
-->E-mail: 電子郵件,即通知郵件的方式傳送通知信息;
-->SMS: 手機短信,即通過連接至zabbix服務器GSM Modem發送通知;
-->Jabber: jabber消息;Jabber是一個開發的、基于XML的協議,能夠實現基于Internet或LAN的即時通訊服務;
-->自定義的通知腳本:以上方式不能滿足需求時,Zabbix可以調用位于其配置文件"AlertScriptPath"變量所定義的腳本查找目錄中的腳本來完成通知功能;
自定義媒介類型,如下所示:
創建zabbix用戶組及用戶:
(1)創建組:Managers CTOs zabbix_user
(2)創建用戶:tom隸屬CTOs 修改Admin媒介為loclhost_mailservice
定義動作action,實現第1步和第2步實現先遠程執行命令重啟服務,第3步至最后一步發送信息至相關人員通知:
以上圖為測試條件
最后測試如下:
啟動postfix服務然后就是等待那個閾值出現,你可以在shell里面watch -n 1 'ifconfig eth0',如果想快點直接測試lo,通過ab壓力測試,那個流量剛剛的,或者直接看screen,當我們定義了閾值,閾值設定較低 虛實線圖下面:
首先zabbix主頁會有action成功,在命令行就可以看到自己的mail了
定義Zabbix模板快速部署主機監控
(1)定義zabbix模板:
(2)定義監控項item及Graph
(3)定義監控Screens
(4)定義模板觸發器
(5)定義動作action指定觸發器都執行
實現一個action為多個觸發器報警。
zabbix模板定義完成。
最后添加監控主機,調用模板快速部署:
使用模板快速部署完成。
本文出自 “Opensamlee” 博客,請務必保留此出處http://gzsamlee.blog.51cto.com/9976612/1865878
? ?
轉載于:https://blog.51cto.com/7336056/1868551
總結
以上是生活随笔為你收集整理的Zabbix触发器_action动作及模板应用(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css选择器30种
- 下一篇: 《Python爬虫开发与项目实战》——1