监控Nginx服务
nginx配置
增加location{}
[root@wenzi ~]#vim /etc/nginx/sites-enabled/default
server_name _; #_是通配符。服务器将响应任何域名的请求
...
location /status {
stub_status;
}
...
访问 http://IP/status 即可
zabbix配置
Nginx by HTTP:无需安装zabbix agent
Template App Nginx by Zabbix agent:需要安装zabbix agent
此次使用Nginx by HTTP
修改模板级别配置
宏-模板宏;将此处默认的nginx状态页路径从 basic_status 改为 status。
和nginx配置location /status {} 匹配的路径名字相同
为方便测试,将监控项更新间隔改为10s。生产5分钟比较合适
在部署nginx的主机上链接此模板
修改主机级别配置
在部署nginx的主机上链接此模板
配置-主机-宏-继承以及主机宏; 修改宏的值,仅对该主机生效,不影响模板原内容
更新后再次点开该主机,主机宏显示配置的nginx状态页路径status
修改监控项间隔时间为10s
更新完毕后,可查看模板Nginx by HTTP,里面nginx状态页路径依旧是默认的stub_status,间隔时间仍是1m,未受影响。
监控PHP-FPM
php-fpm配置
[root@wenzi ~]#vim /etc/php/8.1/fpm/pool.d/www.conf
listen = /run/php/php8.1-fpm.sock
pm.status_path = /php_status #zabbix系统默认监控路径/status
ping.path = /ping
nginx配置
[root@wenzi ~]#vim /etc/nginx/sites-enabled/default
location ~ \.php|/php_status|/ping {
root /data/php;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
访问 http://IP/php_status 即可
zabbix配置
将部署php-fpm的主机链接PHP-FPM by Zabbix-agent 模板
修改状态页路径,由默认的status改为php_status
监控连接状态为ESTABLISHED数量
自定义监控配置文件
[root@wenzi ~]#vim /etc/zabbix/zabbix_agentd.d/tcp.conf
UserParameter=tcp_state_est,netstat -tna | awk '/ESTABLISHED$/' | wc -l
在客户端本机测试
[root@wenzi ~]#zabbix_agentd -t tcp_state_est
tcp_state_est [t|2]
重启服务
[root@wenzi ~]#systemctl restart zabbix-agent.service
在控制端zabbix server验证
[root@wenzi ~]#zabbix_get -s 192.168.28.61 -p 10050 -k "tcp_state_est"
3
在zabbix配置自定义监控项。键值必须和自定义的键名一致。
多主机监控状态ESTABLISHED数量
自定义监控配置文件
[root@wenzi ~]#vim /etc/zabbix/zabbix_agentd.d/tcp.conf
UserParameter=tcp_state_est,netstat -tna | awk '/ESTABLISHED$/' | wc -l
UserParameter=tcp_state_time,netstat -tna | awk '/TIME_WAIT$/' | wc -l
创建自定义模板
在自定义模板里创建自定义监控项
再将模板链接到主机即可。
查看最新数据
监控TCP11种有限状态机
准备脚本
[root@wenzi ~]#cat /etc/zabbix/zabbix_agentd.d/tcp.sh
#!/bin/bash
#********************************************************************
#FileName: /etc/zabbix/zabbix_agentd.d/tcp.sh
#Version: 1.0
#Date: 2024-03-07
#Author: wenzi
#Description: This is description
#********************************************************************
state=$1
netstat -tna | awk -v st=$state '$NF ~ st' | wc -l
准备自定义key监控配置文件
[root@wenzi ~]#cat /etc/zabbix/zabbix_agentd.d/tcp.conf
UserParameter=tcp_state[*],/etc/zabbix/zabbix_agentd.d/tcp.sh $1
[root@wenzi ~]#zabbix_agentd -t tcp_state[ESTABLISHED]
tcp_state[ESTABLISHED] [t|2]
[root@wenzi ~]#zabbix_agentd -t tcp_state[LISTEN]
tcp_state[LISTEN] [t|23]
[root@wenzi ~]#zabbix_agentd -t tcp_state[TIME_WAIT]
tcp_state[TIME_WAIT] [t|12]
配置zabbix,创建新的模板,在新模板中新增监控项,通过克隆,完成11个监控项
将模板链接到该主机
若其它主机也要监控,需要将脚本/etc/zabbix/zabbix_agentd.d/tcp.sh、自定义key/etc/zabbix/zabbix_agentd.d/tcp.conf 也复制到其它主机中,再配置Zabbix。