4. 监控数据采集机制

在ThinkSystem的监控体系中,采集机制决定了数据从哪里来、以什么频率到达、携带哪些字段,以及后续告警与容量分析能否成立。ThinkSystem提供五类常用采集通道:SNMP、Redfish、Syslog、Email和REST API。它们并非互相替代,而是分别覆盖“主动轮询”“带外管理”“事件推送”“被动通知”和“结构化查询”等不同场景。理解每种通道的配置入口、数据字段和适用边界,是搭建稳定监控链路的第一步。

一、五类采集通道的定位与数据流

SNMP适合从XClarity Controller(XCC)或交换机等设备轮询标准MIB对象,获取温度、风扇、电源、告警状态等指标;Redfish基于HTTPS和JSON,通过XCC的Redfish服务读取服务器、机箱、存储、固件等资源树,字段结构化程度最高;Syslog由设备主动推送事件日志到日志服务器,适合审计与故障追溯;Email由XCC在触发事件时发送邮件,适合无集中平台的小规模环境;REST API则用于从XClarity Administrator或XCC批量拉取清单、告警和容量数据,便于二次开发。

ThinkSystem 五类采集通道与数据字段流向 采集源 XCC 带外控制器 IP / 凭据 / 端口 XClarity Administrator 集中管理平台 交换机 / 存储 SNMP / Syslog BMC 事件引擎 告警触发源 采集通道与关键字段 SNMP OID、sysUpTime、ifOperStatus、温度/风扇值 Redfish /redfish/v1/Systems、Status、Health、Power Syslog PRI、时间戳、主机名、事件ID、严重级别 Email 主题、事件代码、组件、建议动作 REST API JSON、资源ID、告警列表、容量指标 消费与处理 监控平台 阈值 / 告警规则 日志平台 检索 / 审计 容量分析 趋势 / 预测 工单 / 通知 邮件 / 短信 主动轮询(SNMP/Redfish/REST)与被动推送(Syslog/Email)互补,共同构成完整采集面

二、SNMP:轮询式指标采集

在XCC中启用SNMP需要进入“BMC配置→网络→SNMP”,设置SNMP v1/v2c的Community或v3的用户名、认证协议与加密协议,并指定Trap接收地址。轮询侧通常使用snmpwalk或监控平台采集器读取标准MIB-II和厂商私有MIB。例如读取系统运行时间与接口状态:

snmpwalk -v 2c -c public 10.10.20.31 1.3.6.1.2.1.1.3.0
# 返回:DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (12345678) 1 day, 10:17:36.78

snmpwalk -v 2c -c public 10.10.20.31 1.3.6.1.2.1.2.2.1.8
# 返回:IF-MIB::ifOperStatus.1 = INTEGER: up(1)
#       IF-MIB::ifOperStatus.2 = INTEGER: down(2)

字段解析要点:OID是对象标识,决定“取什么”;sysUpTime反映设备是否重启;ifOperStatus的1/2分别表示up/down;温度类私有OID通常返回整数,需结合MIB文件中的单位说明换算。SNMP的优点是通用、轻量,缺点是字段语义依赖MIB、轮询间隔内可能漏掉瞬时事件。

三、Redfish:结构化带外查询

Redfish通过HTTPS访问XCC,默认端口443,使用Base64编码的凭据进行会话认证。典型查询如下:

curl -k -u admin:Passw0rd! https://10.10.20.31/redfish/v1/Systems/1
{
  "Status": { "State": "Enabled", "Health": "OK" },
  "PowerState": "On",
  "ProcessorSummary": { "Count": 2, "Status": { "Health": "OK" } },
  "MemorySummary": { "TotalSystemMemoryGiB": 512 }
}

字段解析:Status.Health取值为OK、Warning、Critical,是告警判定的核心;PowerState表示电源状态;ProcessorSummary和MemorySummary提供容量与健康摘要。Redfish的优势是JSON结构清晰、资源树可遍历,适合做资产清单和容量基线;需要注意不同固件版本的属性名可能略有差异,采集前应先做一次Schema探测。

四、Syslog与Email:事件推送通道

Syslog配置在XCC的“BMC配置→事件接收器”中,填写日志服务器IP和端口(默认514)。一条典型Syslog消息格式为:

<134>Mar 12 09:21:44 XCC-Node01 Event: FQXSPCA0007M
  [Temperature threshold exceeded] Component: CPU1 Temp
  Severity: Warning  Value: 82 C  Threshold: 80 C

字段解析:<134>是PRI值,由Facility和Severity计算得出;时间戳用于排序;主机名标识来源;事件ID(如FQXSPCA0007M)是检索和知识库匹配的关键;Severity决定告警等级。Email通道则在XCC中配置SMTP服务器、发件地址和收件人,触发时发送包含事件代码、组件和建议动作的邮件。两者都是被动推送,适合审计和即时通知,但不适合做高频指标采集。

五、REST API:批量拉取与二次开发

XClarity Administrator提供REST API,可批量获取受管设备清单、告警和容量数据。调用前需先登录获取Token:

POST https://xca.lab.local/api/v1/login
Body: { "username": "admin", "password": "Passw0rd!" }
Response: { "token": "eyJhbGciOiJIUzI1NiJ9..." }

GET https://xca.lab.local/api/v1/nodes
Header: Authorization: Bearer eyJhbGciOiJIUzI1NiJ9...
Response: [ { "id": "node-01", "powerState": "On",
  "health": "OK", "memoryGB": 512 } ]

字段解析:token用于后续鉴权,有效期通常为30分钟;nodes接口返回设备ID、电源状态、健康状态和内存容量等字段,可直接写入CMDB或容量表。REST API适合与自动化平台集成,但要注意分页、限流和Token续期。

六、通道选择与字段对齐建议

实际部署中,建议以Redfish和REST API作为资产与容量数据的主通道,以SNMP作为兼容性补充,以Syslog和Email作为事件与审计通道。字段对齐时,至少统一设备唯一标识(序列号或UUID)、时间戳格式、健康状态枚举值和事件ID命名规则,否则同一台服务器在不同通道中可能被识别为不同对象,导致告警重复或容量统计偏差。采集频率上,SNMP和Redfish轮询建议不低于5分钟一次,Syslog和Email为实时推送,REST API按业务需要定时拉取即可。

配置完成后,可用一次“拔电源—插回”或“触发温度阈值”的受控测试,分别观察SNMP Trap、Syslog消息、Email通知和Redfish Health字段是否同步变化,以验证五类通道的字段映射是否正确。