Munin で PING 監視する

Munin マスターで次のようにプラグインのシンボリックリンクを作成します。

sudo ln -s /usr/share/munin/plugins/ping_ /etc/munin/plugins/ping_192.168.33.10

プラグインを実行してみます。

munin-run ping_192.168.33.10

パケットロスト率と応答時間が結果として得られます。

packetloss.value 0
ping.value 0.000605

なお、100% ロストすると ping.value が結果に現れませんでした。

packetloss.value 100

プラグインのコンフィグ確認します。

munin-run ping_192.168.33.10 config

次のように結果が得られます。

graph_title IPv4 ping times to 192.168.33.10
graph_args --base 1000 -l 0
graph_vlabel roundtrip time (seconds)
graph_category network
graph_info This graph shows ping RTT statistics.
ping.label 192.168.33.10
ping.info Ping RTT statistics for 192.168.33.10.
packetloss.label packet loss
packetloss.graph no

パケットロスト率はグラフ無しのようです。また、hostname が含まれていないため、このままだと Munin マスターの localhost への監視として表示されてしまうので、プラグインのコンフィグ(/etc/munin/plugin-conf.d/)で次のようにホスト名を指定します。

[ping_192.168.33.10]
host_name web-ping
env.ping_args -c 3 -w 5
env.packetloss_critical 50

さらに、マスターの設定(/etc/munin/conf.d/)で、↑で指定したホストの設定を追加します。

# 内部監視
[example;web]
address 192.168.33.10
use_node_name yes

# 外形監視
[example;web-ping]
address 127.0.0.1
use_node_name no

このとき、もともと設定している内部監視のホスト名(↑の例では web)とは異なる名前にする必要があります。

munin-node をリスタートして反映します。

sudo systemctl restart munin-node.service

これで PING 監視も行われるようになりますが、内部監視と外形監視を別々のホストとして設定しているので Munin の画面上でも別々にされてしまいます。

01.png

あるいは、次のようにグラフ無しにしてしまう?

[example;web-ping]
address 127.0.0.1
use_node_name no
graph no

が、これだと Web 画面から直近の結果すら確認できないし、アラートが発生しても Problems のところに何も表示されなくて不便です。


なんとなく、これまで Nagios で 1 つのホストに対して外形監視と内部監視をまとめて設定するようにしてきたので(check_nrpecheck_pingcheck_http が 1 つのホストの設定に混在)、Munin で別々のホストとして表示されてしまうことに違和感があるのですが・・・むしろ外形監視は特定のホストには紐つかないものとして、例えば external のような仮のホストへの監視、みたいにすると良いのでしょうか。

設定ファイル的には次のような感じ。

/etc/munin/plugin-conf.d/

[ping_192.168.33.*]
host_name external
env.ping_args -c 3 -w 5
env.packetloss_critical 50

/etc/munin/conf.d/

[example;external]
address 127.0.0.1
use_node_name no

画面的には次のような感じ。

02.png

あるいは、そもそも Munin で PING 監視とかはせずに Nagios とかと併用するのが良いような気もする。