muninを使ったサーバ監視+Apacheの追加監視とWordPressの共存

安定したサーバの運用には、サーバの監視が欠かせません。とはいうものの、24時間サーバの様子を見続けることなど不可能なので、弊社では「munin」「awsの管理画面」「pingdom」の3つを使ってサーバの監視を行っています。

  • munin – サーバやネットワークの監視ツール。オープンソースである。
  • awsの管理画面 – 様々なリソースの状況を確認できる。
  • pingdom – 世界各地のデータセンタから死活確認をするサービス。

本記事ではmuninを使ってApacheを監視する方法、および、Wordpress等を運用している場合に発生する注意事項を紹介します。

前提条件

本記事は以下の環境にて動作確認を行っております。

  • Amazon Web Services の AmazonLinuxで、Apache2.4をインストール済

Muninのインストール

Muninは以下の手順でインストールできます。

これで5分程度経過すると、/munin/にサーバの監視結果が表示されます。

監視結果が存在しない場合は以下のような画面が表示されます。(ディレクトリインデックス(=ディレクトリ内のファイル一覧表示)を許可している場合のみ)

監視結果が生成されると以下のような画面が表示されます。

これでmuninを使えるようになりましたが、先程設定したパスワードが無視され、誰でも監視結果が見える状態になっています。これはセキュリティー上の問題があります。(攻撃者に弱点がバレてしまいます)

Apacheの再起動

Apacheを再起動するとMuninのログイン制限が有効化されます。これでmuninを使った基本的なサーバ監視の基本的な設定は完了です。

監視項目の追加

基本的なセットアップだけでも、サーバのかなり詳細情報が取れるようになりました。ディスク、ネットワーク、CPUなどOSレベルで気にするべき多くの項目は網羅されています。 バージョン2.0.20では、デフォルトで38の監視項目が有効化されています(1つの項目の中でも10程度の値をモニタリングしているものもあります)が、全体では232の監視項目が準備されています。 全て追加してしまえば良いように思うかもしれませんが、オススメしません。そんなことをすると、監視のための負荷が発生したり、監視結果の保存スペースが余分に必要になったり、そもそも、muninの画面に不要な項目が羅列され、目的の項目を探しづらくなってしまいます。

デフォルトで有効化されている監視項目

リンクするだけで直ぐに使える監視項目

Apacheに対する監視項目を追加

では、Apacheに関する監視項目を追加してみましょう。

以下の3ステップで設定できます。(Wordpressがなければ2ステップの場合が多い)

  • Apacheの拡張ステータス表示を有効化する
  • .htaccessが悪さをしている場合は記述を修正する(必要な場合のみ)
  • muninに監視対象を追加する

Apacheの拡張ステータス表示を有効化

/etc/httpd/conf/httpd.conf の末尾に以下の設定を追加する。/server-statusにアクセスしたとき、server-statusハンドラで処理するように指定している。また、外部からアクセスできると、セキュリティー上問題があるので、ローカルホストからのアクセスしか許可していない。

Allow from のlocalhostはmuninからのアクセスにつかう。

これで、/server-status にアクセスしてサーバステータスが取得できれば問題ない。 外部からのアクセスを許可していないので、 wget http://localhost/server-status などとして、アクセスできるか確認すること。 WordpressなどのCMSが入っている場合、それらの.htaccessが悪さをしている場合があるので修正する。

.htaccessを修正する(必要な場合のみ)

/var/www/html/.htaccessに、URLのリライト設定がされていて、その設定が悪さをしている場合がある。「RewriteCond %{REQUEST_URI} !=/server-status」を追加することで、サーバのステータス取得URLをリライト対象外とする。

muninに監視対象を追加する

シンボリックリンクを貼れば良い。以下のコピペでApacheに関する監視項目を追加できる。

シンボリックリンクを追加したあとは必ず、munin-nodeをリスタートすること。

設定がうまくいっていれば、apacheの項目が追加され、グラフが描画され始めます。

まとめ

muninを使えば手軽にサーバ監視を開始できます。今回の例ではApacheについて追加監視の指定を行いましたが、必要に応じて適切なプラグインを追加し、実用的なサーバ監視体制を構築しましょう。

Follow me!