考虑将Prometheus从munin迁移④ 〜迁移考虑 第1部分〜
我认为已经理解了以下内容的基本部分:
Prometheus的配置
Grafana的配置
Alertmanager的配置
由于Munin除了监视基本组件外,还监视Nginx和phpfpm,所以我们将确认是否可以执行类似的操作。
增加对象
检查是否可以监视Nginx和php-fpm,因为正在考虑迁移前端服务器。
nginx配置
因为首先我们无法获取状态信息才无法进行监视,
所以我们向nginx的配置文件中添加了以下内容。
# Server Status
location = /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
使用wget或其他类似工具从本地确认是否可以获取到”http://127.0.0.1/nginx_status”的值,如果可以获取到该值,则进行exporter的设置。
下载地址如下:
nginx_exporter
※基于自己的环境,以下是不足之处,所以我使用 “go get” 命令来获取并执行。
– 使用 “go get” 命令获取 github.com/prometheus/client_golang/prometheus。
– 使用 “go get” 命令获取 github.com/prometheus/common/log。
php-fpm的配置
由于値是通过HTTP访问获取的,因此需要更改nginx配置文件。
location = /phpfpm_status {
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
allow 127.0.0.1;
deny all;
}
就像nginx一样,我从本地检查了”http://127.0.0.1/phpfpm_status”。然后我搜索了php-fpm的exporter,找到了以下内容,我会使用它。
PHP-FPM导出器
然而,由于存在一些bug,我们进行了一些小的修复并使用了它。
-
- masterリポジトリだとendpoint(URL指定)だとエラーになった。
- go 1.10だとmain.goがエラーとなる(go.uber.org/zapが機能しない)
在这一点上,我使用的是最新的存储库,而不是主分支。
此外,我已经将使用zap的部分转为注释来处理。
(可能有更好的导出器可用)
取值
现在可以获取nginx和php-fpm的值,
所以可以在prometheus中获取并在grafana中进行可视化呈现。
首先,使用netstat命令来确认监听端口。
由于已经启动了nginx、php-fpm以及node-exporter,因此需要确认node-exporter的运行情况。
然后,我在prometheus.yml的scrape_configs中添加了配置。
- job_name: 'test_front1'
static_configs:
- targets: ['対象サーバのIP:9100']
- targets: ['対象サーバのIP:9113']
- targets: ['対象サーバのIP:9913']
在浏览器端进行检查。
你可以通过菜单中“Status”的“Targets”来确认端点的状态是否为“UP”。
通过Grafana添加仪表板
由于已经获取到了值,所以将从Grafana Lab中下载并应用以下内容。
-
- php-fpm_rev1.json(PHP-FPM)
- nginx-overview_rev4.json(Nginx Overview)
可能有更好的仪表盘可以使用,但我选择了使用这个。
总结
基本的资源监控是通过使用「Node Exporter Full」进行的,
还使用了一些用于前端的中间件,例如「Nginx Overview」和「PHP-FPM」。
我认为,类似于通过exporter获取数据库等信息并在仪表板上显示的流程应该是不变的,
所以应该可以应用到其他情况。