zabbix--External checks 外部命令檢測


概述
zabbix server 運行腳本或者二進制文件來執行外部檢測,外部檢測不需要在被監控端運行任何 agentd
item key 語法如下:

參數 定義
script shell 腳本或者二進制文件名.
parameter(s) Optional command line parameters.

如果不想傳遞任何參數,如下:
script[] 或者 script
zabbix server 會再定義好的目錄里面執行外部腳本(zabbix server 中的配置 extenalScripts),這個腳本將使用 zabbix
的運行用戶身份運行。請注意權限以及只有指定目錄中的命令才能夠被執行。
zabbix 腳本使用標准方式輸出(完整輸出但是會刪除末尾的空白) ,標准錯誤和退出代碼將會被丟棄

PS:請不要過度使用那個外部檢測,這會嚴重降低 zabbix 系統性能

 下面寫個簡單腳本測試下:

[root@localhost zabbix]# ls
alertscripts  externalscripts
[root@localhost zabbix]# cat externalscripts/mysql.sh 
#!/bin/bash
export MYSQL_PWD=123456
mysql -uroot  -h 192.168.1.107 -e "select account_locked from mysql.user where user='zabbix';"
[root@localhost zabbix]# chmod a+x externalscripts/mysql.sh 
[root@localhost zabbix]# chown zabbix:zabbix externalscripts/mysql.sh 
[root@localhost zabbix]# ll externalscripts/mysql.sh 
-rwxr-xr-x 1 zabbix zabbix 131 Jun 22 16:13 externalscripts/mysql.sh
[root@localhost zabbix]# pwd
/usr/lib/zabbix
[root@localhost zabbix]# 

然后創建item

 

 檢查能不能獲取到數據:

上面例子可以繼續優化 實際上腳本可能會給多個主機使用,不同主機的數據庫連接信息也不一樣,需要改成傳參的方式:

加入位置參數:

[root@localhost zabbix]# ./externalscripts/mysql.sh 192.168.1.107 zabbix 123456
N
[root@localhost zabbix]# cat ./externalscripts/mysql.sh 
#!/bin/bash
host=$1
user=$2
mysql_pwd=$3

export MYSQL_PWD=$3
mysql -uroot  -h $1 -e "select account_locked from mysql.user where user=\"$2\";" | sed -n "2p"
[root@localhost zabbix]# 

 修改下item:

 

再配置下value maping

 

 

 

 

 

 lastest data看下效果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM