Muninで監視項目にしきい値を設定したりメール通知する方法

Muninで監視項目にしきい値を設定したりメール通知する方法

Linuxで小規模サーバー環境のリソース監視するのにおすすめの監視ツール「Munin」では、監視項目にしきい値を設定して、しきい値を上回った(下回った)ときに警告したり、メールで通知したりできます。

ここでは、Muninで監視項目にしきい値を設定する方法と、しきい値を上回った(下回った)ときに電子メール通知する方法を紹介します。

この記事は、以下の環境での動作結果を基にしています。他のディストリビューションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
CentOS(Minimal)7.6.1810
Munin2.0.45

しきい値を設定する

監視項目にしきい値を設定すると「Warning」や「Critical」といった警告レベルを設定でき、Webインターフェース上で通知したり、電子メールで通知することができます。

なお、プラグインの中には、デフォルトでしきい値が設定されている場合があります。たとえば「df」プラグインの場合では、デフォルトで「waring」のしきい値が92%、「critical」のしきい値が98%に設定されています。

# munin-run df config | grep "warning\|critical"

_dev_mapper_centos00_root.warning 92
_dev_mapper_centos00_root.critical 98
_dev_shm.warning 92
_dev_shm.critical 98
_run.warning 92
_run.critical 98
_dev_sda2.warning 92
_dev_sda2.critical 98
_dev_sda1.warning 92
_dev_sda1.critical 98

設定方法

しきい値は、監視サーバの設定ファイルの、監視対象マシンの情報を記述しているセクション内に、次の書式で記述します。

プラグイン名.監視項目名.警告レベル(warning または critical) 閾値

たとえば、ディスク使用量の監視を行っている「df」プラグインの監視項目にしきい値を設定する場合は、次のように記述します。

# vi /etc/munin/conf.d/local.conf
[munin-node01]
address 192.168.10.171
use_node_name yes
df._dev_mapper_centos_root.warning 5
df._dev_mapper_centos_root.critical 6

上の例では、監視対象マシン「munin-node01」で「/」ディレクトリの使用量が5% を超えると「warning」、6%を超えると「critical」を通知するよう設定しています。

監視項目名の確認方法

「監視項目名」が分からないときは、監視対象マシン上で「munin-run」コマンドでプラグインを実行することで確認できます。

「df」プラグインの場合は、次のように実行すると、監視項目名を確認することができます。

# munin-run df

_dev_mapper_centos_root.value 4.74014299538861
_dev_shm.value 0
_run.value 0.872988772920069
_dev_sda2.value 15.1742788461538
_dev_sda1.value 5.55088473946622

しきい値の記述方法

しきい値には「上限値」「下限値」「範囲」を指定することができます。

しきい値記述方法
上限値:上限値(:は省略可能)
下限値下限値:
範囲指定下限値:上限値

動作確認

しきい値を設定したら、Webインターフェース画面で、しきい値設定が正常に動作しているか確認しておきましょう。

上記の設定を行ったマシンで「Critical」のしきい値を超えた場合は、以下のように表示されます。

Muninで監視項目にしきい値を設定したりメール通知する方法

以上で、しきい値設定は完了となります。

メール通知する

事前準備

Muninでメール通知する場合は「mail」コマンドを使用するため、監視サーバーに「mail」コマンドがインストールされていない場合は、事前にインストールしておきます。

# yum install mailx

「mail」コマンドをインストールしたら、通知先として設定予定のメールアドレスにメールが送信できることを確認しておきます。

# echo "test mail" | mail -s "mail test" <通知先メールアドレス>

設定方法

メール通知設定は、監視サーバーの設定ファイルに、次の書式で記述します。

contact.通知先名.command mail -s "件名" 通知先メールアドレス

  • 通知先名 - どこ宛の通知か分かるような任意の名前を設定します。
  • メールの件名 - どのサーバで発生しているアラートなのか分かるように、変数を利用して設定します。
  • 通知先メールアドレス - 送信先メールアドレスを設定します。

設定例は、次のようになります。

# vi /etc/munin/conf.d/local.conf
contact.admin.command mail -s "Munin Alert [${var:group}]:${var:host}" XXXXX@google.com

1通のメールに表示するアラート数を変更する

デフォルトでは、すべてのアラートを1通のメールにまとめて送信する設定になっていますが、まとめたくない場合は、次のように記述します。

contact.通知先名.max_messages 1通のメールに表示するアラート数

たとえば、1通のメールに表示するアラートを1つにしたいときは、設定に次のように追記します。

# mail notification global settings
contact.admin.command mail -s "Munin Alert [${var:group}]:${var:host}" XXXXX@google.com
contact.admin.max_messages 1

メール通知する警告レベルを設定する

どの警告レベルでメール通知するかを指定する場合は、次のように記述します。

contact.通知先名.always_send 警告レベル(複数の警告レベルを指定可能)

たとえば「Warning」「Critical」でメール通知する場合は、設定に次のように追記します。

# mail notification global settings
contact.admin.command mail -s "Munin Alert [${var:group}]:${var:host}" XXXXX@google.com
contact.admin.max_messages 1
contact.admin.always_send warning critical

動作確認

最後に、設定どおりにメール通知されるか確認します。

上記でしきい値設定したマシンだと、次のようなメール通知が来ます。

Muninで監視項目にしきい値を設定したりメール通知する方法

以上で、メール通知設定は完了です。

あとがき

メール通知の設定方法では、基本的な方法のみを紹介しましたが、複数の通知先を設定して、監視対象マシンごとに通知先を変更するといった設定も可能なようです。