一、zabbix agent端操作
1、查看nginx是否开启stub status
编译选项中必须包含–with-http_stub_status_module,如果没有,需要带上–with-http_stub_status_module重新编译nginx
2、配置nginx.conf
[root@VM-4ac91edd-f241-426b-bf24-a14dc5d1ae2f conf]# vim nginx.conf
location /nginx_status {
stub_status on;
access_log off;
}
[root@VM-4ac91edd-f241-426b-bf24-a14dc5d1ae2f conf]# cd ../sbin/
[root@VM-4ac91edd-f241-426b-bf24-a14dc5d1ae2f sbin]# ./nginx -s reload
修改nginx.conf,重新加载nginx
3、实验nginx状态是否能获取
[root@VM-4ac91edd-f241-426b-bf24-a14dc5d1ae2f sbin]# curl http://127.0.0.1:90/nginx_status
Active connections: 12
server accepts handled requests
7900753 7900753 23731956
Reading: 0 Writing: 1 Waiting: 11
出现如上情况,说明配置成功
4、在zabbix客户端机器上创建nginx监控脚本
[root@VM-4ac91edd-f241-426b-bf24-a14dc5d1ae2f zabbix]# cd /usr/local/zabbix/
[root@VM-4ac91edd-f241-426b-bf24-a14dc5d1ae2f zabbix]# mkdir scripts
[root@VM-4ac91edd-f241-426b-bf24-a14dc5d1ae2f zabbix]# vim scripts/nginx_status.sh
#!/bin/bash
case $1 in
active)
curl -s http://127.0.0.1:90/nginx_status | awk '/Active/ {print $3}' ;;
accepts)
curl -s http://127.0.0.1:90/nginx_status | awk 'NR==3 {print $1}' ;;
handled)
curl -s http://127.0.0.1:90/nginx_status | awk 'NR==3 {print $2}' ;;
requests)
curl -s http://127.0.0.1:90/nginx_status | awk 'NR==3 {print $3}' ;;
reading)
curl -s http://127.0.0.1:90/nginx_status | awk '/Reading/ {print $2}' ;;
writing)
curl -s http://127.0.0.1:90/nginx_status | awk '/Writing/ {print $4}' ;;
waiting)
curl -s http://127.0.0.1:90/nginx_status | awk '/Waiting/ {print $6}' ;;
*)
echo "Usage: $0 { active | accepts | handled | requests | reading | writing | waiting }" ;;
esac
[root@VM-4ac91edd-f241-426b-bf24-a14dc5d1ae2f zabbix]# vim etc/zabbix_agentd.conf
在zabbix_agentd.conf末尾添加:
#nginx status
UserParameter=nginx.active,/usr/local/zabbix/scripts/nginx_status.sh active
UserParameter=nginx.accepts,/usr/local/zabbix/scripts/nginx_status.sh accepts
UserParameter=nginx.handled,/usr/local/zabbix/scripts/nginx_status.sh handled
UserParameter=nginx.requests,/usr/local/zabbix/scripts/nginx_status.sh requests
UserParameter=nginx.reading,/usr/local/zabbix/scripts/nginx_status.sh reading
UserParameter=nginx.writing,/usr/local/zabbix/scripts/nginx_status.sh writing
UserParameter=nginx.waiting,/usr/local/zabbix/scripts/nginx_status.sh waiting
5、重启zabbix_agentd
[root@VM-4ac91edd-f241-426b-bf24-a14dc5d1ae2f zabbix]# service zabbix_agentd restart
二、zabbix server管理页面端操作
1、创建模板(配置->模板->创建模板->填写模板名称->添加)
模板名称为Template App Nginx Service
2、给模板创建应用集
配置->模板,找到Template App Nginx Service模板,点击应用集,创建应用集(名称:Nginx status)
3、在刚创建的应用集中创建监控项
分别创建与zabbix_agentd.conf中对应的几个监控(nginx.accepts、nginx.active、nginx.handled、nginx.reading、nginx.requests、 nginx.waiting、 nginx.writing)
各个监控项创建好后结果如下,键值与zabbix_agentd.conf中用户参数一一对应(这里也可以看出zabbix进行各个监控项监控的套路。。)
4、创建图形
创建图形很好理解,如果不创建图形,nginx的状态无法直观的展示
以上1、2、3、4步骤就完成了nginx监控模板的配置,包括创建模本、创建应用集、在应用集中创建监控项、给监控项创建图形操作,在以后的针对不同应用(例如mysql、tomcat、redis等等)的监控时可以按照这个套路来进行,达到统一配置,统一应用到被监控主机,这样操作和后期的管理都会很清晰。
5、模板应用到被监控主机
配置->主机,选择要监控的主机名称,点击进去,添加刚创建的模板Template App Nginx Service即可
6、验证成功