Prometheus 实现监控Dell服务器相关硬件指标

公司有自己的IDC,需要对所有的机器进行监控。为了采集服务器的硬件度量值,之前通过zabbix 采集相关的数据指标,这个需要提前开启服务器iDRAC的snmp服务

 

 

 

 下面是zabbix通过snmp采集到的硬件指标

 

为了整合监控相关的资源,需要实现prometheus 来采集相关的服务器硬件指标,并提供报警

具体工作流程流程

iDRAC(SNMP) -> snmp_exporter -> Prometheus

虽然上面的数据流是从底层到上层,但是其实数据拉取的请求是从上至下的,也就是说Prometheus向exporter取数据,exporter再向iDRAC snmp取数据

安装net-snmp-utils

yum install -y net-snmp-utils

 获取MIB,我这里通过dell官网下载,

 

# dell iDRAC-SMIv2.mib 下载地址 

wget https://dl.dell.com/FOLDER06571535M/1/Dell-OM-MIBS-950_A00.zip

也可以在下面的github里面找这个里面有很多基础的MIB

https://github.com/librenms/librenms/tree/master/mibs

unzip Dell-OM-MIBS-950_A00.zip

mkdir /opt/mibs

cp -a support/station/mibs /opt/mibs/

查看BIM里面OID对应的名字

snmptranslate -Tz -m /opt/mibs/iDRAC-SMIv2.mib

 cd /opt/mibs/

# 这一步特别重要,不然报错err="cannot find oid 'physicalDiskState' to walk"
cp /usr/share/snmp/mibs/SNMPv2-SMI.txt mibs

编辑generator.yml文件

参考文档

https://github.com/prometheus/snmp_exporter/tree/main/generator#file-format

选择internet 的来采集所有指标

vim generator.yml

 

 用snmp_exporter generator生成 配置文件,这里推荐用docker 的方式来生成 ,已经有现成的镜像了,不需要在编译镜像

docker pull  prom/snmp-generator

 

 

 运行下面命令生成相应的snmp.yml 配置文件

docker run -it -v "${PWD}:/opt/" prom/snmp-generator generate

level=info ts=2019-11-22T09:05:06.147Z caller=net_snmp.go:142 msg="Loading MIBs" from=mibs
level=warn ts=2019-11-22T09:05:06.457Z caller=main.go:120 msg="NetSNMP reported parse error(s)" errors=12
level=info ts=2019-11-22T09:05:06.800Z caller=main.go:52 msg="Generating config for module" module=dell
level=info ts=2019-11-22T09:05:06.908Z caller=main.go:67 msg="Generated metrics" module=dell metrics=1
level=info ts=2019-11-22T09:05:06.909Z caller=main.go:92 msg="Config written" file=/opt/snmp.yml

cat snmp.yml |egrep "physicalDisk"

 说明需要的指标都已经生成了

然后安装snmp_exporter,这里就不介绍安装了

官方下载地址

https://github.com/prometheus/snmp_exporter/releases

cp snmp.yml /etc/snmp_exporter/

启动相应的服务

snmp_exporter --log.level=error --config.file="/etc/snmp_exporter/snmp.yml"

然后通过浏览器访问,看看是否可以采集相应服务器的硬件指标

 

 在prometheus里面添加配置,抓取这个度量值

通过prometheus 查询相关的指标

通过snmp.yml文件 查看指标的相关说明,

说明值是3 的时候是正常的,我们增加相关报警,只要值不等3都认为是异常,这里也可以参考ZABBIX相关的指标,这里不详细说明了

 增加相应的硬件报警规则

测试相关报警 可以故意把报警expr 语句改成不等于2 看具体报警

当然我们还可以通过这种方式监控其他相关的设备,比如我们机房的华为交换机,只要有SNMP 协议支持的,有MIB相关基础包,我们都可以实现相应的监控

 

posted @ 2021-07-16 17:51  屌丝的IT  阅读(3750)  评论(1编辑  收藏  举报