1、安裝環境依賴、測試SNMP聯通
//安裝依賴
yum install gcc make net-snmp net-snmp-utils net-snmp-libs net-snmp-devel
snmpwalk -v 2c -c public_read 10.0.0.1 //交換機地址
2、拉取Git snmp_exporter
cd /usr/local/
git clone https://github.com/prometheus/snmp_exporter
3、修改go環境變量國內代理地址
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
4、編譯snmp_export
cd /usr.local/snmp_exporter/
go build
5、編譯“generator”配置生成器
cd /usr.local/snmp_exporter/generator/
go build
6、使用./generator生成snmp.yml
//暫時不用make mibs,這里下載華為mib包,解壓的mib文件夾復制到generator目錄
cp -r /home/Huawei_MIB/mib/ /***/generator/
//設置環境變量$MIBDIRS=存放mib文件的目錄
export MIBDIRS=mib
//生成snmp.yml
./generator generate
generator.yml配置文件參考:
walk下面是你查詢信息對應的模塊名或oid,community這個寫snmp協議設置的團體名,huawei_mib使用snmp查的時候、prometheus配置文件的時候寫對應的名稱。
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
***
version: 2
auth:
community: public_read
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
6、啟動驗證snmp_exporter 服務
先復制生成的snmp.yml覆蓋原配置文件后啟動,服務端口在9116,瀏覽器訪問 在 Target 中填入交換機IP地址出現數據,配置成功。
cp snmp.yml /usr/local/snmp_exporter
cd /usr/local/snmp_exporter
./snmp_exporter
7、在Prometheus配置文件中添加數據節點
- job_name: 'snmp'
scrape_interval: 10s #刷新間隔默認10s
scrape_timeout: 1m #超時時間,snmp_exporter刷數據慢修改大一點
static_configs:
- targets:
- 10.1.0.1 #交換機IP地址
metrics_path: /snmp
params:
module: [huawei_mib] #generator.yml自定義文件的模塊名
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 192.168.2.207:9116 # snmp_exporter 服務IP地址