やりたいこと
トラフィック監視のテンプレートを効率的に作成できること。
ホストごとに、トラフィックの閾値を柔軟に変更できること。
まとめ
ホストマクロ、テンプレートマクロ、グローバルマクロは、以下の優先順位で適用されます。
優先順位
高 ホストマクロ > テンプレートマクロ > グローバルマクロ
低
トラフィック閾値のマクロ{$TRAFFIC_UTIL_MAX}を以下の値で設定した場合
ホストマクロ : 7516192768 (7GBps)
テンプレートマクロ : 8589934592 (8GBps)
グローバルマクロ : 9663676416 (9GBps)
使いどころ
3つのマクロを同時に利用するケースは、より綿密な閾値調整が必要な状況で、テンプレートが親子関係になっている場合、類似のテンプレートが複数ある場合が考えられます。
シンプルに考えるのであれば、ホストマクロとグローバルマクロ、またはホストマクロとテンプレートマクロの組み合わせで作成するのが良いと思います。
私個人としては、Zabbix全体で何のマクロを使っているか一覧で確認できるグローバルマクロと、個別で設定するホストマクロの組み合わせで設定しています。
例:Router1-1のみ、トラフィックの閾値を7GBpsにする
ホスト名 | ホストマクロ | グローバルマクロ |
---|---|---|
Router1-1 | 7GBps | 9GBps |
Router1-2 | - | 9GBps |
Router1-3 | - | 9GBps |
検証環境
OS:CentOS 7.7
Version:Zabbix4.0
本記事の経緯
トラフィックの閾値ごとにテンプレートを作成することは手間がかかる、かつ運用も大変になります。その為、何とか効率的な設計にできないかと調べたところ、マクロに行き当たりました。
備考
マクロと聞いてExcelのマクロのイメージ(何か複雑そう)と思っていましたが、調べてみると変数そのものでした。 また、初めからZabbixに用意されているテンプレートには、トラフィック閾値のマクロ{$IF_UTIL_MAX}があります。そのテンプレートを使わないのであれば、同じ名前のマクロを使用しても影響はないのですが、何となくi,jみたいな使いまわす変数ではない感じがして避けています。