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 rosnmpwalkでデータを取得できることを確認しておきます。
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 allsnmpdを再起動
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テンプレでグラフとダッシュボードを作成。
.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で作成したと記載されている箇所についてはそのまま残して利用していただければ再配布についても問題ないと考えております。
以上お役に立てば幸いです。
コメント
コメントを投稿