Indusol#PROmesh P10+_Part03_SNMP Serverをアクセスしよう

こちらはIndusol社のネットワーク機器記事の第3話を展開していきます。PROmesh P10+にSNMP Serverがあり、今回はSeeedStudioのrecomputer1025とNode-Redを使用し、PROmesh P10+のSNMP Serverにアクセスする方法を紹介します。

さ、FAを楽しもう。

Reference Link

http://soup01.com/ja/category/indusol/

http://soup01.com/ja/category/seeedstudio/

SNMP?

SNMP(Simple Network Management Protocol)は、IPネットワーク上のネットワーク機器やアプリケーションを管理・監視するために広く使われているプロトコルです。 インターネットプロトコルスイートの一部であり、ネットワークデバイス間の管理情報の交換を容易にし、管理者がネットワークのパフォーマンスを管理し、ネットワークの問題を発見して解決し、ネットワークの成長を計画することを可能にします。

Main Characteristics

Client-Server Model

SNMPはクライアント・サーバー・アーキテクチャで動作できます。 

  • クライアントは通常、管理ステーションです。
  • サーバーはルーター、スイッチ、サーバー、プリンターなどのネットワーク・デバイス(管理対象デバイスとも呼ばれる)です。

Agents and Managers

  • Agentsは管理対象デバイス上で実行されるソフトウェアコンポーネントで、管理データの収集と保存、および管理アプリケーションからのリクエストへの応答を担当します。
  • Managerはエージェントと通信し、データの収集、コマンドの送信、ネットワーク状況に関する通知(トラップ)の受信を行うソフトウェアアプリケーションです。

Management Information Base (MIB)

MIBは、管理対象デバイスのプロパティを定義する階層型データベースであり、デバイスのデータ・ポイントを記述するデータ・モデルで構成されています。 監視または制御可能な各変数はMIBに定義されています。

Polling and Traps

SNMPは主に2つのモードで動作しています。

  • Polling: Managerは定期的にエージェントに情報を問い合わせる。
  • Traps: Agentsは、特定のイベントが発生すると、Managerに未承諾の通知を送る。

Versions

SNMPには複数のバージョンがあり、最も一般的なのはSNMPv1、SNMPv2c、SNMPv3です。

  • SNMPv1: オリジナルのSNMP版で、セキュリティなしの基本機能を提供します。
  • SNMPv2c: エラー処理の改善やデータの一括取得などの改良が加えられたが、強力なセキュリティには欠けています。
  • SNMPv3: 暗号化や認証などのセキュリティ機能を追加し、旧バージョンの脆弱性に対応するようになります。

Applications of SNMP

SNMPは色々な場面で使用でき、SNMPは その使いやすさ、多用途性、多数のデバイスで動作する能力により、ネットワーク管理者にとって不可欠なツールとなっています。 

Network Monitoring 

ネットワークのパフォーマンス、可用性の追跡、障害の検出に使用される。

Configuration Management

デバイスのリモート設定を可能にし、管理者が必要に応じて設定やパラメータを変更できるようにします。

Fault Detection

デバイスの故障やネットワーク・トラフィックの異常について管理者に自動的にアラート。

Reporting and Analysis

ネットワーク傾向を分析し、ネットワーク計画を支援するために使用できるパフォーマンス測定基準を収集します。

Advantage?

SNMPを活用することで、組織はネットワーク・インフラを効果的に維持し、最適化することができます。

Simplicity

SNMPは実装も使用も簡単で、さまざまな機器やアプリケーションに適しています。

Interoperability

SNMPは、さまざまなメーカーのさまざまなデバイスをサポートしているため、多様な環境に簡単に統合できます。

Standardized

インターネット技術タスクフォース(IETF)標準の一部であるため、業界で広く採用されています。

Implementation

InduSol side

最初にIndusolのPROmesh P10+にあるSNMP Serverをツールからアクセスしています。

Download oid mib tools

こちらは今回使用するSNMP Browingの無償ツールです。下記のLinkからツールをDownloadし、PCにインストールしてください。

https://www.ireasoning.com/downloadmibbrowserfree.php

Browse oid object

先程インストールしたMIB Browserツールを起動します。

次はAddress欄にPROmesh P10+のIPアドレスを入れてください。

OpertaionのDrop-ListからGet Nextを選択します。

Done!!PROmesh P10+のsys.Descr.0(1.3.6.1.2.1.1.10)の現在値が取得できました。

1つずつ取るのは面倒なので、OperationからWalkコマンドを発行します。

Done!PROmesh P10+のSNMP ServerあるOIDとその現在値を全部取得しました。

例えばsysDescr.0のOIDを知りたい場合、そのsysDescr.0の欄を選択すれば、OID欄で該当するアイテムのOID値が表示されます。

Add User

