純規の暇人趣味ブログ

首を突っ込んで足を洗う

[比較]ZabbixとMunin、私に適しているのはどっち?

      HimaJyun

きょうびこの時代、監視されていないサーバなんてないでしょう。(監視されていないサーバはサーバとは言わない論)

監視ソフトウェアにもZabbix、Munin、Cacti、Nagios、Hinemosと色々あります。(他にもはてなが提供するMackerelなど)

というわけで、私が使ったことのある「Zabbix」と「Munin」でどちらがどう優れているかを比較してみようと思います。

先に言い訳しておくと、私は両方使った事がありますし「どっち派」というわけではないです。

今はZabbixを使っていますがMuninも良かったので、意見がどちらかに偏っているということはない(と、思います。)

監視のために

先に言ってしまうと、個人的には「ハードウェアはMunin」「ソフトウェアはZabbix」が適していると考えています。

その理由を書いていきましょうか。

Zabbix

デモ:http://www.zabbix.jp/documents/demo

Zabbixの特徴は何といっても豊富な機能です。

WebGUIから監視項目の設定などができ、監視の間隔も秒単位で細かく設定出来ます。

APIの類が豊富で、「アプリケーション側から値を記録させる」といった事も可能です。(自分がZabbixに乗り換えた理由がこれ)

Muninで出来る事はほぼすべてZabbixでも出来ます。

ただ、これがかえって仇となる事もあり、殆どの機能が使われない、複雑すぎる、というのも十二分に考えられます。

また、デフォルト設定はあまり細かくないので、自分の求めるものに合わせて設定する必要があります。

もう一つ分かりづらい弱点として、「UserParameter(カスタム監視項目)で複数の値を返せない」という弱点があります。

例えばディスクI/Oを監視するとして、readとwriteを監視すると仮定しましょう、この際、readとwriteを同時に記録する事は出来ず、「readを監視」と「writeを監視」で2回スクリプトが実行されます。

これは取得処理が重い場合に大きな負荷を生んでしまいます。

一応、「zabbix_senderを利用して送信する(ためのスクリプトを監視項目として設定する)」という少々黒い方法で対応できます。

Munin

Zabbixが多機能なのに対して、Muninはひたすら監視だけに特化しています。

そのため、複雑な機能などはありませんし、Webでは最低限の閲覧だけしか出来ませんが、逆に言えば分かりやすいです。

インストールは比較的簡単で、極論を言えばaptとかで入れてしまえば動きます。

監視項目の設定は簡単、同梱されている監視項目も豊富、デフォルトで必要な物は揃っており「munin-node-configure」を実行すれば全監視項目の中から利用可能な物を自動で設定出来ます。

Zabbixにも「ローレベルディスカバリ」という名前で自動登録は存在しますが、今の所対応項目は少ないので、それに比べるとMuninの自動登録は非常に強力です。

ただ、デフォルトでは少々重いので、監視サーバが貧弱な場合にはグラフ描画をFastCGIにしたりrrdcachedを利用したりする必要があります。

勢力としてはZabbixの方が強いので、設定に関する情報が古かったり不足しがちという問題もあります。(古い情報でも割と設定は出来ますけど)

Zabbixの「カスタム監視項目で複数の値を返せない」問題はMuninにはなく、1回の実行で複数の値を登録する事が出来ます。

まとめ

つまり、「監視項目が細かいのはMunin」「柔軟な監視が出来るのはZabbix」みたいな感じになるかと思います。

例えば、物理的なマシンのリソースをMuninで監視し、その上で稼働するソフトウェアの負荷をZabbixで監視、というのが便利じゃないかと考えています。(そこまでの規模がないので試したことはありません)

ちなみにですが、両方ともRaspberry Pi3上で動かしました、4ホストを監視していましたが特に負荷に問題があったりはしません。

小規模であれば、きちんと調整する(パフォーマンス設定、USB-HDDで動かすなど)だけでRasPiで実用出来ます。

監視がまだの方は今すぐ始めましょう、面白いですよ。

 - サーバ運営 ,