第4回 Fortigate 60EのIPsec VPNダイアルアップユーザー数をカウントし時系列グラフを作成
本記事では、Checkmkのカスタムプラグインを使ってFortigate 60EのIPsec VPN数をカウントし、時系列グラフを作成するところまでをご紹介したいと思います。
文:ジュピターテクノロジー よしひろ
今回作成するプラグインですが、Checkmkドキュメントの分類では”Genuine Checkmk plug-in”といった分類にあたります。こちらは、100% Checkmkによりインテグレーションされ、自動サービス検出、グラフの閾値設定等をサポートします。プラグイン開発というとなんだか難しそうですが、簡単なpythonスクリプトを書くといった理解でお願いします。
今回作成したプラグイン名は、”fortigate_ipsec_vpn”とします。コピペで直ぐ使えるように、本記事に全文記載しますのでご活用ください。
- “fortigate_ipsec_vpn”プラグインで出来るようになること
- Fortigate 60EのIPsec VPNの接続ユーザー数(ダイヤルアップユーザ*1)がリアルタイムで分かり、時系列グラフで中長期分析が可能となります。
- 監視対象
- Checkmkの”Genuine Checkmk plug-in”は、4つの関数を書くだけ
from cmk.base.plugins.agent_based.agent_based_api.v1 import *from pprint import pprintregister.snmp_section(name = “fortigate_ipsec_vpn”,detect = exists(“.1.3.6.1.2.1.1.1.0”),fetch = SNMPTree(base = ‘.1.3.6.1.4.1.12356.101.12.1.1’,oids = [‘0’,],),)def discover_fortigate_ipsec_vpn(section):yield Service()def check_fortigate_ipsec_vpn(section):for num in section:nusers = int(num[0])yield Metric(“Fgusers”,nusers,boundaries=(0, 100))nusers = int(num[0])print(nusers)s = State.OKyield Result(state = s, summary = f”{nusers} number of users are connected through IPsec VPN”)returnregister.check_plugin(name=”fortigate_ipsec_vpn”,service_name=”FG IPsec VPN USERS”,discovery_function=discover_fortigate_ipsec_vpn,check_function=check_fortigate_ipsec_vpn,)
register.snmp_section()
discover_fortigate_ipsec_vpn()
check_fortigate_ipsec_vpn()
register.check_plugin()
- プラグインの配置・デバック方法
おわりに
Checkmkには公式プラグインが多数用意されていますが、もちろん対応していない機器も存在します。そういった場合は、独自に専用プラグインを開発してみましょう。4つの関数だけで、簡単にプラグインが作れることが分かっていただけたかと思います。