今度はSNMP V3を使用するために、PROmesh P10+にUserを追加します。System Configuration>SNMPをクリックします。

こちらはSNMPのCommunity StringやUserの設定画面になります。

SNMP v3の項目で新しいUserを追加しましょう。

Node-red side

先ほどエンジニアリングツールからSNMP Serverの接続を確認しましたので、次はNode-RedからPROmesh P10+にアクセスしてみます。

Install Flow

今回記事で使用するのはこちらのNodeになります。

node-red-node-snmp

https://flows.nodered.org/node/node-red-node-snmp/in/1rPldOSqKt6M

Node-red-node‐snmpをインストール成功したら、下図のNodeが追加されます。

Flow1‐First Access to SNMP Server

最初のFlowはInject Nodeを使用し、取得したいデータのOIDをSNMPノードに送信し、PROmesh P10+から結果を受け取ります。

inject nodeのPropertiesからmsg.oid、そしてString Formatのパラメータを追加します。

また、msg.oidの値は先程エンジニアリングツールから取得した値を設定します。

次はSNMP NodeをFlowに追加します。

Configure the SNMP Node

次はSNMP Nodeno設定を行います。

Host

HostはPROmesh P10+のIPアドレスになります。

Version

PROmesh P10+はVersion V1/V2c/V3も対応していますので、アプリケーションに合わせて設定していきましょう。

Timeout

リクエストのTimeout時間はネットワークの負荷に応じて設定してください。

Community

今回はSNMP v2cを設定しますので、CommunityはPROmesh P10+に合わせて設定しましょう。

OIDs

OIDsは先程Inject Nodesの中に設定しましたので、ここは空きのままでOKです。

Inject the flow

次はInjectの出力とSNMP Nodeの入力が繋がります。

Switch the Condition

今度はSNMPのノード出力にSwitch Nodeを追加します。

SNMP Nodeの出力結果によって分岐を作成します。

Add Functions

Switch Nodeからの出力によって異なるFunction Nodeと接続します。

Function7

こちらはOctetStringから直接文字列変換する関数です。

var data=msg.payload[0].value;

var d=Buffer.from(data).toString();
msg.payload=d;
return msg;
Function6

こちらはTimeTicksを文字列に変換する関数になります。

var timeticks=msg.payload[0].value;

let totalSeconds = Math.floor(timeticks / 100);

const days = Math.floor(totalSeconds / 86400);
totalSeconds %= 86400;

const hours = Math.floor(totalSeconds / 3600);
totalSeconds %= 3600;

const minutes = Math.floor(totalSeconds / 60);
const seconds = totalSeconds % 60;

var workTime=String(days)+”d”+String(hours)+”h”+String(minutes)+”m”+String(seconds)+”s”;


msg.payload=workTime;
return msg;
Function8

こちらは整数から文字列に変更する関数です。

var data=msg.payload.value;

msg.payload=String(data);

return msg;

Debug Output

最後は出力結果を確認するためのDebug Nodeを追加しましょう。

Result

Done!PROmesh P10+のSNMP Serverに無事にアクセスでき、データも変換できました。

Flow2‐Request more oids in one inject

Flow2では1つのInjectで複数のOIDS Objectにアクセスする方法を紹介します。

Add Inject

先ほどのFlowにInjectとFunction Nodeを追加します。

Function9

OIDのプロパティにアクセスしたいOIDS間を”,”で分けておけばOKです。

var base =”1.3.6.1.2.1.2.2.1.8.”
var oid = base + “1,” + base + “2,” + base + “3,”+base + “4,” + base + “5,” + base + “6,”+base+”7,”+base+”8,”+base+”9,”+base+”10″;
msg.oid=oid;
return msg;

SNMP Nodeと接続します。

Result

Done!複数のOIDSのデータを取得できました。

Flow3‐Use Walker

最後はWalker Nodeを使用します。

Configure Walker Node

こちらはWalker Nodeの設定画面になります。

Host

Host 欄はPROmesh P10+のIPアドレスになります。

Version

今回はSNMP V3を使用します。

Auth

Walker Nodeの認証方法を”AuthNoPriv”に設定します。これはパスワードのみの認証になります。

Username

Auth Keyは先程PROmesh P10+で追加したSNMP v3  Userの名になります。

Auth Key

Auth Keyは先程PROmesh P10+で追加したSNMP v3  Userのパスワードになります。

Auth Port

Auth Keyは先程PROmesh P10+で追加したSNMP v3  Userの認証方式になります。

Result

Done!Walker NodeからPROmesh P10+のSNMP Nodeを取得できました。

Footer_Basic

Please Support some devices for my blog

Amazon Gift List

Find ME

Twitter:@3threes2
Email:soup01threes*gmail.com (* to @)
YoutubeChannel:https://www.youtube.com/channel/UCQ3CHGAIXZAbeOC_9mjQiWQ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする