天下風雲出我輩
一入江湖歲月催

Zabbix监控Nginx

Zabbix监控Nginx是使用Nginx自带的status状态页取值的,因此在监控端需要先开启nginx的状态页。相关文章请参见:Nginx启用status状态页

配置监控端

1、编写Agent端Nginx的监控脚本:

通过脚本获取status页面信息的关键值,zabbix server通过这些关键值才能生成数据图像,获取status的关键值脚本如下:

#! /bin/bash
# Description:zabbix监控nginx性能以及进程状态

HOST="127.0.0.1"
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 +x  nginx-status.sh

2、在本地测试下脚本获取数据

[[email protected] ~]# sh /opt/nginx-status.sh active
1

3、修改配置文件,定义监控脚本

#编辑配置zabbix_agentd.conf文件,修改参数开启自定义脚本监控
UnsafeUserParameters=1

#自定义脚本
vim /etc/zabbix/zabbix_agentd.d/nginx.conf 
UserParameter=nginx.status[*],/opt/nginx-status.sh $1

#重启zabbix-agent
systemctl restart zabbix-agent

4、zabbix服务端使用zabbix_get 测试获取数据

[[email protected] ~]# zabbix_get -s 192.168.1.230 -k nginx.status[active]
1

 

zabbix web界面配置

1、创建并定义模板信息,将模板关联到指定的主机组或者主机中。

 

2、创建应用集

 

3、创建监控项

创建监控项要注意命名方式,能够见名知意,最关键的是键值 ,这里的键值一点要和agent端的配置文件中定义的键值一致。

在监控脚本中,一共定义了7个监控项,所以这里的监控项页要创建7个,重复上面的步奏,创建脚本中相应的监控项。

 

4、创建图形,可以选择多个监控项。

5、创建完成后可以在最新数据中查看模板的信息。

 

6、查看主机信息,可以看到Template APP NGINX模板已经是关联成功了的。

 

7、最后查看图形数据

 

 

赞(2) 打赏
未经允许不得转载:Anonym0x1 » Zabbix监控Nginx

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