CentOS7にインストールされているnginxをmuninで監視する方法です。
nginx設定
初期状態の「nginx」は、「munin-node」での監視に必要なステータスの情報が取得できないため、ステータスを取得できるように設定を追加する必要があります。
ステータス取得設定
「nginx」には自分の状況をレポートするための「HttpStubStatusModule」が用意されているので、それを使用できるように「stub_status on」の設定を「location」ディレクティブ内で行う必要があります。
設定するファイルは「CentOS7」であれば「/etc/nginx/nginx.conf」の「server」ディレクティブに設定を追加していけば良いでしょう
※CentOS6であれば「/etc/nginx/conf.d/default.conf」となります。
設定例
下記は「CentOS7」環境の「nginx」の設定ファイルである、「/etc/nginx/nginx.conf」に設定を行った例となります。
server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } ####### 設定追加部分 ####### location /nginx_status { stub_status on; allow ::1; allow 127.0.0.1; deny all; }
ステータスを取得するためのURLは「location」ディレクティブで指定したものとなるため、上記の例では「http://localhost/nginx_status」にアクセスすることでステータスを表示することが出来ます。
設定反映
設定の書式に間違いがないかを確認してから、「nginx」を再起動して設定を反映させます。
設定書式確認
# nginx -t
nginx再起動
# nginx -s reload
動作確認
設定の反映が完了しましたら、「nginx」のステータスが取得できるかどうかの確認を行ってください。
# wget -q -O - http://localhost/nginx_status Active connections: 1 server accepts handled requests 51 51 64 Reading: 0 Writing: 1 Waiting: 0
上記のようにステータスが取得できていれば問題ありません。
ちなみに、ここで取得できる情報は下記の内容となります。
項目名 | 説明 |
---|---|
Active connections | 現時点の接続数 |
server accepts handled requests | この項目はnginxが起動してからの総数となり、左からそれぞれ下記の接続数となります
|
Reading | リクエストヘッダーを読み込んでいる現在の接続数 |
Writing | クライアントに応答を返している現在の接続数 |
Waiting | クライアントからのリクエストを待っている状態の現在の接続数 |
munin-node設定
「nginx」のステータスを取得できるようになりましたら、今度は「munin-node」にプラグインを追加して監視を行えるようにしていきます。
nginx監視用プラグインの追加
「nginx」を監視するためのプラグインとして、下記のプラグインが用意されています。
- nginx_request
- nginx_status
プラグイン追加
「/usr/share/munin/plugins/」ディレクトリに格納されているnginx監視用プラグインへのリンクを、「/etc/munin/plugins」に作成することでプラグインが追加され監視が可能となります。
# cd /etc/munin/plugins/ # ln -s /usr/share/munin/plugins/nginx_request # ln -s /usr/share/munin/plugins/nginx_status
動作確認
プラグインの追加作業が完了しましたら、「munin-run」コマンドを使用して、実際にステータスを取得することができるかの確認を行っていきます。
nginx_request情報取得確認
# munin-run nginx_request request.value 66
nginx_status情報取得確認
# munin-run nginx_status total.value 1 reading.value 0 writing.value 1 waiting.value 0
こんな感じで、ステータス情報が取得できていれば問題ありません。
設定反映
「munin-node」を再起動して、追加したプラグインを有効化します。
CentOS7の場合
# systemctl restart munin-node
CentOS6以前の場合
# service munin-node restart
Munin動作確認
「Munin」によるデータ収集は通常5分間隔で行われているため、5分ぐらいまってからwebブラウザで「Munin」の管理画面にアクセスして「nginx」についてのグラフが表示されているか確認してみてください。
もし、そんなに待てないというのであれば、監視サーバ側で下記のコマンドを実行すると、手動で情報を取得することが出来ますので、実行してから「Munin」の管理画面にアクセスしてグラフを確認してみたください。
# su - munin --shell=/usr/bin/munin-cron
コメント