LoginSignup
4
6

More than 5 years have passed since last update.

ZABBIX: NWのI/F情報をローレベルディスカバリ機能でうまい具合に料理する

Last updated at Posted at 2017-06-15

問題

Zabbixのローレベルディスカバリ(LLD)は便利ですよね。

けど、ネットワーク機器に対してテンプレートをそのまま利用すると、
image.png
上記のように、アイテム数が多くなって(1つのインターフェース毎に8アイテム)大変です。
本当にモニタリングしたいI/Fは、数ポートしかないのに…
かと言って、DiscoveryのFilterでいちいち、I/F情報を羅列するのも面倒。

そんな悩みありませんか?

やりたいこと

モニタリングしたいI/Fって、通常であればコンフィグでDescriptionの記載をしているでしょう(下記のように)。だったら、Description記載=(イコール)モニタリング対象にすれば良い!!
image.png

つまり、MIBの"ifAlias"の情報に、特定の文字"##"が含まれていれば、モニタリング対象のI/Fであると決めることで、アイテム数を最小限に抑えることができます。

これで、もし数十台のNW機器を監視することになっても、1秒あたりの"1秒あたりの監視項目数"を抑えることができます(やらなかったら50ぐらいすぐ超えちゃいます)。
パケット転送量・NW機器の負荷、なによりZabbixサーバの負荷軽減となります。

実現方法

簡単です。
ネットワーク機器用にテンプレート「Template SNMP Interfaces」を使用しているとします。
このテンプレートのディスカバリ部分を2点変更するのみで実現できます。

テンプレート内のディスカバリルールを修正

項目”SNMP OID”の内容を以下の通り変更します。
これにより、ディスカバリ内でマクロ{#IFALIAS}が使用可能となります。

image.png

  • discovery[{#SNMPVALUE},IF-MIB::ifDescr,{#IFALIAS},IF-MIB::ifAlias]

テンプレート内のディスカバリルールのフィルタを修正

今まで、{#SNMPVALUE}(つまりifDescr)を正規表現対象としていましたが、ifAliasを正規表現対象とすることで、ディスクリプションに"##"が含まれるi/fのみを対象として抽出できます。

image.png

どーでもいい疑問

みなさんも思われたかもしれませんが、
NW機器のI/Fコメント部分はDescriptionコマンドで記載しますが、
MIBのOID名では、ifAliasに登録されています。
下に例があるように、ifDescrは、I/F名(FastEthernet0等)が登録されています。
なんでだろ

[root@sv ~]# snmpwalk -v 1 -c public 192.168.10.2 ifDescr
IF-MIB::ifDescr.1 = STRING: FastEthernet0
IF-MIB::ifDescr.2 = STRING: FastEthernet1
IF-MIB::ifDescr.3 = STRING: BRI0
...
[root@sv ~]# snmpwalk -v 1 -c public 192.168.10.2 ifAlias
IF-MIB::ifAlias.1 = STRING: ## To SV#1
IF-MIB::ifAlias.2 = STRING: ## To SV#2
IF-MIB::ifAlias.3 = STRING: 
...

本番適用の際の考慮点

  • テンプレート「Template SNMP Interfaces」はサーバ等と共用しているので、別テンプレートに複製してから修正する等の工夫が必要
  • ディスカバリの{#SNMPVALUE}は名前変更したり、削除したりする際は気をつけましょう
  • 今回作成した{#IFALIAS}を活用して、表示名を判り易くさせたりするのもよいかも
4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6