
YAMAHA RTX-830 のメトリクスを
SNMPv3で取得してGrafanaでグラフ化する
ルーターからのメトリクス取得にSNMPv3を使ってみる
先日はYAMAHAのRTX-1200のデータをsnmp_exporter・Prometheus経由でGrafanaに取り込みグラフ化まで行きました。
今回は、RTX-830に対しても同様の作業を行いつつ、SNMPv3を使ってデータを取得することにチャレンジしてみました。ルーター側の制約もあったりで、結構苦労した部分もあるため作業メモとして残します。
以下、SNMPv3を使用した理由など。単純に、新しいバージョンでも試してみたいという理由もありますが。
- 従来の SNMPv1/v2 は平文送信でセキュリティが弱い
- RTX シリーズは SNMPv3(認証+アクセス制御)に対応
- Prometheus / Zabbix などの監視基盤との連携がしやすい
使用機材・環境・目的など
- 対象機種:YAMAHA RTX-830
- 監視側ツール:snmpwalk, snmp_exporter, Prometheus
- SNMPv3 モード:authNoPriv(認証のみ / 暗号化なし)
- 目的:最低限必要な CPU / メモリ / トラフィック / uptime の取得
RTX830 の SNMPv3 設定(実際に動いた構成)
今回もAIの助けを借りつつえっちらおっちらステップバイステップで作業。YAMAHAの機材はマニュアルしっかりしてるんですが、なかなか理解が難しくて試行錯誤の繰り返しでした。
SNMPv3周りの設定は以下を追加しました。
snmpv3 usm user 1 <USERNAME> group 1 sha <PASSWORD>
snmpv3 host any user 1
snmpv3 vacm view 1 include 1.3.6.1
snmpv3 vacm access 1 read 1 write 1
snmpv3 trap host <トラップ送信先IPアドレス> user 1
SNMPv3はVACM(ビューベースアクセス制御モデル)という仕組みでアクセス制御がされているので、これを設定しないと、データが何も返りません。
snmpv3 usm user でユーザーを作成、今回は暗号化についてはRTX-830が使用できる形式(aes128-cfb)と、snmp_exporter側の対応している形式の齟齬があるため、使用を諦めました。対応させる形で再構築するという選択肢は今回は見送りです。基本的な情報の取得のみに使用するという今回の用途を考慮して、authNoPrivで設定を進めました。
というか、このあたりの情報は、しっかりと勉強していないと、理解が難しいですね。調べながら、なんとなくで分かったつもりになっていますが、資料をよく読んで身に付けないとですね。
snmpv3 vacm view、snmpv3 vacm access、でアクセス可能なビューの範囲と読み書き権限を設定。これを設定しないとMIBビュー自体にアクセスできず、通信しているのに何もデータが返らないという悲しい結果に繋がります。
動作テスト
snmpwalkで基本的なデータが取れるかを試します。
$ snmpwalk -v3 -l authNoPriv -u <USERNAME> -a SHA -A <PASSWORD> <ルーターIPアドレス> 1.3.6.1.2.1.1.5.0
SNMPv2-MIB::sysName.0 = STRING: RTX-830 #システム名
$ snmpwalk -v3 -l authNoPriv -u <USERNAME> -a SHA -A <PASSWORD> <ルーターIPアドレス> 1.3.6.1.4.1.1182.2.1.4
SNMPv2-SMI::enterprises.1182.2.1.4.0 = Gauge32: 33 #メモリ使用率
$ snmpwalk -v3 -l authNoPriv -u <USERNAME> -a SHA -A <PASSWORD> <ルーターIPアドレス> 1.3.6.1.4.1.1182.2.1.5
SNMPv2-SMI::enterprises.1182.2.1.5.0 = Gauge32: 0 #CPU使用率
VACMの設定が正しくされていないと、通信しているのに空っぽのデータが返ってきます。そんな時はルーター側の設定を見直す感じですね。
snmp_exporter用設定ファイル生成
generator用のgenerator.ymlはこちら
auths:
yamaha_rt830_v3_auth: # v3用の認証情報
version: 3
username: <USERNAME>
security_level: authNoPriv
password: <PASSWORD>
auth_protocol: SHA
modules:
rtx830:
walk:
- ifInOctets
- ifOutOctets
- yrhCpuUtil5sec
- yrfUpTime
- yrhMemoryUtil
- sysUpTimeInstance
以下のコマンドで、snmp_exporter用の設定ファイルを生成。
$ ./generator -m "./yamaha-private-mib:/usr/share/snmp/mibs" generate
$ cat snmp.yml
# WARNING: This file was auto-generated using snmp_exporter generator, manual changes will be lost.
auths:
yamaha_rt830_v3_auth:
community: public
security_level: authNoPriv
username: <USERNAME>
password: <PASSWORD>
auth_protocol: SHA
priv_protocol: DES
version: 3
modules:
rtx830:
walk:
- 1.3.6.1.2.1.1.3.0
- 1.3.6.1.2.1.2.2.1.10
- 1.3.6.1.2.1.2.2.1.16
get:
- 1.3.6.1.4.1.1182.2.1.4.0
- 1.3.6.1.4.1.1182.2.1.5.0
- 1.3.6.1.4.1.1182.2.2.4.0
metrics:
- name: ifInOctets
oid: 1.3.6.1.2.1.2.2.1.10
type: counter
help: The total number of octets received on the interface, including framing
characters - 1.3.6.1.2.1.2.2.1.10
indexes:
- labelname: ifIndex
type: gauge
- name: ifOutOctets
oid: 1.3.6.1.2.1.2.2.1.16
type: counter
help: The total number of octets transmitted out of the interface, including
framing characters - 1.3.6.1.2.1.2.2.1.16
indexes:
- labelname: ifIndex
type: gauge
- name: yrhMemoryUtil
oid: 1.3.6.1.4.1.1182.2.1.4
type: gauge
help: The utilization in percentage of main memory. - 1.3.6.1.4.1.1182.2.1.4
- name: yrhCpuUtil5sec
oid: 1.3.6.1.4.1.1182.2.1.5
type: gauge
help: The average utilization of CPU in 5 seconds. - 1.3.6.1.4.1.1182.2.1.5
- name: yrfUpTime
oid: 1.3.6.1.4.1.1182.2.2.4
type: gauge
help: The time (in hundredths of a second) since the network management portion
of the system was last re-initialized - 1.3.6.1.4.1.1182.2.2.4
Grafanaでグラフ化

RTX-1200用のダッシュボードを再インポートして、取り込むデータをそれぞれのビュー内のLabel filtersで設定してRTX-830のメトリクスだけを表示するようにしました。
最低限の情報監視を行えるようにしてみる段階なので、今回は
sysUpTimeInstance: 実質的な起動時間yhrCpuUtil5sec: CPU 使用率yhrMemoryUtil: メモリ使用率ifInOctets/ifOutOctets: トラフィック
などのデータをグラフ化しています。
SNMPでのデータ取得の基本を勉強しました
ということで、SNMPv3を使ってデータ取得するまでの流れです。
基本的なデータを取りつつ、より複雑な監視に貼っていさせる準備ができたと思います。
今後は、どのような情報を見ていくべきかを検討して、改善していく予定です。


コメント