监控nginx
首先在受控端上安装nginx这个就不说了吧
直接跳转关键部分~
1 安装完nginx之后在nginx主配置文件里的server下写入
location /nginx_status {
stub_status on;
access_log off;
allow 192.168.1.0/24;
保存并退出,然后重载nginx服务,然后去访问
在/etc/zabbix/zabbix.agend.d/下写nginx脚本格式为shell脚本
#!/bin/bash
HOST="本机的IP"
PORT="80"
function ping {
/sbin/pidof nginx | wc -l
}
function active {
/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {
/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled {
/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests {
/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
$1
保存退出之后给这个脚本执行权限,并重启服务
然后在受控端上吧zabbix主配置文件里的UnsafeUserParameters=1 改为1
改完之后保存退出
在/etc/zabbix/zabbix.agend.d/下创建一个主配置文件
名字随便起,但后缀为conf
UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx_status.sh $1
写完之后保存退出
zabbix_get -s IP -p 10050 -k nginx.status[accepts]
这个命令在主控制端上测试你在受控端上写的脚本
如果返回值为1或者其他数字就是成功了
(zabbix_get这个默认是没有装的,装的时候为zabbix-get)
完成之后,去zabbix模板创建监控项就可以了