Linux向けのリソース監視ツール「Munin」では、標準でCPU利用率、ディスク使用率、メモリ使用量、ネットワーク通信量等のリソースの監視しかできませんが、プラグインを利用することで、さまざまなリソースの監視が可能になります。
ここでは、その中の一例としてNginxとMariaDBを監視する方法を紹介します。
Muninを利用した基本的な監視環境の構築方法については、以下の記事をご覧ください。
目次
Nginxプラグインの追加
Nginxプラグインを利用すれば「接続数」や「リクエスト数」を監視することができます。
なお、エージェントソフト(Munin-node)のインストールや基本の設定は済んでいることを前提とします。
ここからは、監視対象マシン上での作業です。
Munin-nodeの設定
まず、プラグインファイルのシンボリックリンクを配置します。
# ln -s /usr/share/munin/plugins/nginx_status /etc/munin/plugins/nginx_status
# ln -s /usr/share/munin/plugins/nginx_request /etc/munin/plugins/nginx_request
Nginxの設定
次に、監視用のNginx設定ファイルを作成します。
# vi /etc/nginx/conf.d/munin.conf
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;
}
}
Nginxの「Stub Status」モジュールは、バーチャルホストごとのステータスではなく、Nginx全体のステータスを確認できるモジュールです。
サービスの再起動
設定が完了したら、Munin-nodeとNginxのサービスを再起動します。
# systemctl restart nginx
# systemctl restart munin-node
動作確認
サービスを再起動したら、監視対象サーバー上で以下のコマンドを実行して、監視項目の値が取得できているか確認します。
# munin-run nginx_status
total.value 1
reading.value 0
writing.value 1
waiting.value 0
# munin-run nginx_request
request.value 121
値が取得できていない場合は、次のように値の部分が「U」と表示されるので、設定回りなどを見直します。
total.value U
reading.value U
writing.value U
waiting.value U
Webインターフェースでの確認
MuninのWebインターフェースにアクセスして、監視対象マシンの監視項目に「webserver」が追加されており、クリックするとグラフが表示されていればOKです。
MariaDBプラグインの追加
MariaDBプラグインを利用すると「出力バイト数」「クエリ発行数」「スレッド数」「スロークエリ数」などを監視できるようになります。
ここでは、CentOS 7+MariaDBなサーバーのMariaDBを監視するための設定を紹介します。
なお、エージェントソフト(Munin-node)のインストールや基本の設定は済んでいることを前提とします。
ここからは、監視対象マシン上での作業です。
Munin-nodeの設定
まず、Munin-nodeの設定ファイルを追加します。
# vi /etc/munin/plugin-conf.d/mariadb
[mysql*]
env.mysqlopts -u root --password=<rootのパスワード>
env.mysqladmin /usr/bin/mysqladmin
次に、プラグインファイルのシンボリックリンクを配置します。
# ln -s /usr/share/munin/plugins/mysql_bytes /etc/munin/plugins/mysql_bytes
# ln -s /usr/share/munin/plugins/mysql_innodb /etc/munin/plugins/mysql_innodb
# ln -s /usr/share/munin/plugins/mysql_queries /etc/munin/plugins/mysql_queries
# ln -s /usr/share/munin/plugins/mysql_slowqueries /etc/munin/plugins/mysql_slowqueries
# ln -s /usr/share/munin/plugins/mysql_threads /etc/munin/plugins/mysql_threads
MariaDBの設定
スロークエリ(実行に時間がかかっているクエリ)を記録するよう設定して、Muninでスロークエリの頻度を確認できるようにします。
なお、ここでは、遅いクエリかどうかのしきい値を1秒(long_query_time=1)に設定していますが、設定値は環境により適宜調整してください。
# vi /etc/my.cnf.d/server.cnf
[mariadb]セクションに以下を追加します。
slow_query_log=1
slow_query_log_file=/var/log/mysql-slow.log
long_query_time=1
なお、上で指定したログファイル「/var/log/mysql-slow.log」は、権限を含めて事前に作成しておきます。
# touch /var/log/mysql-slow.log
# chown mysql:mysql /var/log/mysql-slow.log
サービスの再起動
設定が完了したら、サービスを再起動して設定を反映させます。
# systemctl restart mariadb
# systemctl restart munin-node
動作確認
サービスを再起動したら、監視対象サーバー上で以下のコマンドを実行して、監視項目の値が取得できているか確認します。
# munin-run mysql_bytes
recv.value 396628
sent.value 7792870
# munin-run mysql_queries
delete.value 17
insert.value 16
replace.value 0
select.value 1420
update.value 59
cache_hits.value 953
# munin-run mysql_slowqueries
queries.value 0
# munin-run mysql_threads
threads.value 8
Webインターフェースでの確認
MuninのWebインターフェースにアクセスして、監視対象マシンの監視項目に「mysql」が追加されており、クリックするとグラフが表示されていればOKです。
不要な監視項目を削除する
「Munin」では、監視項目をプラグインとして実装しており、使用中のプラグインは、監視対象サーバーの「etc/munin/plugins」にシンボリックリンクとして配置されています。
不要な監視項目がある場合は、対象のシンボリックリンクを削除することで、必要な監視項目だけを監視することができます。
# unlink /etc/munin/plugins/entropy
不要な監視項目は削除しておいたほうが、監視サーバーの負荷も軽くなりますよ。
あとがき
「Munin」は、他の監視ツールに比べると機能も少なく、きめ細かな設定もあまりできませんが、カンタンに導入でき、Webインターフェースもシンプルなので、監視環境をサクッと作りたい場合に重宝します。