RTX-830 のメトリクスをSNMPv3で取得してGrafanaでグラフ化する

当ページのリンクには広告が含まれています。

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 viewsnmpv3 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: &lt;USERNAME>
    security_level: authNoPriv
    password: &lt;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を使ってデータ取得するまでの流れです。

基本的なデータを取りつつ、より複雑な監視に貼っていさせる準備ができたと思います。

今後は、どのような情報を見ていくべきかを検討して、改善していく予定です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次