大家好,我是小斐呀。
这大半年,我几乎都沉浸在 IT 基础设施监控领域,从底向上把整个监控体系梳理了一遍。重点深入了基础设施的下层部分 物理资源、网络、安全、操作系统、虚拟化与容器 ,把监控做到了颗粒度够深、链路够完整的地步。
相比之下,中间件、数据库、应用与平台层目前分享得还不多,后续也会逐步补齐。
机房里面往往都是网络设备、服务器占主流,但是想要保证网络设备和服务器持续稳定运行,那么机房中的 精密空调 和 UPS 是比较关键的设备。
机房运维往往需要重点关注保证机房环境的设备,一旦出现问题,往往都是大问题,我自身就经历好几次机房因空调故障、 UPS 故障等问题导致机房温度升高(机房变火炉)和电力(市电停电,UPS运行没多久直接挂了情况)。
最危险的一次是夏天机房空调压不住温度,机房温度升高到拿冰块来降温的地步,感觉机房随时会起火的边缘行走,后面检查发现有个 PDU 线路短路烧掉了,这次运气还好没有发生火灾(这是我刚刚步入工作没多久,临危受命接手了这个,职业生涯的最危险的一次),所以我充分觉得这些基础设备运行状态更应该得到及时的告警并触达。
这两个设备需要监控,一般情况下有集中式的 动环 设备实现统一化集成监控,要么使用 SNMP 卡来采集暴露设备运行数据,然后我们需要实现监控可视化和运行状态异常告警,可以通过 SNMP 采集器实现数据采集,集成到 Prometheus 下实现监控告警统一,下面来看下 UPS 设备监控最佳实践,
监控架构
在比较标准化的机房中,肯定都是有对这些基础环境保障设备的监控工具的,最常见的就是动环监控设备,不过这些还是割裂了,最终目标还是把设备运行参数都指标化,实现至下而上的统一化指标监控告警平台,那么实现架构还是用夜莺生态体系来:
看下在 UPS 插上 SNMP 卡然后使用 categraf 的 SNMP 插件读取 oid 采集 UPS 运行状态指标。
UPS 一般需要采集的指标如下:
看下采集配置,我将艾特 UPS 为案例,简单看下基础指标的采集,如下所示,这是艾特 UPS 插上 SNMP 卡的情况下,直接接上网线配置 IP 即可采集指标:
Categraf 采集 UPS 基础指标配置如下:
[[instances]]
agents=[
"udp://192.168.1.252"
]
# metrics_name_prefix = "iteaq_"
interval_times=2
labels={region="DH",role="ups",layer="core"}
timeout="3s"
version=2
community="public"
path=["/opt/categraf/mibs/iteaq"]
translator="gosmi"
agent_host_tag="ident"
retries=2
max_repetitions=15
health_check_interval="60s"
health_check_timeout="5s"
max_fail_count=3
recovery_interval="5m"
[[instances.field]]
oid="1.3.6.1.2.1.1.3.0"
name="uptime"
[[instances.field]]
oid="1.3.6.1.2.1.1.5.0"
name="device_name"
is_tag=true
[[instances.field]]
oid="1.3.6.1.4.1.935.1.1.1.2.1.1.0"
name="ups_battery_status"
[[instances.field]]
oid="1.3.6.1.4.1.935.1.1.1.2.1.2.0"
name="ups_battery_runtime"
[[instances.field]]
oid="1.3.6.1.4.1.935.1.1.1.2.2.1.0"
name="ups_battery_capacity_percent"
[[instances.field]]
oid="1.3.6.1.4.1.935.1.1.1.2.2.2.0"
name="ups_battery_voltage"
[[instances.field]]
oid="1.3.6.1.4.1.935.1.1.1.2.2.6.0"
name="ups_battery_nominal_voltage"
[[instances.field]]
oid="1.3.6.1.4.1.935.1.1.1.3.1.1.0"
name="ups_input_phase"
[[instances.field]]
oid="1.3.6.1.4.1.935.1.1.1.3.2.1.0"
name="ups_input_voltage"
[[instances.field]]
oid="1.3.6.1.4.1.935.1.1.1.3.2.4.0"
name="ups_input_frequency"
[[instances.field]]
oid="1.3.6.1.4.1.935.1.1.1.3.2.5.0"
name="ups_input_line_fail_cause"
[[instances.field]]
oid="1.3.6.1.4.1.935.1.1.1.4.1.1.0"
name="ups_output_status"
[[instances.field]]
oid="1.3.6.1.4.1.935.1.1.1.4.1.2.0"
name="ups_output_phase"
[[instances.field]]
oid="1.3.6.1.4.1.935.1.1.1.4.2.1.0"
name="ups_output_voltage"
[[instances.field]]
oid="1.3.6.1.4.1.935.1.1.1.4.2.2.0"
name="ups_output_frequency"
[[instances.field]]
oid="1.3.6.1.4.1.935.1.1.1.4.2.3.0"
name="ups_output_load_percent"
[[instances.field]]
oid="1.3.6.1.4.1.935.1.1.1.9.1.1.0"
name="ups_env_temperature_celsius"
[[instances.field]]
oid="1.3.6.1.4.1.935.1.1.1.9.1.2.0"
name="ups_env_humidity_percent"
...
国内企业用的比较多的品牌 UPS 有山特、艾默生、维谛、施耐德、科士达等等,这些 UPS 一般都有各自的私有 oid 获取对应指标,所以 UPS 和精密空调的指标采集也是比较费劲,都需要适配私有 oid 拿到指标,即使通过动环也需要适配动环品牌的 oid 或者 API 得到对应指标,后续尽量把用的比较多的 UPS 适配好。
数据大屏
通过 Categraf 采集后,可以在夜莺控制台中 快捷视图 中查看到采集了哪些指标:
snmp_ups_battery_capacity_percent
snmp_ups_battery_nominal_voltage
snmp_ups_battery_runtime
snmp_ups_battery_status
snmp_ups_battery_voltage
snmp_ups_env_humidity_max_percent
snmp_ups_env_humidity_min_percent
snmp_ups_env_humidity_percent
snmp_ups_env_temperature_celsius
snmp_ups_env_temperature_max_celsius
snmp_ups_env_temperature_min_celsius
snmp_ups_input_frequency
snmp_ups_input_line_fail_cause
snmp_ups_input_max_voltage
snmp_ups_input_min_voltage
snmp_ups_input_phase
snmp_ups_input_voltage
snmp_ups_output_frequency
snmp_ups_output_load_percent
snmp_ups_output_phase
snmp_ups_output_status
snmp_ups_output_voltage
UPS 面板最终呈现如下:
UPS 的核心指标也没多少,面板相对来说简单些,如果可以的话其实也可以把空调和 UPS 的核心指标放在一起。
end
如果您也维护了很多 IT 基础设施,也想构建一套比较合适的基础设施统一监控告警系统,可以试试这套开源架构,如果有深入需求可以加我咨询沟通。
我建立了一些对基础设施监控告警的兴趣群,针对这块的有需求或者想沟通交流,可以加入到群里交流即可,可公众号后台私信加我,我拉你进群。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……




还没有评论,来说两句吧...