1. 监控备份服务器,简单方法是监控rsync端口,如果有其他更佳方案可以说明
    方法1:监控873端口net.tcp.port[,873]
    方法2:模拟推送拉取文件

  2. 监控NFS服务器,使用监控NFS进程来判断NFS服务器正常,如果有其他更佳方案可以说明;
    方法1:端口(通过111的rpc端口获取nfs端口) net.tcp.port[,111]
    方法2:showmount -e ip|wc -l

  3. 监控MySQL服务器,简单方法监控mysql的3306端口,或者使用zabbix提供的Mysql模板,如果有其他更佳方案可以说明;
    方法1:端口(通过3306的mysql端口) net.tcp.port[,3306]
    方法2:mysql远程登录
    方法3:使用zabbix agent自带的模板及key

  4. 监控2台web服务器,简单方法监控80端口,如果有其他更佳方案可以说明;
    方法1:端口(通过80的web端口) net.tcp.port[,80]
    方法2:看网页状态码、返回内容==zabbix 自带WEB检测

  5. 监控URL地址来更精确的监控我们的网站运行正常;
    使用zabbix自带的监控Web监测 进行监控

  6. 监控反向代理服务器,PPTP服务器等你在期中架构部署的服务。

  7. 监控Nginx的7种连接状态

自定义监控

当zabbix监控不能满足需求,需要自定义监控才能解决问题。

创建key

客户端创建/etc/zabbix/zabbix_agentd.d/tcp-status.sh脚本

  1. #!/bin/bash
  2. NUM=$(ss -ant | awk 'NR>1 {++s[$1]} END {for(k in s) print k,s[k]}'|grep -w "$1"|awk '{print $2}')
  3. echo $NUM

修改客户端/etc/zabbix/zabbix_agentd.conf ,最后一行加入

  1. UserParameter=tcp.status[*],/etc/zabbix/zabbix_agentd.d/tcp-status.sh $1

重启agent服务

  1. systemctl restart zabbix-agent

Server使用item

  1. zabbix_get -s 10.211.55.5 -p 10050 -k "tcp.status[LISTEN]"
  2. zabbix_get -s 10.211.55.5 -p 10050 -k "tcp.status[ESTAB]"
  3. zabbix_get -s 10.211.55.5 -p 10050 -k "tcp.status[SYN-SENT]"
  4. zabbix_get -s 10.211.55.5 -p 10050 -k "tcp.status[SYN-RECV]"
  5. zabbix_get -s 10.211.55.5 -p 10050 -k "tcp.status[FIN-WAIT-1]"
  6. zabbix_get -s 10.211.55.5 -p 10050 -k "tcp.status[FIN-WAIT-2]"
  7. zabbix_get -s 10.211.55.5 -p 10050 -k "tcp.status[TIME-WAIT]"
  8. zabbix_get -s 10.211.55.5 -p 10050 -k "tcp.status[UNCONN]"
  9. zabbix_get -s 10.211.55.5 -p 10050 -k "tcp.status[CLOSE-WAIT]"
  10. zabbix_get -s 10.211.55.5 -p 10050 -k "tcp.status[LAST-ACK]"
  11. zabbix_get -s 10.211.55.5 -p 10050 -k "tcp.status[CLOSING]"

Zabbix Web页面

创建一个模板
应用监控 - 图1
创建应用集
应用监控 - 图2
创建监控项
应用监控 - 图3
创建多个监控项
应用监控 - 图4
触发器-tcp连接数满了
应用监控 - 图5

Nginx七种状态

/etc/nginx/conf.d/status.conf

  1. server {
  2. listen 80;
  3. server_name 127.0.0.1;
  4. location /status {
  5. stub_status on;
  6. access_log off;
  7. allow 127.0.0.1;
  8. deny all;
  9. }
  10. }

访问

  1. [root@localhost ~]# curl 127.0.0.1/status
  2. Active connections: 1
  3. server accepts handled requests
  4. 1 1 1
  5. Reading: 0 Writing: 1 Waiting: 0

客户端创建/etc/zabbix/zabbix_agentd.d/nginx-status.sh脚本

  1. #!/bin/bash
  2. url="127.0.0.1/status"
  3. case $1 in
  4. "active")
  5. curl -s $url|grep "Active"|awk '{print $3}'
  6. ;;
  7. "reading")
  8. curl -s $url|grep "Reading"|awk '{print $2}'
  9. ;;
  10. "writing")
  11. curl -s $url|grep "Writing"|awk '{print $4}'
  12. ;;
  13. "waiting")
  14. curl -s $url|grep "Waiting"|awk '{print $6}'
  15. ;;
  16. "accepts")
  17. curl -s $url|awk 'NR==3{print $1}'
  18. ;;
  19. "handled")
  20. curl -s $url|awk 'NR==3{print $2}'
  21. ;;
  22. "requests")
  23. curl -s $url|awk 'NR==3{print $3}'
  24. ;;
  25. esac

Server使用item

  1. zabbix_get -s 10.211.55.5 -p 10050 -k "tcp.status[LISTEN]"
  2. zabbix_get -s 10.211.55.5 -p 10050 -k "tcp.status[ESTAB]"
  3. zabbix_get -s 10.211.55.5 -p 10050 -k "tcp.status[SYN-SENT]"
  4. zabbix_get -s 10.211.55.5 -p 10050 -k "tcp.status[SYN-RECV]"
  5. zabbix_get -s 10.211.55.5 -p 10050 -k "tcp.status[FIN-WAIT-1]"
  6. zabbix_get -s 10.211.55.5 -p 10050 -k "tcp.status[FIN-WAIT-2]"
  7. zabbix_get -s 10.211.55.5 -p 10050 -k "tcp.status[TIME-WAIT]"
  8. zabbix_get -s 10.211.55.5 -p 10050 -k "tcp.status[UNCONN]"
  9. zabbix_get -s 10.211.55.5 -p 10050 -k "tcp.status[CLOSE-WAIT]"
  10. zabbix_get -s 10.211.55.5 -p 10050 -k "tcp.status[LAST-ACK]"
  11. zabbix_get -s 10.211.55.5 -p 10050 -k "tcp.status[CLOSING]"

PHP-FPM

MySQL主从服务


瓦雀