欢迎您, 来到 宁时修博客.^_^

Nginx--07 Zabbix监控Nginx status

2016/08/25 林木立 Zabbix 1780
把做过的zabbix监控nginx状态总结下,nginx需开启stub_status模块。

一、nginx开启stub_status模块

  1、添加stub_status模块

  在编译安装nginx的时候添加“--with-http_stub_status_module”模块。

   ./configure --prefix=/usr/local/nginx --with-http_stub_status_module

 

  2、nginx配置文件中开启status

  在站点server下添加一个location

   server {
       listen      80;
       server_name  www.xxx.com;
       location / {
             root html;
 
        }
       location /ngxstatus {
             stub_status;
             access_log off;
             allow 127.0.0.1
             allow 192.168.0.0/24;
             deny all;
          }
    }


二、编写脚本获取nginx status

  1、脚本

 #!/bin/bash
  nginx_active(){
  /usr/bin/curl "http://127.0.0.1/ngxstatus" 2>/dev/null| grep 'Active' | awk '{print $NF}'
 }
  nginx_reading(){
  /usr/bin/curl "http://127.0.0.1/ngxstatus" 2>/dev/null| grep 'Reading' | awk '{print $2}'
 }
  nginx_writing(){
  /usr/bin/curl "http://127.0.0.1/ngxstatus" 2>/dev/null| grep 'Writing' | awk '{print $4}'
 }
  nginx_waiting(){
  /usr/bin/curl "http://127.0.0.1/ngxstatus" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
 }
  nginx_accepts(){
  /usr/bin/curl "http://127.0.0.1/ngxstatus" 2>/dev/null| awk 'NR==3{print $1}'
 }
  nginx_handled(){
  /usr/bin/curl "http://127.0.0.1/ngxstatus" 2>/dev/null| awk 'NR==3{print $2}'
 }
  nginx_requests(){
  /usr/bin/curl "http://127.0.0.1/ngxstatus" 2>/dev/null| awk 'NR==3{print $3}'
 }
  case $1 in
          active)
             nginx_active
             ;;
          reading)
             nginx_reading
             ;;
          writing)
             nginx_writing
             ;;
          waiting)
             nginx_waiting
             ;;
          accepts)
             nginx_accepts
             ;;
          handled)
             nginx_handled
             ;;
          requests)
             nginx_requests
             ;;
    esac

 注:记得给脚本授权

  chown zabbix.zabbix nginx_status.sh


  2、状态释义

  blob.png

    Active connections    对后端发起的活动连接数

       server accepts 36403          nginx 总共处理了36403个连接

  handled 36403                     成功创建了36403次握手

       requests 107583                  总共处理了107583个请求

  Reading                                nginx读取客户端的header数

  Writing                                  nginx返回给客户端的header数

  Waiting                                 nginx请求处理完成,正在等待下一请求指令的连接


三、配置zabbix_agent

  1、配置zabbix_agent.conf

  也可另写一个nginx_status.conf,编写key。

 UserParameter=nginx_status[*],/server/scripts/nginx_status.sh "$1"

     

     2重启zabbix_agent程序

 systemctl restart zabbix-agent   (RHEL/CentOS 7.x)
 /etc/init.d/zabbix-agent       (RHEL/CentOS 6.x)

  

  3、zabbix服务端测试

  zabbix_get -s 192.168.1.3 -k "nginx_status[active]"

  如果不能获取到数据,那就检查配置、权限、防火墙、selinux。


四、zabbix WEB界面配置

  如果集群中只有一台nginx服务,可以不做成模板,最好还是做成模板,方便啊!

  

  1、创建模板

1472032640219074.png


24182446.png 


    2、创建item(监控项)

blob.png


5527.png


75606.png


  3、创建触发器

  4、创建图形


五、导入模板  

  可直接导入模板,免去配置item的烦恼,O(∩_∩)O哈哈~,模板如下

zbx_nginx_templates.xml

  步骤:

  1、导入模板

729.png


0913.png


  2、关联主机

4180952.png

  选择你的主机,然后如下配置

1236.png

  这样就成功了!!ヾ(≧O≦)〃嗷~


六、图形展示

314.png

  如此,就可以看到监控的各项参数了!!

  祝你成功!!ヾ( ̄▽ ̄)Bye~Bye~

点赞
说说你的看法

所有评论: (0)

# 加入组织

1、用手机QQ扫左侧二维码

2、搜Q群:1058582137

3、点击 宁时修博客交流群