使用Prometheus监控snmp
获取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文件,然后按照Building和Running中的步骤编译生成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分钟内的入流量的变化曲线
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的更多相关文章
- Prometheus(三):Prometheus监控交换机(snmp)
默认已安装Prometheus服务,服务地址:192.168.56.200 一.获取交换机snmp信息 snmp服务IP(交换机IP):172.20.2.83 snmp community:dfete ...
- Prometheus 监控领域最锋利的“瑞士军刀”
原文:https://mp.weixin.qq.com/s/Cujn6_4w8ZcXCOWpoAStvQ 一.Kubernetes 容器监控的标配—Prometheus 1.简介 Prometheus ...
- 03 . Prometheus监控容器和HTTP探针应用
Eeporter是什么及来源? 是什么? 广义上讲所有可以向Prometheus提供监控样本数据的程序都可以被称为一个Exporter.而Exporter的一个实例称为target,如下所示,Prom ...
- prometheus监控系统
关于Prometheus Prometheus是一套开源的监控系统,它将所有信息都存储为时间序列数据:因此实现一种Profiling监控方式,实时分析系统运行的状态.执行时间.调用次数等,以找到系统的 ...
- Kubernetes集群部署史上最详细(二)Prometheus监控Kubernetes集群
使用Prometheus监控Kubernetes集群 监控方面Grafana采用YUM安装通过服务形式运行,部署在Master上,而Prometheus则通过POD运行,Grafana通过使用Prom ...
- SpringCloud使用Prometheus监控(基于Eureka)
本文介绍SpringCloud使用Prometheus,基于Eureka服务发现. 1.Prometheus介绍 在之前写过两篇有关Prometheus使用的文章,如下: <SpringBoot ...
- SpringBoot使用prometheus监控
本文介绍SpringBoot如何使用Prometheus配合Grafana监控. 1.关于Prometheus Prometheus是一个根据应用的metrics来进行监控的开源工具.相信很多工程都在 ...
- Prometheus 监控Haproxy
Prometheus 监控Haproxy 普罗米修斯是一个完整的监控和趋势系统,包括基于时间序列数据的内置和主动刮削,存储,查询,绘图和警报,以下使用Prometheus+grafana对Haprox ...
- 使用 Docker 部署 Grafana + Prometheus 监控 MySQL 数据库
一.背景 在平时开发过程当中需要针对 MySQL 数据库进行监控,这里我们可以使用 Grafana 和 Prometheus 来实现监控功能.Grafana 是一款功能强大的仪表盘面板,支持多种数据源 ...
随机推荐
- jQuery中的动画(七)
一.jQuery对象样式相关方法1.设置高度和宽度height([num]) [获取或设置样式属性height的值]获取匹配元素中第一个元素的height样式值或给匹配所有元素设置height样 ...
- 监控微信小程序中的慢HTTP请求
摘要: 请求时间太长,影响用户体验,使用 Fundebug 监控慢请求. Fundebug 的微信小程序监控插件在 0.5.0 版本已经支持监控 HTTP 请求错误,在小程序中通过wx.request ...
- Redis内存模型(1):内存统计及划分
1. 内存统计 查看命令:info memory 示例: 部分含义: used_memory: Redis分配器分配的内存总量(单位是字节),包括使用的虚拟内存. used_memory_rss: R ...
- shell 的 正则表达式
shell的正则表达式规则 https://www.jb51.net/tools/shell_regex.html 常规字符 字符 描述 \ 将下一个字符标记为一个特殊字符.或一个原义字符.例如,“n ...
- The Preliminary Contest for ICPC Asia Shenyang 2019 H. Texas hold'em Poker
题目链接:https://nanti.jisuanke.com/t/41408 题目意思很简单,就是个模拟过程. #include <iostream> #include <cstr ...
- php策略模式(strategy pattern)
... <?php /* The strategy pattern defines a family of algorithms, each of which is encapsulated a ...
- 201871010104-陈园园 《面向对象程序设计(java)》第二周学习总结
201871010104-陈园园 <面向对象程序设计(java)>第二周学习总结 项目 内容 这个作业属于哪个课程 ttps://www.cnblogs.com/nwnu-daizh/ 这 ...
- 5分钟使用docker搭建一个WordPress
环境为已安装Docker Destop的Windows系统. 过程 使用Docker拉去官方WordPress镜像再进行简单配置是可行的, 但是这里我们使用docker-compose,它会自动根据你 ...
- MyBatisSystemException 【exception】
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: ...
- ant design pro如何实现分步表单时,返回上一步值依然被保存
首先,分步表单ant design pro支持,看官方Demo即可,那么如何实现如题,关键在于设置initialValue {getFieldDecorator('name', { initialVa ...