Zabbix7.2新機能検証(NETCONF編)

こんにちは、SCSK株式会社の小寺崇仁です。

Zabbixの7.2から実装されたNETCONFについて検証したいと思います。
7.2の新機能につきましては、公式HPに記載がございます。

Zabbix 7.2の新機能
Zabbix 7.2 introduces new ways to visualize your data and host information, and improves upon various existing monitorin...
Zabbix7.2はポイントリリースのため、サポート期間が短くなっています。
本番利用する場合は8.0LTSがリリースされるまでお待ちいただく事をお勧めします。

NETCONFとは

NETCONFは、ネットワーク機器の管理・設定を行うための標準プロトコルです。
XML形式のデータとYANGデータモデルを使い、機器の設定や状態取得をプログラム的に実行します。
CLI操作に比べ、自動化、確実な設定、エラーチェックが容易で、セキュアな通信を提供。大規模ネットワーク運用における自動化基盤として利用されます。

ZabbixとNETCONF

ZabbixからNETCONFを使って監視すると以下のメリットがあると考えられます。

確実なデータ取得: XML/YANGモデルによりデータ構造が明確なため、CLIスクレイピングと異なりフォーマット変更による監視破損リスクが低く、安定して正確な情報が得られます。
詳細な情報取得: SNMPでは難しい機器のより詳細な設定や運用状態を正確に監視できます。
セキュリティ強化: SSHベースで通信が暗号化され、セキュアな監視が実現します。
ベンダー依存低減: YANGモデルの標準化により、異なるベンダーの機器でも共通の監視ロジックを適用しやすくなります。

 

設定方法

Zabbix7.2とjuniperを使った設定内容をご紹介いたします。

juniperの設定

環境に合わせてサービスの起動、FWの穴あけを行います。

#サービスの有効化
set system services netconf ssh
#FWの穴あけ
set security zones security-zone untrust interfaces ge-0/0/0.0 host-inbound-traffic system-services netconf

アイテムの作成

以下の設定でアイテムを作成します。Juniperでインタフェースの情報を取得するサンプルです。

名前 任意
タイプ SSHエージェント
キー ssh.run[,,830,,,netconf]
※ポートとNETCONFであることを指定します。
データ型 テキスト
認証方式 パスワード(環境に合わせて)
ユーザー名 (環境に合わせて)
パスワード (環境に合わせて)
実行するスクリプト
(XML RPCタグ)
<rpc>
<get-interface-information>
<detail/>
</get-interface-information>
</rpc>
]]>]]>
<rpc>
<close-session/>
</rpc>
]]>]]>

上記アイテムを作成いただく事で、NETCONFを使用してXML形式のデータの取得ができます。

しかしXMLの生データだけでは、監視ができないので、環境に合わせてデータの加工の設定を行う必要があります。
次に、データ加工に必要なスキルを紹介します。

 

必要スキル

XML RPCタグの作成

データ取得の際にXML RPCタグを使って、取得するデータを指定しています。
各機器ごとにタグが違うと思うので、注意が必要です。

juniperであれば、パイプで「display xml rpc」をつなげれば作成できるようです。

user@host> show interfaces t3-5/1/0:0 | display xml rpc
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/16.1R1/junos">
    <rpc>
        <get-interface-information>
            <interface-name>t3-5/1/0:0</interface-name>
        </get-interface-information>
    </rpc>
    <cli>
        <banner></banner>
    </cli>
</rpc-reply>

引用:https://www.juniper.net/documentation/us/en/software/junos/junos-xml-protocol/topics/task/junos-xml-protocol-rpcs-and-xml-mapping.html

保存前処理(javascript)でデータの加工

取得したXMLデータを加工、成形する際に保存前処理でJavascriptを書く必要があります。
加工、成形する目的としては、以下2点のためです。
・XMLから所定の値(文字列)を抽出する
・後工程(依存アイテム、LLD)で使用しやすいように、データの加工(成形)する

依存アイテム、ローレベルディスカバリ(LLD)でアイテム分割

NETCONFで監視するアイテムを大量に作成すると、NW機器側に負荷がかかるため、まとめて取得して分割する必要があります。
その際に、依存アイテム、ローレベルディスカバリを使用すると分割することができます。

依存アイテム

依存アイテムは、まとめて取得したデータを分割保存するアイテムタイプです。
例えば、1回のNETCONFアイテムで「show version」の結果を取得したとします。
コマンド結果にある、「OSの種類」と「バージョン」を別々のアイテムとして保存する場合に使用します。

ローレベルディスカバリ

インタフェースごとにアイテムを作成する場合に使用します。
機器ごとにインタフェースの数、名前が違うと思います。
ローレベルディスカバリでは、機器に合わせて自動的にアイテムを作成する事ができます。

 

監視設定が難しい場合

ZabbixインテグレーションにJuniperのNETCONF用テンプレートが公開されております。
その他の機器についてもリリースされることを期待して待つのもよいかと思います。
https://www.zabbix.com/jp/integration_search?search=netconf

SCSK Plus サポート for Zabbix

★YouTubeに、SCSK Zabbixチャンネルを開設しました!★

★X(旧Twitter)に、SCSK Zabbixアカウントを開設しました!★

著者について

Zabbixの構築をメインに担当しています。
■資格
 Zabbix認定プロフェッショナル
 AWS Certified Solutions Architect - Professional
 Google Certified Professional - Cloud Architect
 LPIC 303,304 ORACLE MASTER Gold DBA 11g
 CCNA Oracle Certified Java Programmer, Silver SE 7

小寺崇仁をフォローする

クラウドに強いによるエンジニアブログです。

SCSKでは、自社クラウドと3大メガクラウドの強みを活かし、ハイブリッドクラウド/マルチクラウドのソリューションを展開しています。業界の深い理解をもとに、お客様の業務要件に最適なアーキテクチャをご提案いたします。サービスサイトでは、お客様のDX推進をワンストップで支援するサービスの詳細や導入事例を紹介しています。

Zabbixソリューションプロダクト運用・監視
シェアする
タイトルとURLをコピーしました