はじめに
このドキュメントでは、Cisco ISEを監視するためにSimple Network Management Protocol(SNMP)トラップを設定し、理解する方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- 基本的なLinux
- SNMP
- Identity Services Engine(ISE)
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- Cisco ISE、リリース 3.1
- RHEL 7サーバ
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
SNMPトラップは、SNMP対応デバイスからリモートMIBサーバに送信されるUDPメッセージです。 ISEは、監視とトラブルシューティングを行うためにSNMPサーバにトラップを送信するように設定できます。このドキュメントの目的は、問題を切り分けるための基本的なチェックの一部を理解し、ISEトラップの制限を理解することです。
コンフィギュレーション
ISEはSNMP v1、v2、およびv3をサポートします。ISE CLIと残りの設定でSNMPが有効になっているかどうかを確認します。
たとえば、SNMP v3:
sotumu24/admin# conf t
Enter configuration commands, one per line. End with CNTL/Z.
sotumu24/admin(config)# snmp-server enable
sotumu24/admin(config)# snmp-server trap dskThresholdLimit "75"
sotumu24/admin(config)# snmp-server community SNMP$tring ro
sotumu24/admin(config)# snmp-server user SNMPUSER v3 plain authpasswd privpasswd
sotumu24/admin(config)# snmp-server host 10.127.197.81 version 3 SNMPUSER 0x474b49494c49464e474943 plain authpasswd privpasswd
>> The SNMP server might require the engineID if version 3 is being used and it can be dervied from the output of the command here :
sotumu24/admin# show snmp-server engineID
Local SNMP EngineID: GKIILIFNGIC
>> This is the same as ISE Serial number, need not be configured.
sotumu24/admin# sh udi
SPID: ISE-VM-K9
VPID: V01
Serial: GKIILIFNGIC
ポートと到達可能性
リモートサーバは、必要に応じてトラップをクエリーするためにISEに到達できる必要があります。ISEがSNMPサーバのIPアクセスを許可していることを確認します(設定されている場合)。
ISE CLIでポート161が開いているかどうかを確認します。
sotumu24/admin# sh ports | in 161
udp: 0.0.0.0:25087, 0.0.0.0:161
--
tcp: 169.254.0.228:49, 10.127.197.81:49, 169.254.0.228:50, 10.127.197.81:50
, 169.254.0.228:51, 10.127.197.81:51, 169.254.0.228:52, 10.127.197.81:52, 127.0.
0.1:8888, 10.127.197.81:8443, :::443, 10.127.197.81:8444, 10.127.197.81:8445, ::
:9085, 10.127.197.81:8446, :::19231, :::9090, 127.0.0.1:2020, :::9060, :::9061,
:::8905, :::8009, :::5514, :::9002, :::1099, :::8910, :::61616, :::80, :::9080
ログ
SNMPサービスデーモンが停止しているか、再起動できない場合、メッセージログファイルにエラーが記録されます。
2020-04-27T12:28:45.326652+05:30 sotumu24 su: (to oracle) root on none
2020-04-27T12:29:48.391712+05:30 sotumu24 snmpd[81079]: Received TERM or STOP signal... shutting down...
2020-04-27T12:29:48.590240+05:30 sotumu24 snmpd[47597]: NET-SNMP version 5.7.2
2020-04-27T12:30:29.319929+05:30 sotumu24 rsyslogd: [origin software="rsyslogd" swVersion="7.4.7" x-pid="20126" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
トラップとクエリー
Cisco ISEでデフォルトで生成される汎用SNMPトラップ:
ISEには、プロセスステータスやディスク使用率に関するMIBはありません。Cisco ISEはOID HOST-RESOURCES-MIB::hrSWRunName をSNMPトラップに
使用します。プロセスのステータスやディスク使用率を照会するためのsnmp walkまたはsnmp getコマンドは、ISEでは使用できません。
詳細については、『Cisco Identity Services Engine管理者ガイド、リリース3.1』の「Cisco ISEを監視するためのSNMPトラップ」セクションを参照してください。
ラボでは、ディスク使用率がしきい値である75を超えたときにトリガーされるようにSNMPトラップが設定されています(sotumu24/admin(config)# snmp-server trap dskThresholdLimit "75")。
このトラップのデータは、表示されている出力から収集されます。
外部のLINUXボックスまたはSNMPサーバコンソールで次のコマンドを実行します。
Linux/admin# snmpwalk -v 3 -l authPriv -u SNMPUSER -a sha -x AES -A "authpasswd" -X "privpasswd" 10.127.197.217 dskPercent >> Gives the percentage of disk utilized. Also works with – hrStorageSize. UCD-SNMP-MIB::dskPercent.1 = INTEGER: 11 UCD-SNMP-MIB::dskPercent.6 = INTEGER: 0 UCD-SNMP-MIB::dskPercent.8 = INTEGER: 0 UCD-SNMP-MIB::dskPercent.9 = INTEGER: 0 UCD-SNMP-MIB::dskPercent.29 = INTEGER: 0 UCD-SNMP-MIB::dskPercent.30 = INTEGER: 23 UCD-SNMP-MIB::dskPercent.31 = INTEGER: 2 UCD-SNMP-MIB::dskPercent.32 = INTEGER: 5 UCD-SNMP-MIB::dskPercent.33 = INTEGER: 0 UCD-SNMP-MIB::dskPercent.34 = INTEGER: 0 UCD-SNMP-MIB::dskPercent.35 = INTEGER: 0 UCD-SNMP-MIB::dskPercent.36 = INTEGER: 0 UCD-SNMP-MIB::dskPercent.37 = INTEGER: 5 UCD-SNMP-MIB::dskPercent.39 = INTEGER: 0 UCD-SNMP-MIB::dskPercent.41 = INTEGER: 0 UCD-SNMP-MIB::dskPercent.42 = INTEGER: 0 UCD-SNMP-MIB::dskPercent.43 = INTEGER: 0 UCD-SNMP-MIB::dskPercent.44 = INTEGER: 0 Linux/admin# snmpwalk -v 3 -l authPriv -u SNMPUSER -a sha -x AES -A "authpasswd" -X "privpasswd" 10.127.197.217 dskPath >> Gives the list of disk path(s). Also works with – hrStorageDescr. UCD-SNMP-MIB::dskPath.1 = STRING: / UCD-SNMP-MIB::dskPath.6 = STRING: /dev/shm UCD-SNMP-MIB::dskPath.8 = STRING: /run UCD-SNMP-MIB::dskPath.9 = STRING: /sys/fs/cgroup UCD-SNMP-MIB::dskPath.29 = STRING: /tmp UCD-SNMP-MIB::dskPath.30 = STRING: /boot UCD-SNMP-MIB::dskPath.31 = STRING: /storedconfig UCD-SNMP-MIB::dskPath.32 = STRING: /opt UCD-SNMP-MIB::dskPath.33 = STRING: /localdisk UCD-SNMP-MIB::dskPath.34 = STRING: /run/user/440 UCD-SNMP-MIB::dskPath.35 = STRING: /run/user/301 UCD-SNMP-MIB::dskPath.36 = STRING: /run/user/321 UCD-SNMP-MIB::dskPath.37 = STRING: /opt/docker/runtime/overlay UCD-SNMP-MIB::dskPath.39 = STRING: /opt/docker/runtime/containers/ae1cef55c92ba90ae6c848bd74c9277c2fb52a48ab781455ec9b1149e4634d2c/shm UCD-SNMP-MIB::dskPath.41 = STRING: /run/user/0 UCD-SNMP-MIB::dskPath.42 = STRING: /run/user/304 UCD-SNMP-MIB::dskPath.43 = STRING: /run/user/303 UCD-SNMP-MIB::dskPath.44 = STRING: /run/user/322
これらの出力からディスク使用率が計算され、値が75に達すると、SNMPトラップが設定されたSNMPサーバのホストに送信されます。ディスク使用率を直接計算して表示するためのMIBリソースはありません。
さらに、MIBプロセスhrSWRunNameを使用してこの情報を収集します(『ISE管理者ガイド』を参照)。
この実行中のソフトウェアの説明。製造元、リビジョン、および一般的に知られている名前が含まれます。このソフトウェアがローカルにインストールされている場合、この文字列は、対応するhrSWInstalledName で使用されている文字列と同じである必要があります。考慮されるサービスは、app-server、rsyslog、redis-server、ad-connector、mnt-collector、mnt-processor、ca-server est-server、elasticsearchです。
MIBリソース
ISEアプリケーションはRHEL OS(Linux)でホストされます。ただし、ISE管理ガイドで説明されているように、ISEはホストリソースMIBを使用してSNMPトラップ情報を収集します。このドキュメントでは、クエリー可能なホストリソースMIB(HRSM)のリストを示します。
SNMPホストMIB。
このドキュメントから、CPU、メモリ、またはディスク使用率の値を計算して表示できる直接的なクエリがないと推測できます。ただし、出力の計算に使用されるデータは次のテーブルに存在します。
hrSWRunPerf テーブル
hrDiskStorage テーブル
- Scalarsテーブル
メモリおよびディスク使用率に関するその他のポインタ
使用メモリ
使用メモリを計算するには、次のコマンドを使用します。
mem_used = kb_main_total - kb_main_free - kb_main_cached - kb_main_buffers;
kb_main_cached = kb_page_cache + kb_slab_reclaimable;
Free Memory
SNMPサーバで収集される値とISE CLIのroot-bashで収集される値には、わずかな違いがあります。メモリ使用率は、SNMPでは考慮されないslabによる値の違いもあり、合計値を示します。
空きメモリは、現在使用されていない少量のメモリであり、この違いを引き起こします。これは、システムが使用できないメモリの無駄な部分です。 ISEはLinux OSでホストされ、効率性を高めるために、現在のプログラムで必要とされないすべての物理メモリをファイルキャッシュとして使用します。しかし、プログラムがこの物理メモリを必要とする場合、カーネルはファイルキャッシュメモリを前者に再割り当てします。したがって、ファイルキャッシュが使用するメモリは空いていますが、プログラムが必要とするまで使用されません。
空きメモリの説明を参照してください。
ディスク使用率
同様に、ファイルの断片化を減らすために、ファイルシステムの最大5 %がrootユーザ用に予約されています。この出力は「df」には表示されません。
したがって、ルートbashで計算されたパーセンテージと、その後のCLI出力では、わずかな違いが見られることが予想されます。
SNMPクエリでは、この予約ディスク領域は考慮されず、テーブルに表示された値に基づいて出力が計算されます。
詳細は、『df出力の違い』と『df出力の予約ディスク領域』を参照してください。
関連情報