mito’s blog

IT技術メインの雑記。思い立ったが吉日。

【Zabbix4.0】ホストごとに閾値の異なるトラフィック監視を、マクロを使って効率的に実現する その1

やりたいこと

トラフィック監視のテンプレートを効率的に作成できること。
ホストごとに、トラフィック閾値を柔軟に変更できること。

まとめ

ホストマクロ、テンプレートマクロ、グローバルマクロは、以下の優先順位で適用されます。

優先順位
高 ホストマクロ > テンプレートマクロ > グローバルマクロ 低

トラフィック閾値のマクロ{$TRAFFIC_UTIL_MAX}を以下の値で設定した場合
ホストマクロ    : 7516192768 (7GBps)
テンプレートマクロ : 8589934592 (8GBps)
グローバルマクロ  : 9663676416 (9GBps)

f:id:mst-it:20200411235704j:plain

使いどころ

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みたいな使いまわす変数ではない感じがして避けています。