Loading... # 序 SNMP是管理进程(NMS)和代理进程(Agent)之间的通信协议。它规定了在网络环境中对设备进行监视和管理的标准化管理框架、通信的公共语言、相应的安全和访问控制机制。网络管理员使用SNMP功能可以查询设备信息、修改设备的参数值、监控设备状态、自动发现网络故障、生成报告等。 # snmp_exporter 安装 >下载你需要的版本,解压并运行 https://github.com/prometheus/snmp_exporter/releases ```shell nohup /root/snmp_exporter/snmp_exporter --web.listen-address=0.0.0.0:9116 --config.file=/root/snmp_exporter/snmp.yml > /root/logs/snmp_exporter.log 2>&1 & ``` # mibs下载 ```shell # Dell iDRAC-SMIv2.mib 下载地址 wget https://dl.dell.com/FOLDER06571535M/1/Dell-OM-MIBS-950_A00.zip # 解压文件 (记住你的解压路径,后面需要用到) unzip Dell-OM-MIBS-950_A00.zip # 目录结构 support/ └── station └── mibs ├── *.mib ``` >或者可以在下面的git地址找到你所需要的mibs https://github.com/librenms/librenms/tree/master/mibs ``` # 执行此命令可查看OID对应的名字,我们使用 internet 来采集所有指标,记下这个OID snmptranslate -Tz -m /root/support/station/mibs/iDRAC-SMIv2.mib ```  # 通过mibs生成snmp.yml >参考链接https://github.com/prometheus/snmp_exporter/tree/main/generator#file-format ```shell # 基于 RHEL 的发行版 sudo yum install gcc gcc-g++ make net-snmp net-snmp-utils net-snmp-libs net-snmp-devel # 安装 golang 与 git yum install golang git -y # 配置 go 代理 export GO111MODULE=on export GOPROXY=https://mirrors.aliyun.com/goproxy/ # 获取 pgk go get github.com/prometheus/snmp_exporter/generator # 进入到 pgk 目录 cd ${GOPATH-$HOME/go}/src/github.com/prometheus/snmp_exporter/generator # 编译 generator go build ``` > `cd ${GOPATH-$HOME/go}/src/github.com/prometheus/snmp_exporter/generator` 在该目录目录创建generator.yml,并编辑如下内容 ```yaml modules: idrac: walk: - 1.3.6.1 version: 2 timeout: 30s auth: community: public ``` ```shell # MIBDIRS替换为你自己的解压路径 export MIBDIRS=/root/support/station/mibs # 此步骤必须执行,否则将会生成失败,并得到如下失败信息 # level=error ts=2021-07-29T02:44:56.144Z caller=main.go:130 msg="Error generating config netsnmp" err="cannot find oid '1.3.6.1' to walk" cp /usr/share/snmp/mibs/SNMPv2-SMI.txt /root/support/station/mibs/ # 生成监控指标 ./generator generate # 将 snmp.yml 复制到 snmp_exporter 目录下 cp ./snmp.yml ~/root/snmp_exporter/ ``` >如果一切顺利,你将看到如下输出内容 并生成snmp.yml文件,生成路径见最后一行的file字段 ```shell [root@prometheus generator]# ./generator generate level=info ts=2021-07-29T02:46:37.096Z caller=net_snmp.go:144 msg="Loading MIBs" from=/root/support/station/mibs level=warn ts=2021-07-29T02:46:37.165Z caller=main.go:120 msg="NetSNMP reported parse error(s)" errors=1 level=info ts=2021-07-29T02:46:37.210Z caller=main.go:52 msg="Generating config for module" module=idrac level=info ts=2021-07-29T02:46:37.246Z caller=main.go:67 msg="Generated metrics" module=idrac metrics=2418 level=info ts=2021-07-29T02:46:37.797Z caller=main.go:92 msg="Config written" file=/root/go/src/github.com/prometheus/snmp_exporter/generator/snmp.yml ``` # 测试指标抓取是否正常   # prometheus配置 >编辑prometheus.yml文件,添加如下job ```yaml - job_name: 'idrac_snmp' scrape_interval: 60s scrape_timeout: 60s static_configs: - targets: - 192.168.10.201 # SNMP device. metrics_path: /snmp params: module: [idrac] relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: 127.0.0.1:9116 # The SNMP exporter's real hostname:port. ``` # 测试 promethues 指标查询 指标返回值的具体含义可查看`snmp.yml`文件内对应的`enum_values`  最后修改:2021 年 07 月 29 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,请随意赞赏
22 条评论
有没有grafana的有关dell snmp的dashboard
emmm~~转换不成功,只能手写配置文件了
我这边执行generator generate 执行报错Error generating config netsnmp" err="cannot find oid '1.3.6.1' to walk", export MIBDIRS=mibs 也执行过了,mib文件已经放到mibs文件目录下了,export 绝对路径都不行
snmp_exporter版本是v0.20.0
把mib文件放在/usr/share/snmp/mibs/可以试试。
我现在要监控防火墙,也用这个SNMPv2-SMI.txt文件吗
这是dell r620服务器的mib库,你需要找你设备型号对应的mib库。
我已经获得我防火墙的私有mib库,我看你是将SNMPv2-SMI.txt复制到解压路径的mibs文件夹里面,请问我该如何找到我mib对应的这个txt呢,还是说就用这个就可以呢。
这个要看你mib库解压出来的有哪些文件,因为不清楚你这边设备的具体型号,所以没法判断。
下载下来只有一个NSG.mib文件 不是压缩文件
奇安信的防火墙我也没接触过,你可以咨询下厂商。
好的,谢谢
请问为什么walk是1.3.6.1呢
这个是测试用例
prprprprpr
(/ω\)
我也发现了,Prometheus简直神一样的监控工具,配合grafana,直接超神了,太高大上了,工作摸鱼利器
对比于zabbix,prometheus在监控容器方面也有优势
_(:з」∠)_
_(:з」∠)_
zero,快来击剑
∠( ᐛ 」∠)_