Promethues如何监控PHP
利用php-fpm-exporter对php-fpm进行监控
- 1、php-fpm开启status接口
- 2、nginx代理php-fpm接口
- 3、使用php-fpm-exporter暴露指标给Prometheus
- 4、granfna展示
一、 php-fpm 开启status接口
需要提前安装好php,和nginx 环境
- 1、 找到php配置文件,修改配置,开启status vim /usr/local/php/etc/php-fpm.conf
...
pm.status_path = /status
ping.path = /ping
...
- 2、 配置nginx
server {
listen 9010;
allow 127.0.0.1;
deny all;
location ~ ^/(status|ping)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
- 3、检查status是否可以访问
[root@Prometheus conf]# curl http://127.0.0.1:9010/status
pool: www
process manager: dynamic
start time: 23/Feb/2020:11:54:50 +0800
start since: 10626
accepted conn: 1
listen queue: 0
max listen queue: 0
listen queue len: 128
idle processes: 14
active processes: 1
total processes: 15
max active processes: 1
max children reached: 0
slow requests: 0
二、 使用php-fpm-exporter暴露指标
- 1、下载php-fpm-exporter,并启动
wget https://github.com/bakins/php-fpm-exporter/releases/download/v0.6.1/php-fpm-exporter.linux.amd64
mkdir -p /usr/local/exporter/php-fpm/
mv php-fpm-exporter.linux.amd64 /usr/local/exporter/php-fpm/php-fpm-exporter
nohup /usr/local/exporter/php-fpm/php-fpm-exporter --addr 0.0.0.0:9190 --endpoint http://127.0.0.1:9010/status &
- 2、检查metrics是否可以访问
[root@Prometheus php-fpm]# curl 127.0.0.1:9190/metrics
# HELP phpfpm_accepted_connections_total Total number of accepted connections
# TYPE phpfpm_accepted_connections_total counter
phpfpm_accepted_connections_total 4
# HELP phpfpm_active_max_processes Maximum active process count
# TYPE phpfpm_active_max_processes counter
phpfpm_active_max_processes 1
# HELP phpfpm_listen_queue_connections Number of connections that have been initiated but not yet accepted
# TYPE phpfpm_listen_queue_connections gauge
phpfpm_listen_queue_connections 0
# HELP phpfpm_listen_queue_length_connections The length of the socket queue, dictating maximum number of pending connections
# TYPE phpfpm_listen_queue_length_connections gauge
phpfpm_listen_queue_length_connections 128
# HELP phpfpm_listen_queue_max_connections Max number of connections the listen queue has reached since FPM start
# TYPE phpfpm_listen_queue_max_connections counter
phpfpm_listen_queue_max_connections 0
# HELP phpfpm_max_children_reached_total Number of times the process limit has been reached
# TYPE phpfpm_max_children_reached_total counter
phpfpm_max_children_reached_total 0
# HELP phpfpm_processes_total process count
# TYPE phpfpm_processes_total gauge
phpfpm_processes_total{state="active"} 1
phpfpm_processes_total{state="idle"} 14
# HELP phpfpm_scrape_failures_total Number of errors while scraping php_fpm
# TYPE phpfpm_scrape_failures_total counter
phpfpm_scrape_failures_total 0
# HELP phpfpm_slow_requests_total Number of requests that exceed request_slowlog_timeout
# TYPE phpfpm_slow_requests_total counter
phpfpm_slow_requests_total 0
# HELP phpfpm_up able to contact php-fpm
# TYPE phpfpm_up gauge
phpfpm_up 1
- web 访问
三、配置promethus,采集php-fpm的数据
vim /usr/local/promethus/promethus.yml
- job_name: 'php-fpm'
static_configs:
- targets:
- 114.67.116.119:9190
四、配置granfna进行数据展示
配置导入,3901模板