考虑将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

スクリーンショット 2018-05-02 17.50.28.png

※基于自己的环境,以下是不足之处,所以我使用 “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的部分转为注释来处理。
(可能有更好的导出器可用)

スクリーンショット 2018-05-02 17.53.44.png

取值

现在可以获取nginx和php-fpm的值,
所以可以在prometheus中获取并在grafana中进行可视化呈现。

首先,使用netstat命令来确认监听端口。
由于已经启动了nginx、php-fpm以及node-exporter,因此需要确认node-exporter的运行情况。

スクリーンショット 2018-05-02 17.55.56.png

然后,我在prometheus.yml的scrape_configs中添加了配置。


  - job_name: 'test_front1'
    static_configs:
      - targets: ['対象サーバのIP:9100']
      - targets: ['対象サーバのIP:9113']
      - targets: ['対象サーバのIP:9913']

 

在浏览器端进行检查。

スクリーンショット 2018-05-02 17.58.01.png

你可以通过菜单中“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获取数据库等信息并在仪表板上显示的流程应该是不变的,
所以应该可以应用到其他情况。

广告
将在 10 秒后关闭
bannerAds