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批量拉取清单、告警和容量数据,便于二次开发。
二、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按业务需要定时拉取即可。