Zabbix + Cisco ISR:SNMP + Perlスクリプト+ LLDを介してVPNトンネルの負荷を監視

タスク:設定されたサイト間IPsec-VPNトンネルの束を持つCiscoルーターがあります。 Zabbix 2.0.xでトンネル負荷監視を設定する必要があります
tsiskaおよびZabbix'eのSNMPはすでに設定されていると想定されています。

主な問題は、トラフィックカウントによる監視に必要なSNMP OIDが動的に生成されることです。 さらに、これらの番号のリストも動的に生成されます。

これは、トンネル構築アルゴリズム自体がかなり複雑であるという事実の結果です。 最初にISAKMPサービストンネルが形成され、次にデータ用のメインIPSECトンネルが形成されます。 詳細については、 linkmeup.ru / blog / 50.htmlを参照してください (ちなみに、この著者のシスコ機器の構成の基本に関する記事の優れたトレーニングサイクルはすでにHabréにありました)。

大切なトラフィックサンプルを抽出するための特定のアルゴリズムは非常に曖昧なので、純粋に組み込みのZabbixツールで実装することは明らかに不可能です。 そこには、芸術的に翻訳することさえできませんでした。 フォーラムwww.networking-forum.comからの説明を許可します
これらのOIDは、フェーズ1トンネルでのみ使用されるバイトを指します。 フェーズ2トンネルを介して実際のユーザートラフィックを取得するには、SNMPv2-SMI :: enterprises.9.9.171.1.2.3.1.7からエンドポイントアドレスを使用してフェーズ1インデックスIDを取得し、それをフェーズ2インデックスID( s)SNMPv2-SMI :: enterprises.9.9.171.1.3.2.1.2から、SNMPv2SMI :: enterprises.9.9.171.1.3.2.1.26およびSNMPv2-SMI :: enterprises.9.9.171.1.3.2.1.39を使用できます。実際のフェーズ2トラフィックに追加されるフェーズ2インデックスID。


興味津々は、災害の規模を直接確認するために、必要なOIDを手で引き出すことができます。
zabbix-host:~ # snmpwalk -v2c -c <community> <IP- > SNMPv2-SMI::enterprises.9.9.171.1.2.3.1.7 SNMPv2-SMI::enterprises.9.9.171.1.2.3.1.7.479 = STRING: "091.092.093.094" SNMPv2-SMI::enterprises.9.9.171.1.2.3.1.7.483 = STRING: "012.013.014.015" SNMPv2-SMI::enterprises.9.9.171.1.2.3.1.7.499 = STRING: "162.163.164.165" SNMPv2-SMI::enterprises.9.9.171.1.2.3.1.7.505 = STRING: "217.218.219.220" 


 zabbix-host:~ # snmpwalk -v2c -c <community> <IP- > SNMPv2-SMI::enterprises.9.9.171.1.3.2.1.2: SNMPv2-SMI::enterprises.9.9.171.1.3.2.1.2.8830 = INTEGER: 462 SNMPv2-SMI::enterprises.9.9.171.1.3.2.1.2.8831 = INTEGER: 462 SNMPv2-SMI::enterprises.9.9.171.1.3.2.1.2.8832 = INTEGER: 462 SNMPv2-SMI::enterprises.9.9.171.1.3.2.1.2.8833 = INTEGER: 462 SNMPv2-SMI::enterprises.9.9.171.1.3.2.1.2.8834 = INTEGER: 499 SNMPv2-SMI::enterprises.9.9.171.1.3.2.1.2.8835 = INTEGER: 499 SNMPv2-SMI::enterprises.9.9.171.1.3.2.1.2.8836 = INTEGER: 499 SNMPv2-SMI::enterprises.9.9.171.1.3.2.1.2.8837 = INTEGER: 499 SNMPv2-SMI::enterprises.9.9.171.1.3.2.1.2.8838 = INTEGER: 499 SNMPv2-SMI::enterprises.9.9.171.1.3.2.1.2.8839 = INTEGER: 499 SNMPv2-SMI::enterprises.9.9.171.1.3.2.1.2.8840 = INTEGER: 499 SNMPv2-SMI::enterprises.9.9.171.1.3.2.1.2.8841 = INTEGER: 499 SNMPv2-SMI::enterprises.9.9.171.1.3.2.1.2.8842 = INTEGER: 499 



幸いなことに、Cactiフォーラムの善良な人々は、すべての汚い仕事自体を行うパールオオムギスクリプトを書きました

スクリプトをダウンロードして、ExternalScriptsフォルダーにドロップします(デフォルトでは/ usr / local / share / zabbix / externalscripts)。

このスクリプトを手動で試してみましょう。
 zabbix-host:/usr/local/share/zabbix/externalscripts # perl query_asa_lan2lan.pl <community> <IP- > ASA get RX <IP- - remote endpoint> 70546023 

うまくいく!


多くのトンネルがあり、時々変更されるため、ZabbixでLLD(低レベルディスカバリルール)を適用して、すべてのトンネルがシステムで検出および登録されるようにします。
新しいテンプレートを作成します。その中には、受信トラフィックと送信トラフィックのデータ要素の検出ルールとプロトタイプがあります。
画像

画像
完全なキー: query_asa_lan2lan.pl ["{$ SNMP_COMMUNITY}"、 "{HOST.IP}"、 "ASA"、 "get"、 "RX"、 "{#SNMPVALUE}"]
OIDの説明へのリンク: tools.cisco.com/Support/SNMP/do/BrowseOID.do?local=en&translate=Translate&objectInput=1.3.6.1.4.1.9.9.171.1.2.3.1.35#oidContent

画像
キーは完全に次のとおりです。query_asa_lan2lan.pl["{$ SNMP_COMMUNITY}"、 "{HOST.IP}"、 "ASA"、 "get"、 "TX"、 "{#SNMPVALUE}"]
OIDの説明へのリンク: tools.cisco.com/Support/SNMP/do/BrowseOID.do?local=en&translate=Translate&objectInput=1.3.6.1.4.1.9.9.171.1.2.3.1.35#oidContent

テンプレートを適切なホストに適用し、自動検出を待って、トンネルを検討します。

トンネルのグラフを作成することは残っています。 残念ながら、LLDでは複数のデータプロトタイプから統合チャートを自動的に作成することはできません;検出されたデータ要素を手動で追加する必要があります。

画像

やった! ライブ写真を上司に見せることができます。

Source: https://habr.com/ru/post/J195622/


All Articles