Zabbix监控Nginx状态详细配置
注:Zabbix监控Nginx状态没有现成的模板使用,所以这里将会演示如何创建模板并使用。
zabbix部署说明:
zabbix-server:CentOS7-63 服务器IP:192.168.3.63
zabbix-agent:CentOS7-64 服务器IP:192.168.3.64
zabbix版本说明:zabbix-server:4.4.6 zabbix-agent:4.4.6
Zabbix监控Nginx状态详细配置步骤如下:
一、修改nginx配置文件
使用Nginx的statut状态来监控nginx情况,添加创建配置文件:
#如果是在生产环境上,有定义根重定向的或没有定义根重定向,都可以用以下 nginx 的配置
[root@centos7-64 ~]# vim /etc/nginx/conf.d/nginx_status.conf
server {
listen 80;
server_name 192.168.3.64;
location ^/
{
rewrite / /status permanent;
}
location /status {
stub_status on;
allow 127.0.0.1;
access_log off;
}
}
二、在客户端创建Nginx监控脚本
[root@centos7-64 ~]# vim /etc/zabbix/scripts/nginx_status.sh
#!/bin/bash
##################################################
# Description:zabbix 通过 status 模块监控 nginx
##################################################
HOST="192.168.3.64"
PORT="80" #端口和你前面Nginx设置一样
stub_status=status #名称和你前面开启Nginx的statut状态路径设置一样为status
function check() { #检查nginx是否存活
if [ -f /sbin/pidof ]; then
/sbin/pidof nginx | wc -w
else
ps ax | grep -v "grep" | grep -c "nginx:"
fi
}
function active() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function accepts() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
function reading() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
$1
文件权限设置:
chmod +x /etc/zabbix/scripts/nginx_status.sh
chown zabbix:zabbix /etc/zabbix/scripts/nginx_status.sh
三、测试
a.进行访问测试nginx的status状态是否可用
[root@centos7-64 ~]# curl 192.168.3.64/status
b、检测脚本能否正常使用
[root@centos7-64 ~]# sh /etc/zabbix/scripts/nginx_status.sh active
1
[root@centos7-64 ~]# sh /etc/zabbix/scripts/nginx_status.sh check
2
......可每个参数逐步进行检测比较:waiting、reading、writing、accepts、handled、requests
c、zabbix-server服务端监测数据是否能够正常传送
[root@centos7-64 ~]# systemctl restart zabbix-agent #客户端重启zabbix-agent生效配置
[root@CentOS7-63 zabbix]# zabbix_get -s 192.168.3.64 -p 10050 -k nginx.status[active]
1
四、修改 zabbix_agentd.conf 配置文件
修改:UnsafeUserParameters 等于 1 :UnsafeUserParameters=1
添加:UserParameter=nginx.status[*],/bin/bash /etc/zabbix/scripts/nginx_status.sh $1
修改后如下图所示:
五、进入 zabbix 界面配置监控模板
1、配置流程:配置——模板——创建模板 Template Nginx-status
2、配置流程:配置——模板——Template Nginx-status——创建应用集
3、配置流程:配置——模板——Template Nginx-status——创建监控项
将监控脚本中涉及的8项检测内容全部添加监控项后,如图所示:
4、配置流程:配置——模板——Template Nginx-status——创建触发器
触发器实时监控 Nginx 的存活状态,Nginx一旦宕机,就会发生报警
5、配置流程:配置——模板——Template Nginx-status——创建图形
在此,模板已经创建完成了
六、监控主机添加新创建的Template Nginx-status模板并查看最新检测数据
观察所监测的主机中是否有添加了自己所创建的模板,如果没有就需要添加;否则无法实行监控
如果模板已经添加上,稍等片刻,就可以在 zabbix 的监控图像中可以观察到 nginx 的状态
最终结果如图:
附件下载:包含Nginx开启status状态配置文件和Nginx检测脚本
共有 0 条评论