目录

简介

先决条件

要求

使用的组件

背景信息

配置

端口和可达性

简介

本文档介绍如何配置和理解简单网络管理协议(SNMP)陷阱以监控Cisco ISE。

先决条件

要求

思科建议您了解以下主题：

- 基本Linux

- SNMP

- 身份服务引擎 (ISE)

使用的组件

本文档中的信息基于以下软件和硬件版本：

- 思科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访问（如果已配置）。

检查端口161是否在ISE CLI上打开：

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

陷阱和查询

默认情况下在思科ISE中生成的通用SNMP陷阱：

ISE没有任何MIB用于进程状态或磁盘利用率。Cisco ISE使用 OID HOST-RESOURCES-MIB::hrSWRunName  SNMP陷阱。 snmp walk 或 snmp get 命令（用于查询进程状态或磁盘利用率）不能在ISE中使用。

来源：管理指南

在本实验中，SNMP陷阱被设置为在磁盘利用率超过阈值限制75时触发： 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列表：

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;

可用内存

在SNMP服务器和ISE CLI root-bash中收集的值之间略有差异。内存使用率也因未在SNMP中考虑的slab值而存在差异，它显示总值。

空闲内存是当前未使用的少量内存，会导致此差异。这是系统无法使用的内存的浪费部分。 ISE托管在Linux操作系统上，使用当前程序不需要的所有物理内存作为文件缓存，以提高效率。但是，如果程序需要此物理内存，内核会将文件缓存内存重新分配给前者。因此，文件缓存使用的内存是空闲的，但在程序需要它之前未使用。

请参阅以下链接：

可用内存说明。

磁盘利用率

同样，为根用户保留的文件系统最多5%，以减少文件碎片。在“df”中看不到此输出。

因此，在根bash中计算的百分比以及随后的CLI输出中预计会出现细微的差异。

SNMP查询不考虑此保留磁盘空间，而是根据表中显示的值计算输出。

有关详细信息，请参阅df输出和df输出保留磁盘空间中的差异。