Zabbix7.0でAllied TelesisスイッチのCPU・メモリリソースをモニタするテンプレートを作る

手っ取り早くテンプレを取得したいときはこちらから template-AT-SYSINFO.xml どうぞ。

AlliedのスイッチをZabbixでモニタするにあたって、ネットワークインタフェースについては標準でZabbix本体に付属している「 Network Generic Device by SNMP 」で良いのですがCPUメモリについては取得できません。ネットにも転がっていないようですが、mib2zabbix という大変便利な変換スクリプトを使用することで簡単に作ることができましたので紹介します。

mib2zabbixについては こちらのサイトから教えていただきました、ありがとうございます。 https://kokura.hatenadiary.jp/entry/2021/05/09/223232

環境はRocky Linux 9.0を使いました。AlmaでもMiracleでもなんでも好きなものを使ってください。

必要なもの:AlliedのプライベートMIBファイルと、mib2zabbix

準備

RockyLinux9へZabbix7.0のインストールを済ませます。Zabbix7.0のインストールは公式サイトの手順で問題ないはずです。

ほか必要なものはこれくらいです。
dnf install git net-snmp-perl net-snmp net-snmp-utils perl-XML-Simple

1. 監視対象SW Allied AT-xシリーズでsnmp有効化

snmp-server community public ro
snmpwalkでデータを取得できることを確認しておきます。
snmpwalk -v 2c -c public 192.168.x.x

2. アライドのプライベートMIBをサーバにインストール

最近のアライドのCPUメモリリソースのMIBはこちらの公式FAQページ(*1)で紹介されていますので引用します。 https://www.allied-telesis.co.jp/support/list/faq/switch_router/list/qa/qa_b0025.html
【CPU使用率】

  ・cpuUtilisationAvg
   OID:1.3.6.1.4.1.207.8.4.4.3.3.2
   説明:起動後からの平均CPU使用率

  ・cpuUtilisationAvgLastMinute
   OID:1.3.6.1.4.1.207.8.4.4.3.3.3
   説明:過去1分間の平均CPU使用率

  ・cpuUtilisationAvgLast10Seconds
   OID:1.3.6.1.4.1.207.8.4.4.3.3.4
   説明:過去 10 秒間の平均 CPU 使用率

  ・cpuUtilisationAvgLastSecond
   OID:1.3.6.1.4.1.207.8.4.4.3.3.5
   説明:過去 1 秒間の平均 CPU 使用率

  ・cpuUtilisationMaxLast5Minutes
   OID:1.3.6.1.4.1.207.8.4.4.3.3.6
   説明:過去 5 分間の最大 CPU 使用率

  ・cpuUtilisationAvgLast5Minutes
   OID:1.3.6.1.4.1.207.8.4.4.3.3.7
   説明:過去 5 分間の CPU 使用率の平均

 【メモリ使用状況】

  ・freeMemory
   OID:1.3.6.1.4.1.207.8.4.4.3.7.1
   説明:使用可能なメモリ容量(空メモリ容量をパーセンテージで表示)
.1.3.6.1.4.1.207.8.4.4.3.3. と 1.3.6.1.4.1.207.8.4.4.3.7. のデータを取得すればいいようです。この範囲を指定して必要な部分だけを取得できるかも確認しておきましょう。
CPU負荷
snmpwalk -v 2c -c public 192.168.x.x .1.3.6.1.4.1.207.8.4.4.3.3

メモリ
snmpwalk -v 2c -c public 192.168.x.x .1.3.6.1.4.1.207.8.4.4.3.7

でも、mib2zabbixプログラムはプライベートMIBが使えるようになっていないとうまく作れませんのでサーバにインストールします。

標準のMIBSはここに入っています。

/usr/share/snmp/mibs/

アライドのSWはどの機種でもCPUメモリのプライベートMIBは同じようです。どの機種のものでもよかったのですが今回AT-x510用のプライベートMIBをこちらからダウンロードしました。シリアルナンバーが必要です。 https://www.allied-telesis.co.jp/support/list/all/sheet/supportpermit.html?url=support/list/switch/x510/download.html

ダウンロードしたファイル:5.5.1-2-mibs.zip を展開しプライベートMIBSは別フォルダに入れることにします。
/usr/share/snmp/my-mibs/ 
配置したプライベートMIBSを読み込ませます。/etc/snmp/snmp.conf に次のように書いて
MIBDIRS /usr/share/snmp/mibs:/usr/share/snmp/my-mibs
MIBS all
snmpdを再起動
systemctl restart snmpd
再度実行するとプライベートMIBを読み込んで説明付きで表示されればOKです。
AT-SYSINFO-MIB::cpuUtilisationMax.0 = INTEGER: 14
AT-SYSINFO-MIB::cpuUtilisationAvg.0 = INTEGER: 5
AT-SYSINFO-MIB::cpuUtilisationAvgLastMinute.0 = INTEGER: 5
AT-SYSINFO-MIB::cpuUtilisationAvgLast10Seconds.0 = INTEGER: 5
AT-SYSINFO-MIB::cpuUtilisationAvgLastSecond.0 = INTEGER: 5
AT-SYSINFO-MIB::cpuUtilisationMaxLast5Minutes.0 = INTEGER: 17
AT-SYSINFO-MIB::cpuUtilisationAvgLast5Minutes.0 = INTEGER: 6
AT-SYSINFO-MIB::cpuUtilisationStackId.1 = Gauge32: 1
AT-SYSINFO-MIB::cpuUtilisationStackMax.1 = INTEGER: 14
AT-SYSINFO-MIB::cpuUtilisationStackAvg.1 = INTEGER: 5
AT-SYSINFO-MIB::cpuUtilisationStackAvgLastMinute.1 = INTEGER: 5
AT-SYSINFO-MIB::cpuUtilisationStackAvgLast10Seconds.1 = INTEGER: 5
AT-SYSINFO-MIB::cpuUtilisationStackAvgLastSecond.1 = INTEGER: 5
AT-SYSINFO-MIB::cpuUtilisationStackMaxLast5Minutes.1 = INTEGER: 17
AT-SYSINFO-MIB::cpuUtilisationStackAvgLast5Minutes.1 = INTEGER: 6


