Zabbix4.4 ネットワークディスカバリでFortigate,Ciscoを自動検出する(後編)

zabbixzabbix,自動化

前編と後編について

前編では「ネットワークディスカバリ」の機能概要と、監視対象とするForitgate、CiscoIOS側のSNMP有効化作業まで行いました。
後編ではZabbixの設定からネットワークディスカバリが機能しているところまで確認し、本機能の確認を終了とします。

Zabbixの設定

アクションについて(ネットワークディスカバリでどういったことを自動化するか)

前編の冒頭でも説明しましたが、ネットワークディスカバリ自体は対象のネットワークからノードを自動検出する機能です。アクションから実行内容を定義することで、「検知したあと自動でホスト登録」をさせたり「監視内容がまとめられているテンプレートを自動で適用させ監視をスタート」させたりといった、様々なことを自動化することができます。
※下記はZabbix4.4のアクションから確認できる実行内容です。

本記事では下記の項目を自動適用させます。

  • 「ホストを登録」…ネットワークディスカバリで自動検知後、Zabbixにホストとして自動登録させる。
  • 「ホストグループに追加」…ホストとして登録された各ノードをFortigate,IOS毎のホストグループに自動登録させる。
  • 「テンプレートとリンクを作成」…ホストとして登録された各ノードにSNMPによるリソース取得をするテンプレートを自動適用する。

なお、「ホストを追加」はアクションの設定内だけで実装することができますが、「ホストグループに追加」と「テンプレートとリンクを作成」は事前に準備が必要です。

以下で事前準備の説明をします。

ホストグループの作成

ホストグループはFortigate、CiscoIOSの二種を作成します。
まずは、「設定」>「ホストグループ」>「ホストグループの作成」の順に進めます。

グループ名欄に「01-HG_Fortigate」と記載し「追加」をクリックします。

上部に「グループを追加しました」と、実際に作成したホストグループができていることを確認します。

ホストグループの作成手順をCiscoのIOS分も実施します。※画面キャプチャーは省略します。
 <Ciscoのホストグループ名>
  ・02-HG_CSR1000V

以上で、ホストグループの作成は完了です。

テンプレートについて

まずテンプレートを理解するためにテンプレートの構成要素であるアイテムやトリガーという役割を知る必要があります。

アイテムは監視対象装置に対してICMPポーリングをしたりSNMP GETやZabbix Agentで情報を収集しに行くものです。例えばCPUやメモリのリソースを取得したりプロセスの稼働状況を取得します。ネットワーク機器であればCPU、メモリー、トラフィック量、FWやLBであればそれに加えてセッション数と言った値を取得します。
トリガーはアイテムで収集した値を使い、閾値やステータス状態によって異常や正常の判断を行い通知する機能です。
アイテムとトリガーを組み合わせることで、例えばLBに対して指定以上のセッション数が来ている場合は危険サインのメール通知をする。その後、指定セッション数を下回ったら正常サインのメールを通知する、といった使い方が可能です。

テンプレートはこれらアイテムやトリガーをパッケージングしたしたものです。(なお、アイテムやトリガーの他にグラフやスクリーン等もありますが今回は説明を割愛します。)

テンプレートの用意

先ほどテンプレートはアイテムとトリガーで構成されるものと説明しましたが、アイテムもトリガーも一から作りこむには非常に時間がかかります。そのため、Zabbixテンプレートをシェアしているサイトがあるのでそこから丁度良いテンプレートを探し使います

・Zabbixテンプレートのシェアサイト
https://share.zabbix.com/

Fortigateは下記の『Zabbixテンプレートシェアサイトからダウンロードするテンプレート』に記載のテンプレートを使います。(シェアサイトにアクセスし上部の検索バーから『fortigate』で検索しいくつか出てきたテンプレートから新しいものを選びました。)
なお、テンプレートをクリックしListing Details内にある「Download」を押すと.xlmファイルがダウンロードされます。この.xmlファイルが後にZabbixにインポートするテンプレートのファイルとなります。

CiscoIOSはZabbixがデフォルトで用意している機器ベンダーのテンプレートを使用したいと思います。

機種ZabbixデフォルトテンプレートZabbixテンプレートシェアサイトから
ダウンロードするテンプレート
FortiGate 60DFortinet FortiGate(Created 2020-04-24/Modified Never)

※XMLファイル名は「Template Net Fortinet FortiGate SNMPv2.xml」
CSR1000VTemplate Net Cisco IOS SNMPv2

次に、シェアサイトからのダウンロードしたテンプレートファイル(.xmlファイル)を下記の手順でインポートします。

