zabbix通過自定義腳本監控nginx,php-fpm和mysql占用記憶體數和程序的個數
首先,在zabbix腳本目錄下添加一個腳本,寫入如下代碼
#!/bin/bash
#license:GPL
#mail:[email protected]
#date:2015.04.16
top -bn1>/usr/local/zabbix-2.4.4/scripts/process.log
LOG=/usr/local/zabbix-2.4.4/scripts/process.log
php_fpm(){
grep "php-fpm" $LOG |awk '{sum+=$6}; END{print sum}'
}
php_fpm_num(){
grep "php-fpm" $LOG |wc -l
nginx(){
grep "nginx" $LOG |awk '{sum+=$6}; END{print sum}'
nginx_num(){
grep "nginx" $LOG |wc -l
mysqld(){
grep "mysqld" $LOG |awk '{sum+=$6}; END{print sum}'
mysqld_num(){
grep "mysqld" $LOG |wc -l
case "$1" in
php_fpm)
php_fpm
;;
php_fpm_num)
php_fpm_num
nginx)
nginx
nginx_num)
nginx_num
mysqld)
mysqld
mysqld_num)
mysqld_num
*)
echo "Usage: $0 {php_fpm|php_fpm_num|nginx|nginx_num|mysqld|mysqld_num}"
esac
儲存之後修改其屬組和屬主為zabbix.zabbix,然後建立一個檔案process.log,同樣設定屬主和屬組為zabbix.zabbix
然後編輯zabbix_agentd.conf檔案,在最後添加上下面這段代碼,并重新開機zabbix_agentd服務
UserParameter=process.php_fpm,/usr/local/zabbix-2.4.4/scripts/processstatus.sh php_fpm
UserParameter=process.php_fpm_num,/usr/local/zabbix-2.4.4/scripts/processstatus.sh php_fpm_num
UserParameter=process.nginx,/usr/local/zabbix-2.4.4/scripts/processstatus.sh nginx
UserParameter=process.nginx_num,/usr/local/zabbix-2.4.4/scripts/processstatus.sh nginx_num
UserParameter=process.mysqld,/usr/local/zabbix-2.4.4/scripts/processstatus.sh mysqld
UserParameter=process.mysqld_num,/usr/local/zabbix-2.4.4/scripts/processstatus.sh mysqld_num
之後就可以在web頁面添加item,生成圖表了,注意top取到的記憶體機關是KB,是以在定義item的時候需要自定義機關和設定倍數
生成的各個程式占用記憶體大小的圖形如下
生成的各個程式的程序個數圖形如下,可以設定觸發器,當程序滿足觸發其條件時發送報警