監控項是在zabbix中手機數據的基礎,沒有監控項就沒有數據,系統自帶模板帶有大量默認item,自定義item可以定義在模板中,在應用模板即可使用對應item;也可直接在host中定義
目標:自定義監控項檢查/tmp/aa文件是否存在,並設置觸發器,實現郵件報警
其實zabbix自帶監控項vfs.file.exists可以檢查文件是否存在,本文主要為了說明怎么自定義監控項,所以不使用自帶的。
vfs.file.exists[file] | 檢查文件是否存在。返回 0 - 未找到文件;1 - 常規文件或鏈接(軟/硬)存在 |
1. 開啟自定義用戶參數
# vim /usr/local/zabbix/conf/zabbix_agentd.conf UnsafeUserParameters=1
2. 在配置文件中添加UserParameter
#UserParameter的格式:UserParameter=<key>,<shell command>
UserParameter=file.exist[*],ls /tmp/$1 >/dev/null 2>&1;echo $? #0表示存在,>0表不存在
#帶參數UserParameter的格式:<key[*]>,<shell command>,其中*的意思是方括號中可以有任意多的參數,每個參數由逗號隔開,分別是$1、$2、$3、... ...
3. 重啟zabbix_agentd,在server端驗證UserParameter是否生效
重啟:略
#server端驗證
[root@zabbix ~]# zabbix_get -s 192.168.119.137 -k "file.exist[aa]"
0
[root@zabbix ~]# zabbix_get -s 192.168.119.137 -k "file.exist[bb]"
2
#以上結果說明在agent端存在/tmp/aa文件,不存在/tmp/bb文件
4. 在主機上創建應用集
5. 創建item
6.添加圖形
7. 添加觸發器
項目只收集數據。為了自動評估傳入數據,我們需要定義觸發器。觸發器包含一個表達式,該表達式定義數據的可接受級別的閾值。
如果這個水平超過了傳入的數據,觸發器將“觸發”或進入“問題”狀態 - 讓我們知道發生了某些事情可能需要注意。如果等級再次可接受,則觸發器返回到“OK”狀態。
觸發器表達式格式:
{<server>:<key>.<function>(<parameter>)}<operator><constant>
運算符如下表:
PRIORITY | OPERATOR | DEFINITION | Notes for unknown values |
---|---|---|---|
1 | - | Unary minus | -Unknown → Unknown |
2 | not | Logical NOT | not Unknown → Unknown |
3 | * | Multiplication | 0 * Unknown → Unknown (yes, Unknown, not 0 - to not lose Unknown in arithmetic operations) 1.2 * Unknown → Unknown |
/ | Division | Unknown / 0 → error Unknown / 1.2 → Unknown 0.0 / Unknown → Unknown |
|
4 | + | Arithmetical plus | 1.2 + Unknown → Unknown |
- | Arithmetical minus | 1.2 - Unknown → Unknown | |
5 | < | Less than. The operator is defined as: A<B ⇔ (A<B-0.000001) |
1.2 < Unknown → Unknown |
<= | Less than or equal to. | Unknown <= Unknown → Unknown | |
> | More than. The operator is defined as: A>B ⇔ (A>B+0.000001) |
||
>= | More than or equal to. | ||
6 | = | Is equal. The operator is defined as: A=B ⇔ (A>=B-0.000001) and (A<=B+0.000001) |
|
<> | Not equal. The operator is defined as: A<>B ⇔ (A<B-0.000001) or (A>B+0.000001) |
||
7 | and | Logical AND | 0 and Unknown → 0 1 and Unknown → Unknown Unknown and Unknown → Unknown |
8 | or | Logical OR | 1 or Unknown → 1 0 or Unknown → Unknown Unknown or Unknown → Unknown |
8. 遠程執行命令
當檢測到/tmp/aa不存在時遠程創建該文件
agent端修改配置文件
EnableRemoteCommands = 1
另外,在執行命令時確保你的zabbix用戶有執行權限,如果某些命令需要root權限,那么請使用sudo。編輯sudoer文件,zabbix用戶便可以執行對應命令了。
在/tmp下創建文件不需要root權限,該步驟可忽略
#以重啟nginx服務為例 zabbix ALL=NOPASSWD: ALL zabbix ALL=NOPASSWD: /etc/init.d/nginx stop,/etc/init.d/nginx start