zabbix监控nginx,新建模板以及web监控

一、nginx客户端

1、源码编译nginx
使用zabbix监控nginx需要使用nginx的状态页,所以需要nginx编译该选项

apt-get install gcc libpcre3 libpcre3-dev openssl libssl-dev zlib1g zlib1g-dev make
./configure --prefix=/apps/nginx --with-http_stub_status_module
make && make install

2、修改nginx配置文件

location /nginx_status {
      stub_status;
      allow 127.0.0.1;
      deny all;
}
状态页

3、编写脚本获取nginx状态页的数据

#!/bin/bash
#
host=${2:-'127.0.0.1'}
port=${3:-'80'}
page=${4:-'nginx_status'}
info=$(/usr/bin/curl --connect-timeout 5 -s http://${host}:${port}/${page} 2>/dev/null)
code=$(/usr/bin/curl --connect-timeout 5 -o /dev/null -s -w %{http_code} http://${host}:${port}/${page})
proc=$(/usr/bin/pgrep nginx | wc -l)

case "$1" in
  status)
    echo "$code $proc" | awk '{code=$1}{proc=$2}END{if(code == "200" && proc != 0){printf("%d\n",1)}else{printf("%d\n",0)}}'
    ;;
  active)
    echo "$info" | awk '/^Active/{var=$NF}END{if(var~/^[0-9]+$/){printf("%d\n",var)}else{printf("%d\n",0)}}'
    ;;
  reading)
    echo "$info" | awk '/Reading/ {print $2}'
    ;;
  writing)
    echo "$info" | awk '/Writing/ {print $4}'
    ;;
  waiting)
    echo "$info" | awk '/Waiting/ {print $6}'
    ;;
  accepts)
    echo "$info" | awk 'NR==3 {print $1}'
    ;;
  handled)
    echo "$info" | awk 'NR==3 {print $2}'
    ;;
  requests)
    echo "$info" | awk 'NR==3 {print $3}'
    ;;
  restimes)
    echo "$info" | awk 'BEGIN{OFMT="%.3f"} NR==3 {print $4/$3}'
    ;;
  *)
    echo "ZBX_NOTSUPPORTED"
    ;;
esac

本机验证脚本运行

root@ubuntu20:/etc/zabbix# bash /etc/zabbix/zabbix_agentd.conf.d/check_nginx.sh writing
1

4、编辑zabbix-agent的配置文件 zabbix_agentd.conf

UserParameter=nginx_status[*],/etc/zabbix/zabbix_agentd.conf.d/check_nginx.sh $1

重启zabbix-agent

systemctl restart zabbix-agent.service

二、zabbix-server端

zabbix-server验证脚本

root@ubuntu20:/etc/zabbix# zabbix_get -s 192.168.43.109 -p 10050 -k "nginx_status[writing]"
1

三、zabbix web页面

1、创建模板


创建新模板

2、生成新的模板,群组选择模板,然后点击添加


创建模板

3、生成应用集,点击模板,创建应用集
生成应用集

应用集

4、生成监控项


创建监控项

填写配置

5、生成触发器
生成触发器

6、生成图形
生成图形

7、指定机器添加模板
添加模板

监控图形

8、添加web监控


添加web监控

添加参数

客户端为进行测试使用的工具,一般选择谷歌浏览器就行
状态码监控

如果要针对web监控进行告警,需要新加入一个触发器,触发器的监控项一般为网站的响应码和响应时间
web监控触发器

响应时间

上述的触发器为连续三次响应时间都超过5秒

你可能感兴趣的:(zabbix监控nginx,新建模板以及web监控)