ZabbixでFortiGateのlink-monitorを監視

2023年6月24日

久々の投稿になってしまいました。
以前に、FortiGateのネットワークポートの状況をZabbixのディスカバリールールを使って監視できるようにする設定について書きましたが、今回はその続編です。

今回の目的

昨今、インターネットが使えなくなると業務上多大な影響が出てしまうので、インターネット回線を多重化し、FortiGateでLinkMonitorを使ってそのコントロールをするように設定したのですが、そのLinkMonitorの状況をZabbixで監視できるようにしようというのが今回の目的です。

(時間があれば、LinkMonitorの設定についても備忘録もかねて載せておこうとは思います)

OIDの特定

まずは、Zabbixで監視するためにはOIDの値を特定する必要があるのですが、この情報がインターネットで検索してもなかなか見つけられず苦労しました。
snmpwalkコマンドを使って探索した結果、以下のOID等から取得できることがわかりました。

FORTINET-FORTIGATE-MIB::fgLinkMonitorID1.3.6.1.4.1.12356.101.4.8.2.1.1
FORTINET-FORTIGATE-MIB::fgLinkMonitorName1.3.6.1.4.1.12356.101.4.8.2.1.2
FORTINET-FORTIGATE-MIB::fgLinkMonitorState1.3.6.1.4.1.12356.101.4.8.2.1.3

試しにsnmpwalk で取得してみると

snmpwalk -v 2c -c public 192.168.1.1 .1.3.6.1.4.1.12356.101.4.8
FORTINET-FORTIGATE-MIB::fgLinkMonitorNumber.0 = INTEGER: 3
FORTINET-FORTIGATE-MIB::fgLinkMonitorID.1 = INTEGER: 1
FORTINET-FORTIGATE-MIB::fgLinkMonitorID.2 = INTEGER: 2
FORTINET-FORTIGATE-MIB::fgLinkMonitorID.3 = INTEGER: 3
FORTINET-FORTIGATE-MIB::fgLinkMonitorName.1 = STRING: 1
FORTINET-FORTIGATE-MIB::fgLinkMonitorName.2 = STRING: 2
FORTINET-FORTIGATE-MIB::fgLinkMonitorName.3 = STRING: 3
FORTINET-FORTIGATE-MIB::fgLinkMonitorState.1 = INTEGER: alive(0)
FORTINET-FORTIGATE-MIB::fgLinkMonitorState.2 = INTEGER: alive(0)
FORTINET-FORTIGATE-MIB::fgLinkMonitorState.3 = INTEGER: alive(0)
FORTINET-FORTIGATE-MIB::fgLinkMonitorLatency.1 = STRING: 8.928
FORTINET-FORTIGATE-MIB::fgLinkMonitorLatency.2 = STRING: 3.199
FORTINET-FORTIGATE-MIB::fgLinkMonitorLatency.3 = STRING: 7.395
FORTINET-FORTIGATE-MIB::fgLinkMonitorJitter.1 = STRING: 0.331
FORTINET-FORTIGATE-MIB::fgLinkMonitorJitter.2 = STRING: 0.166
FORTINET-FORTIGATE-MIB::fgLinkMonitorJitter.3 = STRING: 0.275
FORTINET-FORTIGATE-MIB::fgLinkMonitorPacketSend.1 = Counter64: 257151
FORTINET-FORTIGATE-MIB::fgLinkMonitorPacketSend.2 = Counter64: 257026
FORTINET-FORTIGATE-MIB::fgLinkMonitorPacketSend.3 = Counter64: 258509
FORTINET-FORTIGATE-MIB::fgLinkMonitorPacketRecv.1 = Counter64: 147002
FORTINET-FORTIGATE-MIB::fgLinkMonitorPacketRecv.2 = Counter64: 256535
FORTINET-FORTIGATE-MIB::fgLinkMonitorPacketRecv.3 = Counter64: 257752
FORTINET-FORTIGATE-MIB::fgLinkMonitorPacketLoss.1 = STRING: 0.000%
FORTINET-FORTIGATE-MIB::fgLinkMonitorPacketLoss.2 = STRING: 0.000%
FORTINET-FORTIGATE-MIB::fgLinkMonitorPacketLoss.3 = STRING: 0.000%
FORTINET-FORTIGATE-MIB::fgLinkMonitorVdom.1 = STRING: root
FORTINET-FORTIGATE-MIB::fgLinkMonitorVdom.2 = STRING: root
FORTINET-FORTIGATE-MIB::fgLinkMonitorVdom.3 = STRING: root
FORTINET-FORTIGATE-MIB::fgLinkMonitorBandwidthIn.1 = Counter32: 998754
FORTINET-FORTIGATE-MIB::fgLinkMonitorBandwidthIn.2 = Counter32: 992947
FORTINET-FORTIGATE-MIB::fgLinkMonitorBandwidthIn.3 = Counter32: 999998
FORTINET-FORTIGATE-MIB::fgLinkMonitorBandwidthOut.1 = Counter32: 999251
FORTINET-FORTIGATE-MIB::fgLinkMonitorBandwidthOut.2 = Counter32: 991287
FORTINET-FORTIGATE-MIB::fgLinkMonitorBandwidthOut.3 = Counter32: 999999
FORTINET-FORTIGATE-MIB::fgLinkMonitorBandwidthBi.1 = Counter32: 1998005
FORTINET-FORTIGATE-MIB::fgLinkMonitorBandwidthBi.2 = Counter32: 1984234
FORTINET-FORTIGATE-MIB::fgLinkMonitorBandwidthBi.3 = Counter32: 1999997
FORTINET-FORTIGATE-MIB::fgLinkMonitorOutofSeq.1 = Counter64: 83876
FORTINET-FORTIGATE-MIB::fgLinkMonitorOutofSeq.2 = Counter64: 191491
FORTINET-FORTIGATE-MIB::fgLinkMonitorOutofSeq.3 = Counter64: 192971

の様に取得できます。

Zabbixへのディスカバリールール設定

ここまでわかれば、あとはディスカバリールールに設定していくだけです。
設定済みのテンプレートファイルは、こちら。
zbx_fglinkmonitor_templates.zip

設定すると、以下のようにLinkMonitorについて監視ができるようになり、LinkStatusがdeadになると、通知されるようにしてあります。

何かしらの参考になれば幸いです。