主動模式不是只能用模板提供的標准檢測器
方式
zabbix-agent兩種運行方式即主動模式
和被動模式
.默認被動模式
. 兩種模式是相對 客戶端 角度來說的.
- 被動模式:等待server來取數據,可以使用自定義key方式自定義檢測數據.server端使用zabbix_get來主動獲取agent上的數據.
- 主動模式:agent主動推送數據給server,自定義數據使用 zabbix_sender 向服務端推送. server使用采集器來采集此類數據.
注意,被動模式注意 配置文件的:server= 參數配置. 該參數指定agent將允許誰來取數據.如果被設置為127.0.0.1,將只能在本地來獲取數據了.
看圖 看圖
使用內置
使用自定義key方式
zabbix采集器
客戶端執行發送命令.
zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k "temp.cpu" -o 33.32
zabbix_sender 發送 服務端采集器接受,目前采用定時發送.
簡單腳本
#!/bin/bash
zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k "temp.cpu" -o $(sensors -u coretemp-isa-0000 |grep temp1_input:|cut -c 16-55) &>/dev/null
zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k "fan.cpu" -o $(sensors |grep fan2 |awk '{print $2}') &>/dev/null
定時任務(20s發送一次)
crontab -e
* * * * * sh /root/zabbixS.sh
* * * * * sleep 20 ; sh /root/zabbixS.sh
* * * * * sleep 40 ; sh /root/zabbixS.sh
7月14補充
解釋器差別
定時任務腳本,請注意 sh解釋器(一些系統中sh只想dash解釋器)和bash 解釋器的差別.
詳細可以參考:https://stackoverflow.com/questions/5725296/difference-between-sh-and-bash/5725402#5725402
案列
使用sh解釋器無法正確執行成功的.而bash解釋器是沒有問題的.
test $(($RANDOM%2)) && zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k "ip" -o `curl -s ip.cip.cc` &>/dev/null || zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k "ip" -o `curl -s iiip.co` &>/dev/null