スポンサーリンク

MuninでNginxを監視する方法

Ubuntuにインストールされた「Munin」で、「Nginx」の情報を取得してグラフとして表示させる方法です。

「Ubuntu」へ「Munin」をインストールする手順は下記ページで解説しています。

【Ubuntu】Muninでサーバのリソースを監視する方法
UbuntuにMuninを入れてサーバのリソース使用状況を監視する方法です。MuninについてMuninはサーバのリソース監視ソフトウェアで「CPU」「メモリ」「ディスク」「ネットワーク」等の情報を監視することが来ます。同様な監視システムで...

Nginxでstub_statusの有効化

「munin-node」で「Nginx」のステータスを監視できるように「stub_status」を有効化します。

Nginx設定追加

ローカルホストから「http://localhost/nginx_status」アクセスすると「Nginx」のステータスを表示できるよう、「/etc/nginx/conf.d/default.conf」に設定を追加していきます。

$ cd /etc/nginx/conf.d
$ sudo cp -p default.conf default.conf_$(date "+%Y%m%d_%H%M%S")
$ sudo vi default.conf 

赤字部分の設定を追加します。

server {
    listen       80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    location /nginx_status {
            stub_status on;
            allow ::1;
            allow 127.0.0.1;
            deny all;
        }

##### 中略 #####
}

設定の反映

「nginx -t」で設定初期に間違いが無いかを確認し、問題がなければ「Nginx」を再起動して設定を反映させます。

$ sudo nginx -t
$ sudo systemctl restart nginx

stub_statusが有効されているかの確認

「Nginx」の情報が取得できるかの確認を「curl」使って行います。

$ curl -s http://localhost/nginx_status

実際に「curl」で動作確認を行うと、下記のように情報を取得することが出来ます。

$ curl -s http://localhost/nginx_status
Active connections: 15 
server accepts handled requests
 18 18 59 
Reading: 0 Writing: 1 Waiting: 14 

取得できる情報について

取得できる情報は以下のとおりです。

  • Active connections: 現在の接続数
  • server accepts handled requests: Nginxを起動してからの総数を表示(左から以下の項目となる)
    • クライアントからの接続数
    • 処理された接続数
    • クライアントからリクエスト数
  • Reading: リクエストヘッダーを読み込んでいる数
  • Writing: クライアントへの応答数
  • Waiting: クライアントからのリクエスト待ち数

libwww-perlインストール

「munin-node」で「Nginx」の情報を取得するために「LWP::UserAgent」が必要です。

これは「libwww-perl」に含まれているのでインストールしておきます。

$ sudo apt install libwww-perl

「LWP::UserAgent」がインストールされていない場合、下記のようなエラーが発生して「munin-node」で「Nginx」のステータスを取得することが出来ません。

$ sudo munin-run nginx_request
Use of uninitialized value $LWP::VERSION in sprintf at /etc/munin/plugins/nginx_request line 107.
Can't locate object method "new" via package "LWP::UserAgent" at /etc/munin/plugins/nginx_request line 107.
Warning: the execution of 'munin-run' via 'systemd-run' returned an error. This may either be caused by a problem with the plugin to be executed or a failure of the 'systemd-run' wrapper. Details of the latter can be found via 'journalctl'.

Muninのpluginを有効化

「munin-node」で「Nginx」の情報を取得するために下記のプラグインを有効化します。

  • nginx_request
  • nginx_status

プラグインを有効化するには、「/usr/share/munin/plugins/」にある「nginx_request」と「nginx_status」へのシンボリックリンクを「/etc/munin/plugins/」に作成する必要があります。

$ cd /etc/munin/plugins/
$ sudo ln -s /usr/share/munin/plugins/nginx_request
$ sudo ln -s /usr/share/munin/plugins/nginx_status

「munin-node」を再起動して有効化したプラグインを認識させます。

$ sudo systemctl restart munin-node

munin-runによる動作確認

有効化したプラグインが正常に動作するかは、「munin-run」コマンド使用すると確認できます。

$ sudo munin-run nginx_request
$ sudo munin-run nginx_status

実際に実行して、下記のように「Nginx」から情報を取得出来たら問題ありません。

$ sudo munin-run nginx_request
request.value 2485

$ sudo munin-run nginx_status
total.value 3
reading.value 0
writing.value 2
waiting.value 1

Muninのグラフを確認

「munin-node」で「Nginx」の情報が取得できることが確認できたら、5〜10分ほど待ってからWebブラウザで「Munin」のグラフが表示されているか確認を行ってください。

グラフの表示が確認できたら作業は終了です。

コメント

タイトルとURLをコピーしました