0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Prometheusへmuninから移行を検討④ 〜移行検討 その1〜

Posted at

以下で基本的な部分は理解したと思ってます。
prometheusの設定
grafanaの設定
alertmanagerの設定

muninでは基本部分のほかにNginxやphpfpmも監視しているので、
同じような事ができるのか確認していきます。

対象追加

移行検討がフロントサーバなのでNginxとphpfpmの監視の可能なのか確認する。

nginxの設定

そもそもstatus情報が取れないと監視出来ないので、
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

そのまま実行できたので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-exporter

ただ、bugもあったので若干改修して利用しました。

  • masterリポジトリだとendpoint(URL指定)だとエラーになった。
  • go 1.10だとmain.goがエラーとなる(go.uber.org/zapが機能しない)

この時点ではmasterではなく、最新リポジトリにしてます。
また、zapを使っている箇所をコメントにして対応しました。
(もっと良いexporterがあるかもしれないです)

こちらもダウンロードしたものをそのまま実行できたので、
php-fpm-exporterディレクトリに移動して以下のようにしました。
スクリーンショット 2018-05-02 17.53.44.png

値取得

nginxとphp-fpmの値が取得できるようになったので、
prometheusで取得し、grafanaで描画してみます。

まず、netstatで待受ポートの確認です。
nginxとphp-fpmの他に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']

こんな感じです。

ブラウザ側でチェック

値が取れているかどうかをprometheusの画面(grafanaではない)で確認します。
「Execute」ボタンの横にあるプルダウンで「nginx_」や「phpfpm_」が確認出来ると思います。
スクリーンショット 2018-05-02 17.58.01.png
 ※こんな感じでphp-fpmもあることを確認しました。

メニューにあるStatusのTargetsでEndpointのStateが「UP」になっていることでも確認できます。

grafanaでダッシュボード追加

値がとれているので以下をGrafana Labからダウンロードして適用します。

  • php-fpm_rev1.json(PHP-FPM)
  • nginx-overview_rev4.json(Nginx Overview)

もっと良いダッシュボードがあるかもしれないですがこれを使わせてもらいました。

まとめ

基本的なリソース監視は「Node Exporter Full」、
あとフロント使っているミドルウェアで「Nginx Overview」や「PHP-FPM」を使いました。
多分、DBとかの情報もexporterでデータをとってdashboardで表示という流れは変わらないと思うので、
応用できると思ってます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?