Beats(PHP-FPM Module@Metricbeat) + Elasticsearch + Kibana 采集分析phpfpm status状态数据

需求

当前php-fpm进程是不是不够了,一通命令一打,也只能看当前情况。
熟话说无监控无度量就无诊断。
市面上有成熟的php-fpm status状态采集,展示工具那就是elasti stack全家桶
目标采集分析php-fpm status 状态数据

选型

Elastic公司全家桶之Beats(PHP-FPM Module@Metricbeat) + Elasticsearch + Kibana

Metricbeat 是 Beats 的一个采集组件
PHP-FPM Module 是 Metricbeat 的一个采集模块

整体的数据流方式

方式1 : Beats (Metricbeat )>Elasticsearch>Kibana
方式2: Beats (Metricbeat )>Logstash>[直连,redis队列,Kafka队列]>Elasticsearch>Kibana

先讲方式1

配置php-fpm

php-fpm.conf

[www] [u] 是独立的php-fpm pool 进程池,每个池子的pm.status_path是需要单独设置的

测试配置文件是否正确

重启php-fpm

配置nginx

phpfpm.conf

只给本地访问,这里监听的是localhost,也可用nginx allow deny的方式

测试配置文件是否正确

重启nginx

用curl测试php-fpm status状态是否可以获取

配置Metricbeat

Metricbeat Reference [5.3] » Modules » PHP-FPM Module

/etc/metricbeat/metricbeat.yml

测试配置文件是否正确

给metricbeat创建Elasticsearch的Index Template
Loading the Index Template in Elasticsearch

给metricbeat创建Kibana Dashboards
Loading Sample Kibana Dashboards

metricbeat中phpfpm模块,没有elastic官方的 Sample Kibana Dashboard
所以需要分析什么数据的自己在Kibana中自己创建visualize然后做成Dashboard

启动metricbeat

配置Kibana

Management / Kibana / Indices > Add New
Index name or pattern 填写 “metricbeat-*”
Time-field name 选 “@timestamp”
Alt text

分享我做的 metricbeat phpfpm kibana dashboard (不完整)
export.json

补充logstash采集数据(方式2)

配置Metricbeat

/etc/metricbeat/metricbeat.yml

output输出到logstash的input tcp 5044上
input输入参考上面方式1 Metricbeat 的配置方法

配置logstash2.x

Logstash Reference [2.4] » Input plugins » beats

/etc/logstash/conf.d/beats.conf

input输入tcp 5044 监听本机
output输出,根据自己环境来

测试配置文件是否正确

启动logstash

提示

  • 使用测试配置文件的功能测试配置文件是否书写正确
  • 使用tail -f 日志的方式查错
  • 注意tcp监听的安全问题,别暴露到公网IP上
打赏

发表评论

电子邮件地址不会被公开。 必填项已用*标注