Zabbix Nginx 监控
1,Nginx 配置文件开启状态监控
需要使用ngx_http_stub_status_module模块,提供对基本状态信息的访问默认情况下不构建此模块,编译安装应使用--with-http_stub_status_module配置参数启用它.采用yum和apt安装nginx 无需手动添加ngx_http_stub_status_module模块
2,测试 http_stub_status 模块的可用性
代码语言:javascript复制nginx -V 2>&1 | grep -o with-http_stub_status_module
3,Nginx 的配置
代码语言:javascript复制location = /basic_status {
stub_status;
allow 127.0.0.1;
allow ::1;
deny all;
}
Nginx 检查配置
代码语言:javascript复制nginx -t
重载nginx配置
代码语言:javascript复制systemctl reload nginx
4,访问nginx_status测试
nginx_status参数解释
active connections:当前活动客户端连接数,包括Waiting连接数。
accepts:所接受客户端连接数。
handled:已处理客户端连接数。
requests:客户端的请求数。
reading:正在读取请求标头的连接数。
writing:将响应写回客户端的连接数。
waiting:当前等待请求的空闲客户端连接数。
5,链接模板
提示:调用模板需要注意修改宏变量,默认主机为localhost ,端口为80;
6,最新数据
Zabbix PHP -FPM 监控
1,编辑php-fpm 配置文件并启用状态页面
sudo vim /etc/php/7.4/fpm/pool.d/www.conf
代码语言:javascript复制pm.status_path = /status
ping.path = /ping
验证语法是否正确
代码语言:javascript复制php-fpm7 -t
重新加载 php-fpm 服务
代码语言:javascript复制systemctl reload php-fpm
2,编辑 Nginx 配置文件末尾添加如下配置
代码语言:javascript复制location ~ ^/(status|ping)$ {
access_log off;
allow 192.168.99.185;
deny all;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
#fastcgi_pass 127.0.0.1:9000;
}
php-fpm 两种监听方式
- 监听127.0.0.1
- 监听socket
查看php-fpm监听方式
代码语言:javascript复制vim /etc/php/7.4/fpm/pool.d/www.conf
/listen = #可以找到监听方式 listen = /run/php/php7.4-fpm.sock
修改php-fpm监听方式
代码语言:javascript复制listen = /run/php/php7.4-fpm.sock 改为listen = 127.0.0.1
nginx 修改参数
代码语言:javascript复制fastcgi_pass 127.0.0.1:9000;
检查语法
代码语言:javascript复制nginx -t
重新加载 Nginx
代码语言:javascript复制systemctl reload nginx
3,访问status测试
代码语言:javascript复制 curl -L 192.168.99.185/status
php-fpm status参数解释
字段 | 含义 |
---|---|
pool | php-fpm pool的名称,大多数情况下为www |
process manager | 进程管理方式,现今大多都为dynamic,不要使用static |
start time | php-fpm上次启动的时间 |
start since | php-fpm已运行了多少秒 |
accepted conn | pool接收到的请求数 |
listen queue | 处于等待状态中的连接数,如果不为0,需要增加php-fpm进程数 |
max listen queue | php-fpm启动到现在处于等待连接的最大数量 |
listen queue len | 处于等待连接队列的套接字大小 |
idle processes | 处于空闲状态的进程数 |
active processes | 处于活动状态的进程数 |
total processess | 进程总数 |
max active process | 从php-fpm启动到现在最多有几个进程处于活动状态 |
max children reached | 当pm试图启动更多的children进程时,却达到了进程数的限制,达到一次记录一次,如果不为0,需要增加php-fpm pool进程的最大数 |
slow requests | 当启用了php-fpm slow-log功能时,如果出现php-fpm慢请求这个计数器会增加,一般不当的Mysql查询会触发这个值 |
4,链接模板
提示:调用模板需要注意修改宏变量,默认主机为localhost ,端口为80;
5,最新数据
nginx 服务cpu 利用率
格式
proc.cpu.util[<name>,<user>,<type>,<cmdline>,<mode>,<zone>]
监控项
代码语言:javascript复制proc.cpu.util[nginx]
nginx 进程数
格式
proc.num[<name>,<user>,<state>,<cmdline>,<zone>]
监控项
代码语言:javascript复制proc.num[nginx]
zabbix_get测试
简单检查
简单检查不需要 Zabbix Proxy。Zabbix Server/Proxy 负责处理简单的检查。
检查服务是否正在运行并接受 TCP 连接
格式
net.tcp.service[service,<ip>,<port>]
检查 TCP 服务的性能
格式
net.tcp.service.perf[service,<ip>,<port>]
代码语言:javascript复制zabbix_get -s 192.168.99.185 -k net.tcp.service[http,192.168.99.185,80]
1
zabbix_get -s 192.168.99.185 -k net.tcp.service.perf[http,192.168.99.185,80]
0.000187