Prometheus监控实战(四)Prometheus监控SNM

2022-03-01  本文已影响0人  工匠

SNMP-Exporter监控SNMP设备

docker环境下,安装一个snmp.yml文件编译环境。采用docker方式,便于后期环境移植。

1、下载centos镜像docker

docker pull centos:7.6.1810

2、新建一个基于centos镜像的构建容器

#第一次
docker run -dit --network=host -v snmp-generator:/root/go --name=snmp-generator centos:7.6.1810
#后续
docker run -dit --network=host -v snmp-generator:/root/go --name=snmp-generator snmp-generator:0.20

3、进入容器,4-9操作均在容器内进行。

docker exec -it snmp-generator bash

4、在容器中安装编译环境

#安装go,将go的安装包上传至/home下,并解压至指定目录
tar -C /usr/local/ -xvf go1.17.7.linux-amd64.tar.gz
#配置环境变量
vim ~/.bashrc
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
source ~/.bashrc
#验证
go version
#设置GO PROXY
go env -w GOPROXY=https://goproxy.cn,direct
#安装git
yum -y install git
#安装snmp编译依赖
yum -y install gcc gcc-g++ make net-snmp net-snmp-utils net-snmp-libs net-snmp-devel

5、下载snmp-exporter

go get github.com/prometheus/snmp_exporter/generator

6、进入文件夹,执行命令,生成generator

cd /root/go/pkg/mod/github.com/prometheus/snmp_exporter@v0.20.0/generator
#生成generator
go build

7、上传mib库文件至/root/go/pkg/mod/github.com/prometheus/snmp_exporter@v0.20.0/generator

8、修改generator.yml

modules:
  # Default IF-MIB interfaces table with ifIndex.
  huawei_mib:
    walk: 
      - sysUpTime
      - interfaces
      - ifXTable
      - sysDescr
      - sysName
      - 1.3.6.1.2.1.31.1.1.1.1
      - 1.3.6.1.4.1.2011.5.25.38
      - 1.3.6.1.2.1.80
      - 1.3.6.1.4.1.2011.5.25.31.1.1.1.1.2 #实体操作状态
      - 1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5 #实体CPU使用率
      - 1.3.6.1.4.1.2011.5.25.31.1.1.1.1.7 #实体内存使用率
      - 1.3.6.1.4.1.2011.5.25.31.1.1.1.1.10 #实体启动时间
      - 1.3.6.1.4.1.2011.5.25.31.1.1.1.1.11 #实体温度
      - 1.3.6.1.2.1.80.1.2.1.4 #测试的目的地址
    version: 
    auth:
      community: public0001
    lookups:
      - source_indexes: [ifIndex]
        lookup: ifAlias
      - source_indexes: [ifIndex]
        # Uis OID to avoid conflict with PaloAlto PAN-COMMON-MIB.
        lookup: 1.3.6.1.2.1.2.2.1.2 # ifDescr
      - source_indexes: [ifIndex]
        # Use OID to avoid conflict with Netscaler NS-ROOT-MIB.
        lookup: 1.3.6.1.2.1.31.1.1.1.1 # ifName
    overrides:
      ifAlias:
        ignore: true # Lookup metric
      ifDescr:
        ignore: true # Lookup metric
      ifName:
        ignore: true # Lookup metric
      ifType:
        type: EnumAsInfo

9、编译执行,生成snmp.yml

export MIBDIRS=mibs
./generator generate

10、启动snmp_exporter

#将上一步生成的snmp.yml拷贝到snmp_exporter目录下替换原来的snmp.yml文件,并启动。可以采用docker或二进制形式
./snmp_exporter
上一篇 下一篇

猜你喜欢

热点阅读