AT-SYSINFO-MIB::freeMemory.0 = INTEGER: 79
AT-SYSINFO-MIB::totalBuffers.0 = INTEGER: 31088640

3. mib2zabbixで、MIBSからzabbixテンプレに変換

mib2zabbix公式サイト https://github.com/zabbix-tools/mib2zabbix/ をブラウザでアクセスして確認します。インストール手順を参考にローカルにコピーします。記載されていたのはcurlでする手順でしたがgitでやりました。好きな方法でどうぞ。
git clone https://github.com/cavaliercoder/mib2zabbix
cd mib2zabbix

いよいよ mib2zabbix でzabbixテンプレ作成します。アライドSWで取得したい mibがCPUとメモリで2か所に分かれているので、テンプレをそれぞれ2つ作っています。あとでZabbix上で1つにマージしますので大丈夫です。

  • -f 出力するxmlテンプレ名
  • -N Zabbixで識別されるテンプレ名、ほかと被らないようにする。

こんな感じで。perlのパッケージが足らないとかエラーが出たら適宜追加してください。

snmptranslate -Tz | ./mib2zabbix.pl -o .1.3.6.1.4.1.207.8.4.4.3.3 -f template-AT-SYSINFO-CPU.xml -N AT-SYSINFO-CPU -e
snmptranslate -Tz | ./mib2zabbix.pl -o .1.3.6.1.4.1.207.8.4.4.3.7 -f template-AT-SYSINFO-MEM.xml -N AT-SYSINFO-MEM -e
実行時エラーが出ていますがxmlファイルが出力されたのでよしとします。
・
・
Smartmatch is experimental at ./mib2zabbix.pl line 475.
Use of uninitialized value $val in string ne at /usr/share/perl5/vendor_perl/XML/Simple.pm line 924.

Zabbixに作った2つのテンプレをインポートして問題なく読み込まれればここまでOKです。

AT-SYSINFO-CPU.xml
AT-SYSINFO-MEM.xml
アライドSWを、監視対象のホストとして登録し、テンプレを適用してCPUとメモリリソースが取得できることを確認します。

4. ZabbixのGUIで2つのテンプレをマージとグラフとダッシュボードを作成

2つのテンプレに分かれているのは不便ですので1つにマージして、ついでにあとグラフとダッシュボードもZabbixのGUIで作りました。そうして作ったものをエクスポートしたのがtemplate-AT-SYSINFO.xmlです。Zabbixでの手順は
  • AT-SYSINFO-CPUテンプレをAT-SYSINFOに複製して保存。
  • AT-SYSINFO-MEMテンプレのアイテムをAT-SYSINFOにコピーしまとめる。
  • AT-SYSINFOテンプレでグラフとダッシュボードを作成。
AT-SYSINFO-CPU.xmlとAT-SYSINFO-MEM.xmlのテンプレでそれぞれMIBSを取得するマクロ{$OID}を、テンプレを1つにマージするにあたって、このようにカンマでつなげると、うまく2つのデータが取得できました。
.1.3.6.1.4.1.207.8.4.4.3.3, .1.3.6.1.4.1.207.8.4.4.3.7

完成したテンプレートがこちらです。 template-AT-SYSINFO.xml

作った AT-SYSINFO テンプレートを使ってみる

監視データ>ホスト>(監視対象のスイッチの)ダッシュボードをクリックします。実際にGS970EMXのCPUとフリーメモリをモニタしたところの画像。5分間のピーク値で50%に達していることもありますが1分平均だと5-6%負荷なので問題ないことが見て取れます。

 

アライドSWで取得できるCPUのOIDは公式FAQページ(*1)に6個が説明されていましたが、次の4つあるいは3つを見ると傾向がわかるのではないでしょうか。平均値はピーク値が十分反映されないことに気を付けます。スパイク的に瞬間で負荷がかかっているのかずーっと負荷がかかっているのかということを読み取りましょう。ネットワーク変だなという時、もしかすると5分平均50%でも1分平均や10秒平均が70%だとピークでは100%に達しているかもしれません。

  • AvgLast1Seconds 過去 1 秒間の平均 CPU 使用率
  • AvgLast10Seconds 過去 10 秒間の平均 CPU 使用率 ★
  • AvgLastMinute 過去1分間の平均CPU使用率 ★
  • MaxLast5Minutes 過去 5 分間の最大 CPU 使用率 ★

テンプレを久しぶりに作ったので大分忘れていましたが動くテンプレができて良かったです。Zabbix本体も7.0はずいぶん直感的に操作できるようになってていい感じです。

この方法で作成したテンプレ配布の法的な点につきましては、mib2zabbixはフリーソフトとして配布していると記載されています。それでテンプレの中にmib2zabbixで作成したと記載されている箇所についてはそのまま残して利用していただければ再配布についても問題ないと考えております。

以上お役に立てば幸いです。

コメント

このブログの人気の投稿

OfficeのISOダウンロード直リンク

FortiGateシリーズ 40F/50E/60E/60F/80F/90E/100E/100F/200FのCPU

ネクストのIPv6網内折り返し通信で高速VPN