「ファイルを選択」から先ほどダウンロードした.xmlファイルを選択しインポートします。

「インポートに成功しました」と出ればOKです。

その後、上部の「テンプレート」をクリックし元の画面に戻ります。

テンプレートの画面に戻ったら、名前欄に「Forti」で適用するとフィルタがかかりますので、「Template Net Fortinet FortiGate SNMPv2」という名前でインポートが成功していることを確認します。
なお、フィルタを解除したい際は適用ボタンの横ある「リセット」をクリックします。

以上で、テンプレートのインポートを終わります。

ネットワークディスカバリの設定

下準備はすべて完了したので、いよいよネットワークディスカバリの設定を行います。
上部の「ディスカバリ」をクリックし、右側にある「ディスカバリルールの作成」をクリックします。

下記の画像の通り入力していきます。

「IPアドレスの範囲」については、記載したレンジに対して検知のポーリングをします。当方のFortigateは「192.168.0.254」なので収まるように記載します。なお、レンジ以外では「192.168.0.254」や「192.168.0.0/24」が可能です。
「チェック」では前編でsnmpwalkでした値を入力します。
その他は画像の通り入力し、「追加」ボタンをクリックします。なお、各項目の詳細については下記のリンクでご確認いただけます。

・Zabbix公式のドキュメント「1 Network discovery」
https://www.zabbix.com/documentation/4.2/manual/discovery/network_discovery

・Fortigateのネットワークディスカバリ

・CiscoIOSのネットワークディスカバリ

アクションの設定

次にアクションの設定を行います。上部の「アクション」をクリックし、右上のイベントソースを「ディスカバリ」に変更し、「アクションの作成」をクリックします。

まずはアクションタブから設定します。「名前」を付けたら、「実行条件」に『受信した値』『含む』『Fortigate(snmpwalkで返ってきた機器を特定するキーワードを入力)』を設定します。

次に、「実行内容」に切り替え、「実行内容」欄にどういった動作を与えるか設定していきます
今回は、『ホストを追加』『ホストグループに追加』『テンプレートとリンク』の三種類です。『ホストを追加』は検出したホストをZabbixに登録することです。『ホストグループに追加』は検出したホストを指定したホストグループに登録します。『テンプレートとリンク』は検出したホストに対してテンプレートを割り当てます。
実行内容の設定が完了したら、「追加」ボタンをクリックし完了します。
下記は、当方が設定したFortigateとCiscoIOSの設定例です。

・Fortigateのアクション設定

・Cisco CSR1000Vのアクション設定

ネットワークディスカバリの動作確認

では実際にネットワークディスカバリが動作しているか確認します。
※なお、検出までには時間がかかる場合があります。ディスカバリ設定で指定したネットワークのIPアドレス数が多かったり、監視間隔の長さに依存します。

まず上部の「ホストグループ」をクリックすると、作成したホストグループのメンバーに検知したホストが登録されていることを確認します。

次に「テンプレート」が割り当てられていることを確認します。
上部の「テンプレート」をクリックし、アクションで設定したテンプレートにホストが割り当てられていることを確認します。

ここまでで、『自動検出』から『アクション』で設定した「ホストを追加」「ホストグループに追加」と「テンプレートとリンク」が機能していることが確認できました。

データの取得確認

なお、ネットワークディスカバリとは直接は関係ないのですが、今回使ったテンプレートで機器のCPUやインタフェースのトラフィック量を自動で採取するアイテムが入ってます。なので、このネットワークディスカバリができた時点で各機器の情報を採取しています。
採取した値を見るには、上部の「監視データ」から「最新データ」のホストグループ欄で対象のホストグループを選択し、「適用」します。
すると、Fortigate60DやCiscoCSR1000Vなどの情報収集ができています。

まとめ

以上でネットワークディスカバリの基本的な設定方法の手順を終わります。今回やったことをまとめると下記となります。

 <前編>
  ・ネットワークディスカバリの概要説明
  ・監視対象となるFortigateとCiscoIOSのSNMP設定
  ・SNMPでホスト名と機器情報を取得する利用の説明

 <後編>
  ・アクションの概要
  ・ホストグループの作成
  ・テンプレートの概要
  ・テンプレートの用意
  ・ネットワークディスカバリの設定
  ・アクションの設定
  ・ネットワークディスカバリの動作確認

基本的なネットワークディスカバリの理解と、アクションとテンプレートの組み合わせによる設定手順までができました。
ネットワークディスカバリの説明は以上としますが、さらにトリガーを使った自動監視機能や、取得しているデータのグラフ表示、ネットワーク構成図のようなスクリーン機能などの設定も今後記事にしていこうと思います。