在web端中需要增加各种监控,方便监控各个服务器上的各个中间件状态,在此文章中记录
1. 增加nginx监控
1.1 在各个zabbix_agent的shell目录下增加被监控状态获取脚本,前提条件是nginx 已开启status获取,编译安装时需要增加 --with-http_stub_status_module同时在nginx.conf中开启
vi /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
location /status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
vi /home/shell/nginx_status.sh
#!/bin/sh
# date: 2019-03-25
# Description:nginx性能以及进程状态
# Note:zabbix_agent端
HOST="localhost"
PORT="80"
# 检测nginx进程是否存在
function ping {
/sbin/pidof nginx | wc -l
}
# 检测nginx性能
function active {
/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {
/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled {
/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests {
/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
# 执行function
$1
chmod 755 /home/shell/nginx_status.sh
开启zabbix中的配置及键值
vi /home/zabbix/etc/zabbix_agentd.conf
增加
UnsafeUserParameters=1
UserParameter=nginx.status[*],/home/shell/nginx_status.sh $1
重启
service zabbix_agentd restart
1.2 接下来可以在web端进行配置了
创建模板,名字自定
然后创建模板下的应用集,名字自定
创建应用集下的监控项
键值需与agentd里的一样
总共需要创建8个(与sh脚本中的一致,可少建,但不可不一致)
创建显示图形(也可以不建,不过为了能后续看到明显的信息,最好建)
选择想要显示的监控项即可。
创建触发器(为了防止nginx关闭,所以针对ping做了个监控项,设置的是10分钟内ping不通就告警)
至此nginx的监控基本完成,其实还可以针对连接状态做几个触发器,这个看各自需求了。