可以使用shell,python等
1. 建立通過輸出傳遞結果值。
1.1 監控指令碼
1.1.1 echo / print
vim test_count_echo.sh
psql=/usr/local/pgsql/bin/psql
dbname=$1
result=`$psql -u dbadmin -d $dbname -aqt -c "select count(*) from test01;"`
echo $result
1.2. 配置檔案
# cd /etc/zabbix/zabbix_agentd.d
# vim userparameter_test.conf
userparameter=test_echo.get.count[*],/data/zabbix_scripts/test_count_echo.sh "$1"
修改之後要重啟
# service zabbix-agent restart
測試# zabbix_get -s 192.168.3.51 -p10050 -k"test_echo.get.count[db1]"
1.3. 新增監控項
可以將監控項新增至普通的item或discovery中的item。
新增至dsicovery中 item prototypes
name: test_count
key: test_echo.get.count
2. 通過zabbix_sender傳送結果值,可以包含多個資訊。
這個通過pg_monz中的自動發現資料庫名稱列表來做實驗。
2.1 監控指令碼
vim test_count_sender.sh
#!/bin/bash
pgshell_confdir="$2"
host_name="$3"
zabbix_agentd_conf="$4"
dbname="$5"
timestamp_query='extract(epoch from now())::int'
# load the psql connection option parameters.
source $pgshell_confdir/pgsql_funcs.conf
test_sender)
sending_data=$(psql -a --field-separator=' ' -t -h $pghost -p $pgport -u $pgrole $dbname -c \
"select '\"$host_name\"', 'psql.test01[$dbname]', $timestamp_query, (select count(*) from test01) \
union all \
select '\"$host_name\"', 'psql.test02[$dbname]', $timestamp_query, (select count(*) from test02) "
exit
esac
if [ $? -ne 0 ]; then
echo "$sending_data"
exit
fi#echo $sending_data
result=$(echo "$sending_data" | zabbix_sender -c $zabbix_agentd_conf -v -t -i - 2>&1)
response=$(echo "$result" | awk -f ';' '$1 ~ /^info/ && match($1,/[0-9].*$/) end ')
if [ -n "$response" ]; then
echo "$response"
else
echo "$result"
fi2.2 配置檔案
# cd /etc/zabbix/zabbix_agentd.d
# vim userparameter_test.conf
userparameter=test_sender[*],/data/zabbix_scripts/test_count_sender.sh test_sender "$2" "$3" "$4" "$5"
修改之後要重啟
# service zabbix-agent restart
測試客戶端測試:
./test_count_sender.sh test_sender /usr/local/etc/ dbw21as.daodao.com /etc/zabbix/zabbix_agentd.conf db2
輸出發了幾行內容到服務端
服務端測試
# zabbix_get -s 192.168.3.51 -p10050 -k"test_sender.[test_sender,/usr/local/etc,dbw21as.daodao.com,/etc/zabbix/zabbix_agentd.conf,db1]"
2.3 新增監控項
可以將監控項新增至普通的item或discovery中的item。
2.3.1 建立中間級item
當新增多個返回值時,需要先建乙個中轉的item。
建 test_sender ,
name: test_count
key: test_sender[,,,,]
2.3.2 建立監控項中的返回值item
新增至dsicovery中 item prototypes。
key中的值為返回值的
name: test_count sender test01
key: psql.test01
name: test_count sender test02
key: psql.test02
Zabbix新增自定義監控項
在zabbix的監控系統中通常是由zabbix server與zabbix agent一起配合實現監控。在zabbix agent內建了很多監控基礎的監控項,參見這些監控項都是cpu,檔案系統,網路,磁碟等基礎的監控項。對於自己開發服務的監控,zabbix提供了良好框架為使用者實現監控和報警。下面將...
zabbix自定義監控
1 監控資料備份情況 主動模式 1 資料備份及傳送成功 1 2 資料匯入成功 1 2 在zabbix agent客戶端配置如下 root zagent zabbix cat etc zabbix zabbix agentd.conf startagents 0 設定該值為0,則agent不會監聽本地...
zabbix 使用者自定義監控引數新增
1.item key的新增 key可以帶引數,該引數為乙個陣列列表,可以同時傳遞多個引數,key的格式如下 key parameters 例如 vfs.fs.size vfs.fs.size opt key的可接引數分為引號字串 非引號字串和陣列 quoted string unquoted str...