使用Prometheus监控snmp

摘要:
要获取snmp信息,首先获取要监控的snmp的基本信息。假设基本信息如下:snmp服务IP:1.1.1.1 snmp社区:publicsnmpexportorDeployment地址:2.2.2.2配置snmp导出器以从官方下载snmp导出程序的可执行文件。此外,您需要自己编译和生成snmpexporter的配置文件。首先,您需要配置生成器。yml文件,然后跟随Building和Ru

获取snmp信息

首先获取需要监控的snmp的基本信息,假设基本信息如下:

snmp服务IP: 1.1.1.1
snmp community: public
snmp exportor部署地址: 2.2.2.2

配置snmp exporter

官方下载snmp exporter的可执行文件。

此外还需要自己编译生成snmp exporter的配置文件,首先需要配置generator.yml文件,然后按照BuildingRunning中的步骤编译生成snmp.yml。generator.yml文件的配置可以参考File Format。generator.yml文件中只需要注入snmp的community即可,下面仅修改了modules.if_mib.auth字段,其余与File Format中一致。

modules:
  # Default IF-MIB interfaces table with ifIndex.
  if_mib:
    walk: [sysUpTime, interfaces, ifXTable]
    version: 2
    auth:
      community: public
    lookups:
      - source_indexes: [ifIndex]
        lookup: ifAlias
      - source_indexes: [ifIndex]
        lookup: 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
        ...

生成新的snmp.yml之后替换原有的snmp.yml即可。

配置Prometheus

Prometheus的最小配置如下,增加一个snmp的job即可,params.module中可以配置需要抓取的模块,不配置表示全部抓取。

global:
  scrape_interval: 1m
  scrape_timeout: 60s
  evaluation_interval: 20s
scrape_configs:
  - job_name: 'snmp'
    static_configs:
      - targets:
        - 1.1.1.1
    metrics_path: /snmp
#    params:
#      module: [if_mib]
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 2.2.2.2:9116

启动snmp exporter和Prometheus即可

grafana配置

snmp给出了snmp服务所在的节点(一般为交换机)的接口信息,如接口状态,名称,In/Out报文数目,丢弃报文数和错误报文数等。下面给出简单的配置:

计算接收的报文总数

sum(ifHCInBroadcastPkts+ifHCInMulticastPkts+ifHCInUcastPkts)by(ifDescr)

计算2分钟内接收到的报文总数的平均数

sum(rate(ifHCInBroadcastPkts[2m])+rate(ifHCInMulticastPkts[2m])+rate(ifHCInUcastPkts[2m]))by(ifDescr)

计算发送的报文总数

sum(ifHCOutBroadcastPkts+ifHCOutMulticastPkts+ifHCOutUcastPkts)by(ifDescr)

计算2分钟内发送的报文总数的平均数

sum(rate(ifHCOutBroadcastPkts[2m])+rate(ifHCOutMulticastPkts[2m])+rate(ifHCOutUcastPkts[2m]))by(ifDescr)

计算未上送的报文总数

sum(ifInDiscards+ifInErrors+ifInUnknownProtos)by(ifDescr)

计算2分钟内未上送的报文总数的平均数

sum(rate(ifInDiscards[2m])+rate(ifInErrors[2m])+rate(ifInUnknownProtos[2m]))by(ifDescr)

计算丢弃的报文总数

sum(ifOutDiscards+ifOutErrors)by(ifDescr)

计算2分钟内丢弃的报文总数的平均数

sum(rate(ifOutDiscards[2m])+rate(ifOutErrors[2m]))by(ifDescr)

计算GigabitEthernet0/27接口上2分钟内的入流量变化,单位Mbps

(rate(ifHCInOctets{ifDescr="GigabitEthernet0/27"}[2m])*8)/(1024*1024)

计算GigabitEthernet0/27接口上2分钟内的出流量变化,单位Mbps

(rate(ifHCOutOctets{ifDescr="GigabitEthernet0/27"}[2m])*8)/(1024*1024)

下图给出了2分钟内的入流量的变化曲线
使用Prometheus监控snmp第1张

TIPS

snmp exporter中有一些类似的监控指标如ifHCInBroadcastPkts和ifInBroadcastPkts,使用Prometheus监控时推荐使用带HC的,如ifHCInBroadcastPkts,ifHCInMulticastPkts,因为带HC的比不带HC的能表示更大长度的数据。具体原因参见这里

Debug

可以在2.2.2.2机器上使用如下命令查看snmp_exporter是否部署正确

curl http://127.0.0.1:9116/snmp?target=1.1.1.1

免责声明:文章转载自《使用Prometheus监控snmp》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇鼠标放在放在输入框上面提示效果Android : android 8.0 audio 接口分析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Prometheus实战之联邦+高可用+持久

  导航:这里主要是列出一个prometheus一些系统的学习过程,最后按照章节顺序查看,由于写作该文档经历了不同时期,所以在文中有时出现 的云环境不统一,但是学习具体使用方法即可,在最后的篇章,有一个完整的腾讯云的实战案例。   1.什么是prometheus?   2.Prometheus安装   3.Prometheus的Exporter详解   ...

常规服务器配置:Prometheus+Grafana监控

准备两台测试环境: 主:192.168.28.130 备:192.168.28.131 博文大纲:一、prometheus简介二、Prometheus组成及架构三、部署prometheus1)环境准备2)部署prometheus3)配置Peometheus监控实现报警 一、prometheus简介 Prometheus是一套开源的系统监控报警框架。它以给定...

问题处理:Cannot find module (SNMPv2-TC): At line 10 in /usr/share/snmp/mibs/UCD-DLMOD-MIB.txt

在执行php -i |grep redis时显示以下报错信息(但在phpinfo查看时一切正常): MIB search path: /root/.snmp/mibs:/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf:/usr/share/mibs/site:/...

配置Prometheus抓取k8s集群外的监测数据

K8s集群内的Prometheus抓取监测数据是通过servicemonitor这个crd来完成的。每个servicemonitor对应Prometheus中的一个target。每个servicemonitor对应一个或多个service,负责获取这些service上指定端口暴露的监测数据,并向Prometheus上报。 service是k8s集群内的资源...

华三SNMP配置详解

一、SNMP配置 1.1  SNMP简介 SNMP(Simple Network Management Protocol,简单网络管理协议)是网络中管理设备和被管理设备之间的通信规则,它定义了一系列消息、方法和语法,用于实现管理设备对被管理设备的访问和管理。SNMP具有以下优势:   自动化网络管理。网络管理员可以利用SNMP平台在网络上的节点检索信息、修...

prometheus监控java项目(jvm等):k8s外、k8s内

前言 虽然可以使用jvisualvm之类的工具监控java项目,但是集群环境下,还是捉襟见肘,下面介绍如何用主流的prometheus来监控java项目。 java项目配置 在pom.xml中添加依赖 <dependency> <groupId>org.springframework.boo...