今回の記事では、Muninでサーバーを監視する方法についてご紹介しましょう。現在、当エコテキブログは「さくらのVPS」で、685円/月のプランを使っています。そろそろ上位のプランに変えようと思っていますが、スペックオーバーな上位のプランに変更するつもりはありません。
従ってまずCPU使用率・Disk使用率・メモリ使用量などにどれぐらいの負荷がかかっているかどうか、実際の数値を計測したのちにプランの移行をしたいと考えています。
- 「Muninでかんたんサーバー監視」~初心者でもよくわかる!VPSによるWebサーバー運用講座(3) | さくらのナレッジ
- Munin を触ってみた – ngyukiの日記
- mod_status – Apache HTTP Server Version 2.4
なお、今回の記事を書くに当たって上記の3つの記事を参考にさせていただきました。
監視サーバーと監視対象のサーバーについて
そもそも今回のお話では、2つのサーバーが登場します。監視サーバーと監視対象サーバーです。
監視サーバー(エコテキブログを監視) → 監視対象サーバー(監視サーバーに監視されるエコテキブログ)
話を簡単にするため監視サーバーには、WebサーバーとMuninしかインストールしません。監視対象サーバーは当エコテキブログです。もちろん監視サーバーと監視対象サーバーのIPアドレスは異なります。
監視サーバーにMuninをインストール
監視サーバーに監視アプリケーションのMuninをインストールをして必要な設定を行います。
Muninのインストール
# yum -y install epel-release # yum -y install munin
Muninはepelを使ってインストールします。ただ自分の場合、epelについてはデフォルトでインストールされていました。使うサーバーによっては、epelのインストールは不要かもしれません。
Basic認証によるパスワード設定
# htpasswd -m /etc/munin/munin-htpasswd yourusename password: (yourpassword)
監視サーバーにMuninをインストールすると、監視対象サーバーの負荷状況が表示されます。ただあまり他人に見せるようなものではないので、Basic認証をかけて簡単には見られないようにします。
監視対象のノードを記述
# vi /etc/munin/conf.d/munin.conf [yourservername;example.com] address 153.×××.×××.×× use_node_name yes
Muninの設定ファイルにおいて監視対象サーバーの情報を記述します。”yourservername”には任意の名前を、”example.com”にはサーバーのドメインまたはIPアドレスを記述します。なお今回の記事では監視対象サーバーではなく、監視サーバー自身を監視する方法を紹介していますので、監視サーバーの情報を入力しています。
監視エージェントの起動
# systemctl enable munin-node Created symlink from /etc/systemd/system/multi-user.target.wants/munin-node.service to /usr/lib/systemd/system/munin-node.service. # systemctl start munin-node # systemctl status munin-node ● munin-node.service - Munin Node Server. Loaded: loaded (/usr/lib/systemd/system/munin-node.service; enabled; vendor preset: disabled) Active: active (running)
監視エージェントである”munin-node”を起動させ、稼働状況を確認します。”systemctl status munin-node”を実行して、”Active: active (running)”が表示されていれば、監視ができるようになります。
Muninのインストール確認
監視エージェントを起動させた後、数分後にブラウザで”http://153.×××.×××.××/munin/”と入力するしアクセスします。すると上記の画像のようにMuninのトップ画面が表示されます。
ちなみにデフォルトの画面で表示されている”disk”をクリックすると、監視サーバー自身のリソース使用状況を確認することができます。
Apacheを監視項目として追加
次に監視サーバーにインストールしているApache(Webサーバー)を監視項目として設定します。
Muninプラグインを有効化
# ln -s /usr/share/munin/plugins/apache_accesses /etc/munin/plugins/apache_accesses # ln -s /usr/share/munin/plugins/apache_processes /etc/munin/plugins/apache_processes # ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins/apache_volume
まずApacheに関するMuninプラグインを有効化します。”ln -s”コマンドはシンボリックリンクを作成するという意味です。
sever-statusの有効化
# cd /etc/httpd/conf.d/ # vi status.conf <IfModule mod_status.c> ExtendedStatus On <Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from 127.0.0.1 </Location> </IfModule>
server-statusとはサーバの統計情報をHTMLで確認することができる機能のことを指します。この作業はApacheの設定ファイルにおいて、Apacheの稼働状況を視覚的に管理するために行なっています。
Apacheと監視エージェントの再稼働
# systemctl restart httpd # systemctl restart munin-node
/etc/httpd/conf.d/status.confへの記述でもって設定が完了しました。Apacheと監視エージェントのmunin-nodeを再起動します。
Apache監視項目の確認
# munin-run apache_accesses accesses80.value 0 # munin-run apache_processes busy80.value 1 idle80.value 4 free80.value 251 # munin-run apache_volume volume80.value 1024
“munin-run”コマンドを使いMuninのプラグインによって、Apacheの監視項目が適切に設定されているかどうか確認します。各コマンドを実行し何らかの数字が表示されていれば、監視項目が適切に設定されていることになります。
数字の箇所が”U”という文字で表示されていれば、Apacheからステータス情報を正しく取れていませんので、設定を再度見なおしてください。
ブラウザ上での確認
再度、MuninをインストールしたIPアドレスを使ってブラウザで確認すると、トップ画面には”Apache”という監視項目が追加されています。Webサーバーへのアクセス、プロセス(プログラムの処理状況)を視覚的に確認することができます。
ExtendedStatusについて
冒頭で紹介したさくらのナレッジでは、Apacheを監視項目として追加するときに、Apacheの設定ファイルで”ExtendedStatus”を”On”とする記述があります。ただ自分がCentOS7, Apache2.4の環境でApacheの設定ファイルを確認すると、そもそも”# ExtendedStatus On”という記述がありませんでした。
従って「ExtendedStatus Onをコメントアウトから外す」という作業は、今回の記事で紹介した同じ環境下(Centos7, Apache2.4)で作業する人にとって不要であると考えられます。