zabbix监控nginx

作者: 无字天书 | 来源:发表于2019-06-08 16:01 被阅读83次

    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)添加主机

    2)添加监控模板

    3)创建应用级

    4)创建监控项

    以一个accepts为例

    创建后如下图

    5)创建图形

    5,查看监控项

    6,创建聚合图形

    最终合成

    总结

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


    看官福利:


    结束语:

    更多精彩内容持续更新中,关注我,有你更精彩。

    相关文章

      网友评论

        本文标题:zabbix监控nginx

        本文链接:https://www.haomeiwen.com/subject/rquixctx.html