头图

都要采集什么

采集内容举例用途
时序数据 metrics如传感器温度度数、风扇转速可以根据所有机器电流得出机房电流等
事件日志 sel如内存可纠正错误Mem ECC Warning告警触发换配件工单等
硬件资产信息 info如获取机器上有多少块硬盘,插槽信息等可以做资产盘点

硬件信息info意义说明

能采集到多细的粒度

固件版本 
厂商 
产品编号
插槽 
....

利用详细的信息可以

  • 一般公司资产盘点系统都会对接供应链等系统
  • 避免不了从A机器拆下一块硬盘插到B上面
  • 这时候就需要探针定时采集真实的资产数据来矫正资产系统中的数据了
  • 而这个探针其实可以用ipmi采集实现
  • Lenovo x3550 M5机型为例,ssh后使用 storage -show disk[4-0]可以查看单块磁盘的info信息
system> storage  -list drives
disk[4-0]            Drive 0                                    
disk[4-1]            Drive 1                                    
disk[4-2]            Drive 2                                    
disk[4-3]            Drive 3                                    
system> storage  -show disk[4-0]
Product Name: xxx
State: Unconfigured Good
Slot No.: 0
Interface Type: SAS
Media Type: HDD
Health Status: Normal
Capacity: 558.912GB
Speed: 6.0Gb/s
Current Temperature: 29C
Rotation Rate: 10500RPM
Media Error Count: 0
Other Error Count: 0
Predication Fail Count: 0
Remaining Life: N/A
Manufacture: LENOVO-X
Device ID: 3
Enclosure ID: 0x00FC
Machine Type: 
Model: 
Serial No.: xxxx
Total Firmware number: 1
Name: Drive
Description: 
Manufacture: 
Version: L56R
Release Date: 

采集工具

底层工具实例(ipmi vs redfish)

redfish

  • IPMI也在2015年公布2.0 v1.1标准后,不再更新,被RedFish永久代替,Intel也宣布不再维护,号召大家转战RedFish
  • ipmi有安全问题
  • redfish使用https、json、restfulapi
  • 但是。。。好像没推开,大部分公司还在用ipmi,多尴尬

ipmi

使用Remote Management Control Protocol 协议获取远端信息

ipmi 工具对比

image

单机状态汇总

设备整体状态: 各个模块分`正常`和`紧急`两种状态
- 电源:
- 风扇:
- 内存:
- 网卡:
- 物理磁盘:
- 处理器:
  • Lenovo x3550 M5为例 登录机器的控制卡web可以看到首页就展示了汇总状态
    image
  • ssh到目标管理卡,执行syshealth summary 即可得到跟控制卡web展示一样的汇总

    system> syshealth summary
    Power     On
    State     OS booted
    Restarts  635
    Component Type     Status         
    ==================================
    Cooling Devices    Normal          
    Power Modules      Critical        
    Local Storage      Normal          
    Processors         Normal          
    Memory             Normal          
    System             Normal  

但是并不是所有厂商都直接支持ssh获取汇总信息

  • Dell PowerEdge R730为例 ,需要额外安装 专用工具idracadm
idracadm   -r xx.xxx.xxx.xx -u ADMIN -p ADMIN hwinventory 
  • 其中RollupStatus指标代表就是子模块的汇总信息
-------------------------------------------------------------------

[InstanceID: System.Embedded.1]
Device Type = System
LastUpdateTime = 2018-09-13T13:16:48
LastSystemInventoryTime = 2020-12-14T07:48:03
EstimatedExhaustTemperature = 35 Degree C
EstimatedSystemAirflow = 36 CFM
LicensingRollupStatus = OK
StorageRollupStatus = OK
RollupStatus = Error
MemoryRollupStatus = OK
TempStatisticsRollupStatus = OK
CurrentRollupStatus = OK
BatteryRollupStatus = OK
FanRollupStatus = OK
IntrusionRollupStatus = OK
VoltRollupStatus = OK
TempRollupStatus = OK
PSRollupStatus = Error
CPURollupStatus = OK
PopulatedPCIeSlots = 1
MaxPCIeSlots = 7
PopulatedCPUSockets = 2
MaxCPUSockets = 2
PowerCap = 0 Watts
PowerCapEnabledState = Disabled
PowerState = On
BaseBoardChassisSlot = NA
PopulatedDIMMSlots = 8
SysMemPrimaryStatus = OK
.....
-------------------------------------------------------------------

硬件采集器整体流程说明

架构图

image

  1. 用户通过前端配置采集目标,配置下面几个信息

    - 管理卡地址
    - 用户名、密码
    - 采集模式`ipmi` or `redfish`
  2. 采集目标通过控制器写入db中,控制器从db中取出存活采集器分发采集目标
  3. 用户通过前端配置告警订阅规则,配置下面几个信息
  4. 告警分组模式(分组见下表),同时支持默认分组(可选): 代表所有告警都会给默认分组发一份
  5. 分组告警接收人 user_name列表
  6. 分组告警回调地址 webhook列表
  7. 分组告警接收人接收通道 im/mail/voice/sms

分组模式举例key名称
按业务标签分组如订阅business=live的硬件故障business
按厂商分组如订阅company=dell的硬件故障company
按型号分组如订阅model=PowerEdge R730的硬件故障model
按机房分组如订阅推荐region=北京的硬件故障region
按故障模块类型分组如订阅subsystem=memory的硬件故障subsystem

ning1875
167 声望67 粉丝

k8s/prometheus/cicd运维开发专家,想进阶的dy搜 小乙运维杂货铺