zabbix监控nginx

zabbix监控nginx_第1张图片

1,确定监控内容

1)配置nginx

在编译nginx时加上--with-http_stub_status_module选项

编辑配置文件

[root@VM_0_2_centos ~]# vim /usr/local/nginx/conf/nginx.conf

location /status {

            stub_status on;

        }

2)查看

[root@VM_0_2_centos ~]# curl http://127.0.0.1/status

Active connections: 1

server accepts handled requests

42257 42257 43019

Reading: 0 Writing: 1 Waiting: 0

Active connections:当前活动的连接数量。

Accepts:已经接受客户端的连接总数量。

Handled:已经处理客户端的连接总数量。

(一般与accepts一致,除非服务器限制了连接数量)。

Requests:客户端发送的请求数量。

Reading:当前服务器正在读取客户端请求头的数量。

Writing:当前服务器正在写响应信息的数量。

Waiting:当前多少客户端在等待服务器的响应。

2,编写监控脚本

1)编写

[root@VM_0_2_centos ~]# vim /shell/chk_nginx_status.sh

#! /bin/bash

# Description:zabbix监控nginx性能以及进程状态

# Note:此脚本需要配置在被监控端,否则ping检测将会得到不符合预期的结果

#主机ip或者域名

HOST="jluocc.cn"

#nginx开放端口

PORT="80"

case $1 in

ping)

    /sbin/pidof nginx | wc -l;;

active)

    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Active' | awk '{print $NF}';;

reading)

    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Reading' | awk '{print $2}' ;;

writing)

    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Writing' | awk '{print $4}';;

waiting)

    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}';;

accepts)

    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $1}';;

handled)

    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $2}';;

requests)

    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $3}';;

*)

    echo 'ping|active|reading|writing|waiting|accepts|handled|requests'

esac

2)授权

[root@VM_0_2_centos ~]# chmod +x /shell/chk_nginx_status.sh

3)测试

[root@VM_0_2_centos ~]# /shell/chk_nginx_status.sh active

1

3,zabbix_agent配置

1)查看

[root@VM_0_2_centos ~]# cat /usr/local/zabbix/etc/zabbix_agentd.conf | grep zabbix_agentd.conf.d

# Include=/usr/local/etc/zabbix_agentd.conf.d/

# Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf   #开启这一行

2)编辑监控nginx配置文件

[root@VM_0_2_centos ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_nginx.conf

UserParameter=nginx.status[*],/shell/chk_nginx_status.sh $1

3)重启zabbix_agent

[root@VM_0_2_centos ~]# /etc/init.d/zabbix_agentd restart

4)测试

[root@VM_0_2_centos ~]# /usr/local/zabbix/bin/zabbix_get -s 172.16.0.2 -k nginx.status[active]

1

[root@VM_0_2_centos ~]# /usr/local/zabbix/bin/zabbix_get -s 172.16.0.2 -k nginx.status[reading]

0

4,zabbix_server端监控nginx

1)添加主机

zabbix监控nginx_第2张图片

2)添加监控模板

zabbix监控nginx_第3张图片
zabbix监控nginx_第4张图片

3)创建应用级

zabbix监控nginx_第5张图片
zabbix监控nginx_第6张图片

4)创建监控项

zabbix监控nginx_第7张图片

以一个accepts为例

zabbix监控nginx_第8张图片

创建后如下图

zabbix监控nginx_第9张图片

5)创建图形

zabbix监控nginx_第10张图片

5,查看监控项

zabbix监控nginx_第11张图片
zabbix监控nginx_第12张图片
zabbix监控nginx_第13张图片

6,创建聚合图形

zabbix监控nginx_第14张图片
zabbix监控nginx_第15张图片
zabbix监控nginx_第16张图片
zabbix监控nginx_第17张图片

最终合成

zabbix监控nginx_第18张图片

总结

到此监控nginx已经基本完成,触发告警下一节持续更新中,关注我



结束语:

更多精彩内容持续更新中,关注我微信公众号,有你更精彩。

zabbix监控nginx_第19张图片

你可能感兴趣的:(zabbix监控nginx)