問題点
ZABBIXのダッシュボードやトリガー画面やイベント画面で、SNMPTRAP等のイベント情報が全文表示されない。
結局、マウスクリックで画面遷移(2~3画面)しないと、SNMPTRAPの全貌が分からない(見えない)。
これって、非常に非効率。
検証した環境
- zabbix3.0(zabbixオフィシャルリポジトリ使用)
やったこと
ZABBIXのダッシュボードやトリガー画面やイベント画面で、画面遷移なく、SNMPTRAPのイベント情報を参照可能にする。
ダッシュボードでアラーム内容が把握できる!!
ダッシュボード以外でも、トリガ・イベント画面でも同様に全文が一度に確認できる。
実際の変更点ところ
/usr/share/zabbix/include/items.inc.phpを修正。
標準だと、20文字以上あれば、"..."で表示を打ち切るようになっているので、
そこを強引に、20->400文字とかに変えてしまう。
※つまらないオチで申し訳ございません。これだけです。
--- /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とコンテンツ圧縮はとても良い組み合わせかもしれない。
対処の実際
<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>