zabbix--External checks 外部命令檢測

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

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

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

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

 下面寫個簡單腳本測試下:數據庫

[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]# 

而後建立itemapi

 

 檢查能不能獲取到數據:bash

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

加入位置參數:測試

[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 mapingspa

 

 

 

 

 

 lastest data看下效果:

相關文章
相關標籤/搜索