在實際監控中,除了官方自帶的一些監控項,我們很多時候有一些定制化監控,比如特定的服務、TCP 連接狀態等等,這時候就需要自定義監控項。自定義監控項的就是要通過用戶自定義的參數來執行監控獲取數據。本文將講講用戶自定義參數和一個用戶自定義參數的示例(監控 TCP 連接狀態)。
一、用戶自定義參數
用戶定義參數可以用來幫助用戶實現通過 Zabbix agent
執行非 Zabbix
原生的 agent check
。
在 agent 的配置文件中配置參數設置 UserParameter
。
一條用戶自定義參數配置應當使用以下語法:
UserParameter=<key>,<command>
key 是對應監控項鍵值的值,command 是獲取 監控項的值的命令,可以是腳本。
key 可以傳遞參數,形如 key[*],表示接受監控項傳來的所有參數,在 command 可以使用 $@,$1, $2 等獲取傳入的參數。
Zabbix agent
執行的命令最多可以返回 512KB 的數據給 zabbix server
。但是,請注意,最終可以存儲在數據庫中的文本值,在 MySQL
上的限制為 64KB 。
用戶自定義參數示例
UserParameter=ping,echo 1
代理將始終使用'ping'鍵為一個監控項返回'1'。
一個更復雜的例子:
UserParameter=mysql.ping,mysqladmin -uroot ping | grep -c alive
如果MySQL服務器是活動狀態,代理將返回'1',否則為0。
UserParameter=tcp.status[*],/bin/bash /opt/scripts/tcp_status.sh $1
二、配置 監控 TCP 連接狀態
配置 zabbix agent
更改 zabbix agent
配置文件
sudo echo "UserParameter=tcp.status[*],/bin/bash /opt/scripts/tcp_status.sh \$1 " >>/etc/zabbix/zabbix_agentd.conf
下載監控腳本
# 創建目錄
sudo mkdir /opt/scripts/
# 下載腳本,該鏈接有時間期限,github地址:https://github.com/tobewithyou1996/LinuxGuide/tree/master/Shell
sudo wget 'https://djxlsp.oss-cn-shenzhen.aliyuncs.com/shell/tcp-status.sh?OSSAccessKeyId=LTAI8hlsoWKOIPS8&Expires=1561404848&Signature=Si3RT4GdkEVKHrIgR7UaayPYcdU%3D' -O /opt/scripts/tcp_status.sh
# 更改腳本的所有者和所屬組
sudo chown zabbix:zabbix /opt/scripts/tcp_status.sh
# 更改腳本的權限
sudo chmod 744 /opt/scripts/tcp_status.sh
### 重啟zabbix agent
# centos6
sudo service zabbix-agent restart
# centos7
sudo systemctl restart zabbix-agent
導入監控模板
xml
文件: https://github.com/tobewithyou1996/LinuxGuide/blob/master/Zabbix/zabbix-tcp-connection.xml
選擇導入該模板,該模板包含 一個應用集、11個監控項、1個觸發器、一個圖形。
然后將該模板鏈接到主機,這樣就可以監控對應的tcp連接狀態數據。
監控數據
監控圖表