1. TOP
  2. インフラ
  3. MuninでCentOS7のサーバーを監視する~監視サーバーの作成と監視項目(Apache2.4)の追加

MuninでCentOS7のサーバーを監視する~監視サーバーの作成と監視項目(Apache2.4)の追加

wp_sakura_vps_monitor_1_0

今回の記事では、Muninでサーバーを監視する方法についてご紹介しましょう。現在、当エコテキブログは「さくらのVPS」で、685円/月のプランを使っています。そろそろ上位のプランに変えようと思っていますが、スペックオーバーな上位のプランに変更するつもりはありません。

従ってまずCPU使用率・Disk使用率・メモリ使用量などにどれぐらいの負荷がかかっているかどうか、実際の数値を計測したのちにプランの移行をしたいと考えています。

なお、今回の記事を書くに当たって上記の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のインストール確認

munin_monitor_server_1

監視エージェントを起動させた後、数分後にブラウザで”http://153.×××.×××.××/munin/”と入力するしアクセスします。すると上記の画像のようにMuninのトップ画面が表示されます。

munin_monitor_server_2

ちなみにデフォルトの画面で表示されている”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_monitor_server_3

再度、MuninをインストールしたIPアドレスを使ってブラウザで確認すると、トップ画面には”Apache”という監視項目が追加されています。Webサーバーへのアクセス、プロセス(プログラムの処理状況)を視覚的に確認することができます。

ExtendedStatusについて

冒頭で紹介したさくらのナレッジでは、Apacheを監視項目として追加するときに、Apacheの設定ファイルで”ExtendedStatus”を”On”とする記述があります。ただ自分がCentOS7, Apache2.4の環境でApacheの設定ファイルを確認すると、そもそも”# ExtendedStatus On”という記述がありませんでした。

従って「ExtendedStatus Onをコメントアウトから外す」という作業は、今回の記事で紹介した同じ環境下(Centos7, Apache2.4)で作業する人にとって不要であると考えられます。