概要
このドキュメントでは、Cisco Wireless LAN Controller(WLC)でSNMPを設定およびモニタする方法について説明します。
前提条件
要件
オペレーティングシステムにデフォルトのSNMPツールがあるか、またはインストールに関する知識があることが推奨されます。
使用するコンポーネント
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。 すべてのテストは、イメージバージョン8.9およびMacOS 10.14を実行する3504 WLCで実行されました。 この記事のOIDは、以前のAireOSリリース(8540/5508/5520/2504)およびその他のAireOSベースのワイヤレスコントローラ(8540/5508/5520/2504)でも有効です。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
WLCでのSNMP設定
SNMPv2cはSNMPのコミュニティベースのバージョンであり、デバイス間のすべての通信はクリアテキストで行われます。SNMPv3は、パケットのメッセージ整合性チェック、認証、および暗号化を提供する最も安全なバージョンです。SNMPv1は非常に古いものですが、レガシーソフトウェアの互換性を提供するために残されています。
注:SNMPv2cは、読み取りおよび書き込み権限を持つコミュニティ「private」および読み取り専用権限を持つコミュニティ「public」でデフォルトで有効になっています。これらを削除し、別の名前で新しいコミュニティを作成することをお勧めします。
この記事では、SNMPv2cとSNMPv3のみを使用します。コントローラのWebインターフェイスにログインします。通常の Management > SNMP > General
必要なバージョンのプロトコルが有効になっていることを確認します。
コミュニティメニューの下に、現在作成されているすべてのコミュニティが表示されます。
デフォルトの事前設定されたコミュニティを削除し、新しいコミュニティを作成することがベストプラクティスです。IPアドレスとネットマスクは、アクセスリストのように動作します。デフォルトでは、両方とも0.0.0.0に設定されています。これは、すべてのIPアドレスがこのコミュニティに対してSNMPクエリーを実行できることを意味します。このコミュニティはモニタにのみ使用し、WLCの設定には使用しないため、アクセスモードフィールドは「読み取り専用」のままです。
注:8.7.1.135よりも前のすべてのバージョンは、Cisco Bug ID CSCvg61933の影響を受けます。この場合、ネットマスクを255.255.255.255に設定することはできません。コントローラを8.7.1.135より後の最新の推奨リリースにアップグレードするか、CLIでこのコマンドを使用して新しいコミュニティを作成します config snmp community ipaddr
を参照。
SNMP V3 Usersメニューの下に、設定されているすべてのユーザ、その権限、および認証と暗号化に使用されるプロトコルが表示されます。Newボタンを押すと、新しいユーザを作成できます。認証プロトコルとしてHMAC-SHAを、プライバシープロトコルとしてCFB-AES-128を選択することを推奨します。認証とプライバシーパスワードをに設定した「admin」という名前のユーザを作成します。 Cisco123Cisco123
を参照。
オブジェクト名とオブジェクトID(OID)
オブジェクト名とOIDとは何ですか。
OIDは、特定の変数またはオブジェクトを表す一意の識別子です。たとえば、現在のCPU使用率は、オブジェクトIDを呼び出すときに値を取得できる変数と見なされます。各OIDは一意であり、MACアドレスに非常によく似た2つのOIDが世界中で同じである必要はありません。これらの識別子はツリー階層にあり、各OIDをルートまで追跡できます。各ベンダーは、共通のルートの後に独自のブランチを持っています。
たとえば、自宅の住所を指定できます。ルートは国または州、都市の郵便番号、番地、そして最後に自宅の番号です。
ドットの後に続く数字は、そのツリーまたはブランチの特定のポイントに到達するために必要な各ステップを表します。
これらの値はすべて、各ネットワークデバイスのManagement Information Base(MIB;管理情報ベース)に保存されます。各識別子には、名前と定義(使用可能な値の範囲、タイプなど)があります。
SNMPを使用してデバイスにクエリを実行するためにSNMPツールにMIBをロードする必要はありません。有効なOIDが既知である限り、デバイスはOIDが表す変数に格納された値で応答します。たとえば、次の図に示すように、SNMPマネージャはOID 1.3.6.1.2.1.1.1.0を使用してデバイスのSNMPエージェントにシステム説明を照会します。
MIBをクエリーツールにロードすると、これを使用してOID番号を名前に変換し、その定義を検出できます。
MIBおよびCisco WLC上のすべてのオブジェクト名とIDのリスト
2019年5月の時点では、すべての利用可能なオブジェクト名とそれぞれのWireless LAN Controller用のOIDを含むシンプルで使いやすいテーブルは存在しません。代わりに、シスコではManagement Information Base(MIB;管理情報ベース)を提供しています。MIBは読みやすいものの、利用可能なすべてのオブジェクト名とその説明が含まれています。Cisco 3504 WLC MIBは、ここからダウンロードできます。
ダウンロードしたアーカイブファイルには複数のファイルが含まれています .my
テキストファイル。サードパーティのSNMP監視サーバにインポートしたり、通常のテキストエディタで開いたりできます。特定のオブジェクト名のOIDを見つけるには、まずそれを含む正確なファイルを見つける必要があります。
たとえば、デバイスの物理状態(温度やファン速度など)の監視に関連するすべてのオブジェクトは、という名前のMIB内にあります CISCO-ENVMON-MIB.my
を参照。Here, ciscoEnvMonFanState
は、WLCファンの状態を提供するために使用されるオブジェクト名です。MIBファイルの構文は次のとおりです。ファン状態オブジェクトの情報は次のようになります。
ciscoEnvMonFanState OBJECT-TYPE
SYNTAX CiscoEnvMonState
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current state of the fan being instrumented."
::= { ciscoEnvMonFanStatusEntry 3 }
ほとんどのサードパーティ製モニタリングソフトウェアは、オブジェクト名ではなくOIDを使用します。オブジェクト名とオブジェクトID間の変換は、Cisco SNMPオブジェクトナビゲータツールを使用して実行できます。 検索バーにオブジェクト名を入力します。出力には、OIDと簡単な説明が含まれています。 さらに、同じツールを使用して、OIDの対応するオブジェクト名を検索できます。
OIDを使用したWLCの状態の監視
監視する必要があるオブジェクトのOIDを取得した後、最初のSNMPクエリーを実行できます。次の例は、SNMPv2コミュニティのコアごとのWLC CPU使用率(OID = 1.3.6.1.4.1.9.9.618.1.4.1)を取得する方法を示しています snmp_test
およびSNMPv3ユーザ admin
SHA認証パスワードを使用 Cisco123Cisco123
およびAESプライバシーパスワードをに設定 Cisco123Cisco123
を参照。コントローラ管理インターフェイスは10.48.39.164にあります。
SNMPwalkによる監視
SNMPwalkは、SNMP GETNEXT要求を使用してネットワークエンティティに情報ツリーを照会するSNMPアプリケーションです。MacOSやほとんどのLinuxディストリビューションではデフォルトで存在します。SNMPv2cの場合、コマンドの構文は次のとおりです。
snmpwalk -v2c -c <community_name> <WLC_management_interface_ip> <OID>
例:
VAPEROVI-M-H1YM:~ vaperovi$ snmpwalk -v2c -c snmp_test 10.48.39.164 1.3.6.1.4.1.9.9.618.1.4.1
SNMPv2-SMI::enterprises.9.9.618.1.4.1.0 = STRING: "0%/1%, 0%/1%, 0%/1%, 0%/1%"
SNMPv3を使用する場合、コマンドの構文は次のとおりです。
snmpwalk -v3 -l authPriv -u <username> -a [MD5|SHA] -A <auth_password> -x [AES|DES] -X <priv_password> <WLC_management_interface_ip> <OID>
コントローラでのSNMPv3ユーザの作成方法に基づいて、MD5/SHAおよびAES/DESを選択します。
例:
VAPEROVI-M-H1YM:~ vaperovi$ snmpwalk -v3 -l authPriv -u admin -a SHA -A Cisco123Cisco123 -x AES -X Cisco123Cisco123 10.48.39.164 1.3.6.1.4.1.9.9.618.1.4.1
SNMPv2-SMI::enterprises.9.9.618.1.4.1.0 = STRING: "0%/1%, 0%/1%, 0%/0%, 0%/1%"
Python 3および pysnmp
ライブラリ
これらのコードスニペットはPython 3.7で記述されており、 pysnmp
モジュール(pip install pysnmp
)を使用して、Cisco 3504 WLCのCPU使用率に関するSNMPクエリを実行します。これらの例では、前のいずれかの章で作成したものと同じSNMPv2コミュニティとSNMPv3ユーザを使用します。単に変数の値を置き換え、コードを独自のカスタムスクリプトと統合するだけです。
SNMPv2cの例:
from pysnmp.hlapi import *
communityName = 'snmp_test'
ipAddress = '10.48.39.164'
OID = '1.3.6.1.4.1.14179.2.3.1.13.0'
errorIndication, errorStatus, errorIndex, varBinds = next(
getCmd(SnmpEngine(),
CommunityData(communityName),
UdpTransportTarget((ipAddress, 161)),
ContextData(),
ObjectType(ObjectIdentity(OID)))
)
if errorIndication:
print(errorIndication)
elif errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))
else:
for varBind in varBinds:
print(' = '.join([x.prettyPrint() for x in varBind]))
出力:
SNMPv2-SMI::enterprises.14179.2.3.1.13.0 = 73
SNMPv3の例:
from pysnmp.hlapi import *
username = 'admin'
ipAddress = '10.48.39.164'
OID = '1.3.6.1.4.1.14179.2.3.1.13.0'
authKey = 'Cisco123Cisco123'
privKey = 'Cisco123Cisco123'
errorIndication, errorStatus, errorIndex, varBinds = next(
getCmd(SnmpEngine(),
UsmUserData(username, authKey, privKey,
authProtocol=usmHMACSHAAuthProtocol,
privProtocol=usmAesCfb128Protocol),
UdpTransportTarget((ipAddress, 161)),
ContextData(),
ObjectType(ObjectIdentity(OID)))
)
if errorIndication:
print(errorIndication)
elif errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))
else:
for varBind in varBinds:
print(' = '.join([x.prettyPrint() for x in varBind]))
サードパーティソフトウェアとの統合(Grafana/PRTG Network Monitor/SolarWinds)
Cisco Prime Infrastructureは、ワイヤレスコントローラを含む複数のネットワークデバイスを簡単に監視および設定する機能を提供します。Prime InfrastructureにはすべてのOIDがプリロードされており、WLCとの統合はPrimeへのWLCクレデンシャルの追加だけで構成されます。同期後は、複数のワイヤレスコントローラに対してアラームを設定し、設定テンプレートを一度にプッシュできます。
一方、Cisco WLCは、OIDが既知である限り、複数のサードパーティ製モニタリングソリューションと統合することもできます。Grafana、PRTG Network Monitor、およびSolarWindsサーバなどのプログラムを使用すると、MIBまたはOIDをインポートして、値を使いやすいグラフで表示できます。
この統合に対応するために、モニタリングサーバの調整が必要になる場合があります。図に示す例では、PRTG監視サーバに、文字列を返すコアごとのCPU使用率OIDが提供されています 0%/1%, 1%/1%, 0%/1%, 0%/1%
を参照。PRTGには整数値が必要ですが、エラーが発生します。
最も一般的にモニタされるOIDの表
MIBのデータがユーザにとってわかりやすい構文で表示されていると考えられる場合は、次の表に、シスコのお客様が使用する最も一般的なオブジェクト名とそのOIDの一部を示します。
説明 |
Object Name |
OID |
予想される応答 |
全体的なCPU使用率(%) |
agentCurrentCPUUtilization |
1.3.6.1.4.1.14179.1.1.5.1.0 |
整数: 0 |
コアあたりのCPU使用率 |
clsAllCpuUsage |
1.3.6.1.4.1.9.9.618.1.4.1.0 |
文字列: 0%/1%、0%/1%、0%/1%、0%/1% |
RAM使用率(%) |
clsSysCurrentMemoryUsage |
1.3.6.1.4.1.9.9.618.1.8.6.0 |
ゲージ32: 33 |
CPU温度(°C) |
bsnSensorTemperature |
1.3.6.1.4.1.14179.2.3.1.13.0 |
整数: 76 |
加入しているAPの数 |
clsSysApConnectCount |
1.3.6.1.4.1.9.9.618.1.8.4.0 |
ゲージ32: 2 |
クライアント数 |
clsMaxClientsCount |
1.3.6.1.4.1.9.9.618.1.8.12.0 |
ゲージ32: 0 |
WLANあたりのクライアント数 |
bsnDot11EssNumberOfモバイルステーション |
1.3.6.1.4.1.14179.2.1.1.1.38.0 |
カウンタ32: 3 カウンタ32: 2 |