zabbix は、カスタム スクリプトを通じて nginx、php-fpm、mysql が占有するメモリとプロセス数を監視します
まず、zabbix スクリプト ディレクトリにスクリプトを追加し、次のコードを記述します
#!/bin/bash
#license:GPL
#mail:admin@huxianglin.cn
#date:2015.04.16
トップ-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 "使用量: $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 ページに項目を追加し、グラフを生成できるようになります。top が使用するメモリ単位は KB であるため、カスタマイズする必要があることに注意してください。
生成された各プログラムのメモリサイズのグラフは以下のとおりです
生成された各プログラムのプロセス数のグラフは以下のとおりですトリガーを設定できます。プロセスがトリガーとなる条件が満たされたときにアラームを送信します。