我们来一个不断进阶的fpm监控任务,熟悉python脚本的编写。
首先我们确定一下fpm可以怎么监控:
- fpm需要开放一个固定的地址,返回进程信息
- nginx代理此地址
- 监控进程访问nginx获取
- 汇总到ElasticSearch,可以做图看进程数变化
php-fpm.d/www.conf 的配置,取消前面默认的";"即可,重启fpm生效
pm.status_path = /status nginx配置:
server { listen 80; server_name fpm9000; root /tmp; index index.php index.html index.htm; location /status { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; include fastcgi.conf; } } nginx所在的服务器核验一下:
curl -H "host:fpm9000" localhost/status pool: www process manager: dynamic start time: 30/Mar/2019:15:27:36 +0800 start since: 493473 accepted conn: 59477 listen queue: 0 max listen queue: 129 listen queue len: 128 idle processes: 353 active processes: 1 total processes: 354 max active processes: 349 max children reached: 0 slow requests: 0 fpm监控支持json输出
curl -H "host:fpm9000" "localhost/status?json" {"pool":"www","process manager":"dynamic","start time":1553930856,"start since":493566,"accepted conn":59479,"listen queue":0,"max listen queue":129,"listen queue len":128,"idle processes":353,"active processes":1,"total processes":354,"max active processes":349,"max children reached":0,"slow requests":0} 

