1. TOPTOP
  2. インフラ

MuninでCentOS7のサーバーを監視する~監視対象サーバーで監視項目(Apache2.4,MySQL5.6)の追加

|

wp_sakura_vps_monitor_1_0

MuninでCentOS7のサーバーを監視する~監視対象サーバーの設定

この記事で監視サーバーが監視対象サーバーと接続して、サーバー自体のリソースを監視する方法を紹介しました。今回の記事では監視サーバーが監視対象サーバーのミドルウェア(Apache2.4とMySQL5.6)を監視するための設定方法をご紹介します。

監視項目の追加(Apache2.4)

監視対象サーバーが動作しているかどうか確認した上で、Apacheを監視項目として追加します。

監視対象サーバーの動作確認

# munin-run load
load.value 0.03

まず監視対象サーバーにおいてMuninが動作しているか確認しましょう。試しにmunin-runコマンドを使いロードアベレージを取得します。コマンドを実行して何らかの数値が表示されていれば、監視対象サーバーの中で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

/usr/share以下から利用したApache監視用のプラグインをMuninのプラグインディレクトリにおいて、シンボリックリンクを貼ります。

設定ファイルの作成と記述

# 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>

Apacheの中にある設定用ディレクトリの中で、新たにstatus.confを作成しmunin用の設定を書き込みます。

監視対象サーバーにおける監視動作の確認

# 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コマンドを使って、監視対象サーバーにおいてApacheが監視項目として設定されているかどうか確認します。それぞれコマンドを実行し、何らかの数字が表示されれば設定が成功していることになります。

ブラウザ上で監視サーバーの確認

munin_monitored_server_apache_mysql

最後にブラウザで設定が反映されているかどう確認します。設定後に5分ほど経過すると、監視サーバーのホーム画面で監視対象サーバーのApacheが監視項目として追加されていることが分かります。

監視項目の追加(MySQL5.6)

MySQLの監視についてもApacheを監視項目として追加するときと似ています。ですがMySQLを監視項目として追加するときは、がボトルネックとなっているときのログを別途作成する必要があります

Munin専用の作業用ユーザーの作成

# mysql -uroot -pYOURROOTPASSWORD
mysql> create user yourusername@localhost identified by 'YOURUSERPASSWORD';
mysql> grant all on *.* to yourusername@localhost;

監視サーバーが監視対象サーバーのMySQLにインストールできるように、MySQLにrootでログインしてMunin専用の作業用ユーザーを作成します。

シンボリックリンクの作成

# ln -s /usr/share/munin/plugins/mysql_bytes /etc/munin/plugins/
# ln -s /usr/share/munin/plugins/mysql_queries /etc/munin/plugins/
# ln -s /usr/share/munin/plugins/mysql_slowqueries /etc/munin/plugins/
# ln -s /usr/share/munin/plugins/mysql_threads /etc/munin/plugins/

/usr/share以下から利用したMySQL監視用のプラグインをMuninのプラグインディレクトリにおいて、シンボリックリンクを貼ります。

Muninにおける設定ファイルの追記

# vi /etc/munin/plugin-conf.d/munin-node
[mysql*]
env.mysqlopts -uyourusername -pYOURUSERPASSWORD -h localhost --port=3306

MuninがMySQLにアクセスするための情報を、Muninの設定ファイルに追加します。

my.cnfにスロークエリログ出力の設定

# vi /etc/my.cnf
slow_query_log=1
slow_query_log_file=/var/log/mysql-slow.log
long_query_time=10

スロークエリを監視するためにmy.cnf(MySQLの設定ファイル)にログ出力の設定をします。スロークエリログ (Slow query log) は、MySQLで出力できるログの種類の1つです。 任意で指定した時間よりもかかってしまったクエリ文を全て出力することができます。

ログファイルのユーザー名とグループ名を編集

# touch /var/log/mysql-slow.log
# chown mysql:mysql /var/log/mysql-slow.log

MySQLがスロークエリのログファイルを書き込みができるように、ユーザー名とグリープ名を”mysql”とします

各サービスの再起動

# systemctl restart mysqld.service
# systemctl restart munin-node.service

これまでの作業で行ったMuninとMySQLの設定変更を反映させるために、各サービスの再起動を行います。

監視対象サーバーにおける監視動作の確認

# munin-run mysql_bytes
recv.value 424
sent.value 256
# munin-run mysql_queries
Warning: Using a password on the command line interface can be insecure.
delete.value 0
insert.value 0
replace.value 0
select.value 0
update.value 0
cache_hits.value 0
# munin-run mysql_slowqueries
queries.value 0
# munin-run mysql_threads
threads.value 1

munin-runコマンドを使って、監視対象サーバーにおいてMySQLが監視項目として設定されているかどうか確認します。それぞれコマンドを実行し、何らかの数字が表示されれば設定が成功していることになります。

ブラウザ上で監視サーバーの確認

最後にブラウザで設定が反映されているかどう確認します。設定後に5分ほど経過すると、監視サーバーのホーム画面で監視対象サーバーのApacheが監視項目として追加されていることが分かります。