監控項是在zabbix中手機數據的基礎,沒有監控項就沒有數據,系統自帶模板帶有大量默認item,自定義item能夠定義在模板中,在應用模板便可使用對應item;也可直接在host中定義nginx
目標:自定義監控項檢查/tmp/aa文件是否存在,並設置觸發器,實現郵件報警shell
其實zabbix自帶監控項vfs.file.exists能夠檢查文件是否存在,本文主要爲了說明怎麼自定義監控項,因此不使用自帶的。express
vfs.file.exists[file] | 檢查文件是否存在。返回 0 - 未找到文件;1 - 常規文件或連接(軟/硬)存在 |
1. 開啓自定義用戶參數vim
# vim /usr/local/zabbix/conf/zabbix_agentd.conf UnsafeUserParameters=1
2. 在配置文件中添加UserParameter bash
#UserParameter的格式:UserParameter=<key>,<shell command>
UserParameter=file.exist[*],ls /tmp/$1 >/dev/null 2>&1;echo $? #0表示存在,>0表不存在
#帶參數UserParameter的格式:<key[*]>,<shell command>,其中*的意思是方括號中能夠有任意多的參數,每一個參數由逗號隔開,分別是$一、$二、$三、... ...
3. 重啓zabbix_agentd,在server端驗證UserParameter是否生效spa
重啓:略server
#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]"
2blog
#以上結果說明在agent端存在/tmp/aa文件,不存在/tmp/bb文件ip
4. 在主機上建立應用集get
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