创建模板->应用集->监控项
Server端配置(配置完重启生效)
配置zabbix_server.conf,指定脚本文件位置
# vim /usr/local/zabbix/etc/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix/scripts/
Agent端配置(配置完重启生效)
1.配置zabbix_agent.conf
# vim /usr/local/zabbix/etc/zabbix_agentd.conf
调用配置文件位置
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
此项配置为1
UnsafeUserParameters=1
3.配置键值项和脚本文件位置
# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/UserParameter_script.conf
#Nginx
UserParameter=nginx.status[*],/usr/local/zabbix/scripts/nginx_monitor.sh $1
#Mysql
UserParameter=mysql.status[*],/usr/local/zabbix/scripts/mysql_monitor.sh $1
#PHP-FPM
UserParameter=php-fpm.status[*],/usr/local/zabbix/scripts/php-fpm_monitor.sh $1
//这里的*和$1是对应的,来源是zabbix网页端创建监控项时候传入的键值
编写脚本,例如nginx_monitor.sh
# vim /usr/local/zabbix/scripts/nginx_monitor.sh
#!/bin/bash
HOST="localhost"
PORT="8000"
NGINX_COMMAND=$1
# 检测nginx进程是否存在
function nginx_process() {
/usr/bin/pgrep nginx | wc -l
}
# 检测nginx性能
function nginx_active() {
/usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk '/Active/ {print $NF}'
}
function nginx_reading() {
/usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk '/Active/ {print $NF}'
}
function nginx_writing() {
/usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk '/Active/ {print $NF}'
}
function nginx_waiting() {
/usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk '/Active/ {print $NF}'
}
function nginx_accepts() {
/usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function nginx_handled() {
/usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function nginx_requests() {
/usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
# 执行function
#${NGINX_COMMAND}
case $NGINX_COMMAND in
process)
nginx_process;
;;
active)
nginx_active;
;;
reading)
nginx_reading;
;;
writing)
nginx_writing;
;;
waiting)
nginx_waiting;
;;
accepts)
nginx_accepts;
;;
handled)
nginx_handled;
;;
requests)
nginx_requests;
;;
*)
echo $"USAGE:$0 {process|active|reading|writing|waiting|accepts|handled|requests}"
esac
WEB端配置
配置->模板->创建模板>创建应用集(应用集里包含监控项)->创建监控项(监控项中的键值传入数据就是脚本中$1变量)
创建图形
配置->模板->选择新创建的模板->图形->创建图形
在下方监控项里点击添加,将会列出监控项中监控的所有数据
创建触发器
配置->模板->选择新创建的模板->触发器->创建触发器(比如监控Nginx并发)
表达式->添加->选中监控Nginx并发的模板,功能中选择对应的匹配模式,结果中选择超过多少告警,点击插入
配置后结果如下
点解添加,触发器配置完成