Cuturnの適当日記

徒然なるままに適当に駄文を吐き出しております

ZABBIXのWebUIにみんな満足してるのだろうか

業務で、というほどはたして業務なのかそれとも趣味なのかわからない領域で、ZABBIX2.2を利用させていただいています。で、いっつもWebUI触ると出てくる私の不満をここに書きなぐっておきます。

ZABBIX WebGUIへの愚痴

  • アイテム設定画面のフィルタはあんなに豪華にフィルタリングかけられるのに、取得値やトリガー状況、イベント状況の表示項目フィルタリングのやる気のなさは一体どういうことなのだろう。
  • WebGUIの自動更新はその場その場でON/OFFできるべき。そんないつも更新したい/いつも更新したくない、で統一的にできるものではない。また、画面上のデータをHTML保存した時まで勝手にリロードされるのは我慢ならないのでその辺配慮できないものか。
  • イベント一覧画面の表示項目をもう少しカスタマイズしたりすることはできないのか。世の中には、非常に非効率的ではあるが、あのイベント画面を延々眺めて赤くなったら動くような仕事の人もいるのである。
  • WebGUIにおいてアイテム/トリガーの設定遷移に連携が少なすぎ。アイテム設定しました、次はトリガーですって時の設定の流れが明らかにめんどくさい。ログのウィザードしかないってどういうこと。あまつさえトリガー新規作成!って特定ホストで選んだとしても、最初に出てくるアイテム一覧がそのホストじゃないってどういうこと。
  • ログのウィザードは正規表現の大文字小文字チェックの前に正規表現を使うか使わないかのチェックが重要。そもそも正規表現って大文字小文字チェックするものだと思ってるからなお不自然に感じる。監視設定者がみんな正規表現正確に書けると思うな。僕だってよく間違えて大変なことになるばかりだ。
  • アイテムのキー設定、例えば「net.tcp.service[..]」みたいなのはWebGUI上で補完が効くべきだ。既にテンプレートリンクの設定やアプリケーションの設定で補完を実現しはじめているので、次あたりに考えてくれるのではないかとは思うのだが…。
  • 正規表現チェッカーをトリガー設定画面やアイテム設定画面にも盛り込むべきだと思う

全体的にZABBIXのGUIは動線設計ができてないと思ってます。上部のメニューはWindowsのメニューバーと大差ない使用感で親しみやすくていいのですが…。

…自分で書けって?…ごめんなさいその通りです技術者の態度としてはそれが正しいのはわかってるんです済みません。でもあのPHP読むと改良する気失せます…。HTML出力の大部分がクラス内で秘密裏に処理されWebUIのカスタマイズすら私目程度ではおぼつきません。HTML上で適切にクラス分けしてるからCSSでどうにかなるでしょ?ならないよ!例えばテーブルの1行全体の色変えたいのにそのクラステーブルの1セルにしか適合しないよ!DOMでやりゃあいいって?まぁFirefoxプラグインで画面改造とかやりゃいいんでしょうけど…。そんな端末に絞られる処理はしたくないなぁ。

API使って、少なくともイベント一覧を見るための画面程度は書くべきなんだろうなぁ。別にAPI使わなくてもMySQLから直接SELECTすりゃあいいんだがー。変なことやってSQLインジェクション脆弱性を生みたいわけでもないし。

その他の愚痴

  • 正規表現はグローバルの設定じゃなくて、ホストマクロやプロファイルと同じようにホスト単位で設定されるべきだ。グローバル正規表現は@@{マクロ名}とかで差別化してもいい。テンプレートに正規表現を設定できればグローバル代わりに全ホストに正規表現登録済みのテンプレートを適用したっていいのだから、その方が非常に汎用性が高い。アイテム設定と正規表現設定は本当は切り離していいものではない。そのサーバ固有の設定にアイテムが依存することはホストエクスポート機能もあるのだからあってはならないと思う。監視設定の可搬性は重要だ。
  • ログ行の監視というのは結構業が深い。大量に出るとメールスパムを発生させてしまう。なのでメールスパム防止機能は急務だと思う。アクション実行を制限できるように、もっと様々なアクション実行条件があっていいのではないだろうか。特定のアイテム値を条件にするなども有りだと思われるし。そうすれば例えば過去1分のイベント数をアイテム設定し(できただろうか)、その値が200を超えたらアクションを行わない、というようなことも可能になる。もちろんトリガー側でもこのような設定は行えるのだが…大変面倒くさいうえ、ログファイルが増えた時の手間が半端ではない。
  • 同時に多数のログが出たら一括して送るべきなのでそういう機能が欲しい。ログトリガーを検知するとバッファを初めて1分間に条件引っかかったものをまとめてメールに載せるとか。そういう機能が欲しい。

別に嫌いじゃない

勘違いしてはいけないが、嫌いではない。しかし使いづらい要素がそれなりにあるのも確かなので、手放しにOpenView捨てようぜ!とかJP1捨てようぜ!とかTivoli捨てようぜ!とか言ってる人には考えてほしい。

おおまかな要望

監視を運用する人間はいつもスペシャリストだろうか、ということを頭の片隅に置いて設計を進めていただけたら幸いだなぁと思っています。(日本の?)データセンターなどでは安いオペレータを雇って運用させることも多く、スキルレベルが低い可能性は割とあります。

どうしてもOSS製品は親切さなどを捨てがちになりやすいです。(親切にするための実装は面白くないし、というのは非常にわかる。プログラマとしては美しくないPHP+HTMLのコードを排除した気持ちもなんとなくわからなくはないが…。)それでも、最終的にエンタープライズシステムから市場を奪うのであればそれなりにやらないといけない分野かなぁと思います。1年くらいZABBIXやったあとやっぱりOpenViewやTivoliの方がサポート厚いしソフトも使いやすいな!ってなっちゃうかも。別にそれはそれで住み分けだとは思いますけど…。