关于zabbix-server以及zabbix-agent2的安装这里不做说明了

anget2端配置

使用RPM包编译安装的nginx 编译安装时加上该选项 —with-http_stub_status_module
修改nginx的配置文件

  1. [root@jumpserver ~]# vim /usr/local/nginx/conf/nginx.conf
  2. server {
  3. listen 80;
  4. server_name localhost;
  5. location /nginx_status{
  6. stub_status on;
  7. access_log off;
  8. allow 127.0.0.1;
  9. deny all;
  10. }
  11. nginx -s reload 重新加载nginx

nginx状态解释

Active connections Nginx正处理的活动链接数个数;
重要 server Nginx启动到现在共处理了多少个连接。
accepts Nginx启动到现在共成功创建几次握手。
handled requests Nginx总共处理了几次请求。
Reading Nginx读取到客户端的 Header 信息数。
Writing Nginx返回给客户端的 Header 信息数。
Waiting Nginx已经处理完正在等候下一次请求指令的驻留链接,开启。 Keep-alive的情况下,Waiting这个值等于active-(reading + writing)。 请求丢失数=(握手数-连接数)可以看出,本次状态显示没有丢失请求。

修改agent2端的配置文件 监控nginx状态配置

  1. [root@jumpserver ~]# cat /etc/zabbix/zabbix_agent2.d/nginx_monitor.conf
  2. UserParameter=nginx_status[*],/bin/bash /etc/zabbix/zabbix_agent2.d/nginx_monitor.sh "$1"

获取nginx状态的shell脚本

  1. [root@jumpserver zabbix_agent2.d]# pwd
  2. /etc/zabbix/zabbix_agent2.d
  3. [root@jumpserver zabbix_agent2.d]# cat nginx_monitor.sh
  4. NGINX_PORT=80
  5. NGINX_COMMAND=$1
  6. nginx_active(){
  7. /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Active/ {print $NF}'
  8. }
  9. nginx_reading(){
  10. /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Reading/ {print $2}'
  11. }
  12. nginx_writing(){
  13. /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Writing/ {print $4}'
  14. }
  15. nginx_waiting(){
  16. /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Waiting/ {print $6}'
  17. }
  18. nginx_accepts(){
  19. /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $1}'
  20. }
  21. nginx_handled(){
  22. /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $2}'
  23. }
  24. nginx_requests(){
  25. /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $3}'
  26. }
  27. case $NGINX_COMMAND in
  28. active)
  29. nginx_active;
  30. ;;
  31. reading)
  32. nginx_reading;
  33. ;;
  34. writing)
  35. nginx_writing;
  36. ;;
  37. waiting)
  38. nginx_waiting;
  39. ;;
  40. accepts)
  41. nginx_accepts;
  42. ;;
  43. handled)
  44. nginx_handled;
  45. ;;
  46. requests)
  47. nginx_requests;
  48. ;;
  49. *)
  50. echo $"USAGE:$0 {active|reading|writing|waiting|accepts|handled|requests}"
  51. esac

给脚本添加执行权限

  1. chmod +x nginx_monitor.sh 给文件提权
  2. systemctl restart zabbix-agent2 重启agent2服务

服务器端配置 server

思路:定义模板—->定义应用集—->定义监控项——>定义图形—->定义触发器——>添加主机或主机关联这个模板

Server端验证是否能获取agent2端的key值

  1. [root@zabbix ~]# zabbix_get -s '192.168.10.26' -k nginx_status[active]
  2. 1
  3. [root@zabbix ~]#

键值

  1. nginx_status[active]
  2. nginx_status[reading]
  3. nginx_status[writing]
  4. nginx_status[waiting]
  5. nginx_status[accepts]
  6. nginx_status[handled]
  7. nginx_status[requests]

zabbix Web端添加主机模板

先把这个angent2主机添加进去 关联好模板文件 Template OS Linux by Zabbix agentimage.png
添加完主机以后 可用性zbx应是绿色
下面开始配置模板文件
image.png
配置应用集image.png
创建监控项
image.png
创建触发器
image.png
创建图形
image.png
在浏览器中打开多个网页测试即可
image.png