zabbix通過自定義腳本監控nginx,php-fpm和mysql佔用內存數和進程的個數

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的時候需要自定義單位和設定倍數

wKiom1UvNEbSdVSbAAB9vqqsXSo658.jpg

生成的各個程序佔用內存大小的圖形如下

wKiom1UvNJygIArSAAUIoiF9ZSg645.jpg生成的各個程序的進程個數圖形如下,可以設定觸發器,當進程滿足觸發其條件時發送報警

wKioL1UvNlHCeZ99AASOUhadZvA947.jpg

本文出自 “檸檬” 博客,請務必保留此出處http://xianglinhu.blog.51cto.com/5787032/1633333


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章