前回はMuninのプラグインを使ってnginxの監視項目を追加しました。
今回はその続きとしてさらに監視項目を増やします。Muninでnginx関連で監視できる項目については前回を参照してください。
準備
今回紹介するプラグインではnginx_statusというNginxのステータス情報を使います。
まずこのステータス情報を取得できるようにします。
次の内容のファイルをlocalhostと言う名前で/etc/nginx/site-availableに作成します。
server { listen 127.0.0.1; server_name localhost; location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; } }
用意できたらこの設定を有効化します。
sudo ln -s /etc/nginx/sites-available/localhost /etc/nginx/sites-enabled/ sudo service nginx restart
動作確認をして見ます。nginxが動いているサーバにログインしてhttp://localhost/nginx_statusというURLのデータを取得できればOKです。
wget http://localhost/nginx_status
--2014-01-26 14:51:26-- http://localhost/nginx_status localhost をDNSに問いあわせています... 127.0.0.1 localhost|127.0.0.1|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 109 `nginx_status.1' に保存中 100%[======================================>] 109 --.-K/s 時間 0s 2014-01-26 14:51:26 (12.4 MB/s) - `nginx_status' へ保存完了 [109/109]
cat nginx_status
Active connections: 4 server accepts handled requests 13209 13209 26569 Reading: 0 Writing: 1 Waiting: 3
これで準備完了です。
nginx-combinedプラグイン
このプラグインは上記のnginx_statusの設定ができていればすぐに使用できます。まずシンボリックリンクを作成してこのプラグインを有効にします。
cd /etc/munin/plugins sudo ln -s /usr/local/share/munin/contrib/plugins/nginx/nginx-combined .
muninを再起動します。
/etc/init.d/munin-node restart
これで次のような情報が表示されるようになります。
nginx_connection_requestプラグイン
このプラグインもnginx_statusの設定が完了していれば簡単です。シンボリックリンクを作成してこのプラグインを有効にします。
cd /etc/munin/plugins sudo ln -s /usr/local/share/munin/contrib/plugins/nginx/nginx_connection_request .
そして/etc/munin/plugin-conf.dのmunin-nodeに次の内容を記載します。
[nginx*] env.url http://localhost/nginx_status env.ua nginx-status-verifier/0.1
念のためmuninを再起動します。
sudo /etc/init.d/munin-node restart
これで次のような情報が表示されるようになります。
なんか急激に接続数が上がっていますが、自分がWordpressのダッシュボードにアクセスしたのが理由のようです。
nginx_errorプラグイン
このプラグインを使用するにはnginxの設定が必要です。nginxで監視したいサイトの設定のaccess_logをcombinedに設定します。
これには/etc/nginx/site-availableのファイルに次のような行を付け加えます。
access_log /var/log/nginx/サイト名-access.log combined;
nginxを再起動し、このログファイルにリードパーミッションをつけます。
sudo service nginx restart sudo chmod +r /var/log/nginx/サイト名-access.log
プラグインファイルに実行権限をつけたあと、シンボリックリンクを作成します。
sudo chmod +x /usr/local/share/munin/contrib/plugins/nginx/nginx_error cd /etc/munin/plugins sudo ln -s /usr/local/share/munin/contrib/plugins/nginx/nginx_error nginx_error_サイト名
/etc/munin/plugin-conf.dのmunin-nodeに次を追記します。
[nginx_error] env.logpath /var/log/nginx env.logpattern *-access.log
あとはmuninを再起動すれば完了です。
sudo /etc/init.d/munin-node restart
表示される情報は次のように一つのグラフに複数のエラーの発生頻度が表示されます。
短期的なグラフですよくわかりませんが、より長期間のグラフを見るとエラー発生の傾向がつかめる場合があります。このサイトの場合は「404 Not Found」エラーが増加傾向にありました。古いページ内から参照しているリンクが切れているようです。
nginx_memoryプラグイン
このプラグインには特に設定はいりません。プラグインを有効にするだけです。
cd /etc/munin/plugins sudo ln -s /usr/local/share/munin/contrib/plugins/nginx/nginx_memory . sudo /etc/init.d/munin-node restart
表示されるグラフは次のようになります。
このサイトでは特に消費メモリの増減はないようです。
nginx_working_setプラグイン
このプラグインは設定が非常に簡単です。シンボリックリンクを作成してmuninを再起動させるだけです。
sudo ln -s /usr/local/share/munin/contrib/plugins/nginx/nginx_working_set /etc/munin/plugins/ sudo /etc/init.d/munin-node restart
その他のプラグイン
githubにはそのほかに、nginx_upstream・nginx_upstream_multi・nginx_vhost_trafficというプラグインがありますが、うまく設定できなかったので、今回の紹介からは省きます。
まとめ
今回はMuninにnginx用のプラグインを4つ導入して監視項目を増やしてみました。
これらのデータがWebサイトの安定性向上にどれくらい有効かはわかりませんが、動作状態を確認できるというのは便利なものです。
次回はmuninを使ったmysqlの監視について紹介したいと思います。
コメント