Zabbix: イベント情報の表示を省略させない。


問題点

ZABBIXのダッシュボードやトリガー画面やイベント画面で、SNMPTRAP等のイベント情報が全文表示されない。
結局、マウスクリックで画面遷移(2~3画面)しないと、SNMPTRAPの全貌が分からない(見えない)。
これって、非常に非効率。

検証した環境

  • zabbix3.0(zabbixオフィシャルリポジトリ使用)

やったこと

ZABBIXのダッシュボードやトリガー画面やイベント画面で、画面遷移なく、SNMPTRAPのイベント情報を参照可能にする。

ダッシュボードでアラーム内容が把握できる!!
ダッシュボード以外でも、トリガ・イベント画面でも同様に全文が一度に確認できる。

実際の変更点ところ

/usr/share/zabbix/include/items.inc.phpを修正。
標準だと、20文字以上あれば、"..."で表示を打ち切るようになっているので、
そこを強引に、20->400文字とかに変えてしまう。
※つまらないオチで申し訳ございません。これだけです。

diff
--- /usr/share/zabbix/include/items.inc.php.original    2017-05-22 19:42:51.748714884 +0900
+++ /usr/share/zabbix/include/items.inc.php     2017-05-22 20:09:09.535936472 +0900
@@ -929,8 +929,8 @@
                // break; is not missing here
                case ITEM_VALUE_TYPE_TEXT:
                case ITEM_VALUE_TYPE_LOG:
-                       if ($trim && mb_strlen($value) > 20) {
-                               $value = mb_substr($value, 0, 20).'...';
+                       if ($trim && mb_strlen($value) > 400) {
+                               $value = mb_substr($value, 0, 400).'...';
                        }

                        if ($mapping !== false) {

問題点

一目でわかるようになったけど、そもそもzabbixのコンテンツででかいですよね。
「表示速度遅い」とか「監視の分際で回線流量使ってんじゃねーよ」とか言われていたのが、ますます言われるようになってしまいます。

上記問題点の対処(httpサーバでコンテンツ圧縮)

mod_deflateで、コンテンツ圧縮してあげます。
参考:Apache モジュール mod_deflate

今回のダッシュボード(最小レベル)だと、15KB->3KBになりました。
実際に運用すると、トラップ量は増える(多分)ので、劇的なコンテンツサイズ縮小が図れると思います。

zabbix使ってると、リソース(回線・メモリ・ディスク(iops))に困ったことはあるけど、CPUリソースには困ったことない。
だから、zabbixとコンテンツ圧縮はとても良い組み合わせかもしれない。

対処の実際

/etc/httpd/conf.d/zabbix.conf
<Directory "/usr/share/zabbix">
     ...省略...
    <IfModule mod_php5.c>
     ...省略...
    </IfModule>
    <IfModule mod_deflate.c>
      AddOutputFilterByType DEFLATE text/html
    </IfModule>
</Directory>

上記のように、zabbix用のDirectoryディテクティブに、以下を追記するだけ。

    <IfModule mod_deflate.c>
      AddOutputFilterByType DEFLATE text/html application/json application/json-rpc text/javascript
    </IfModule>