telegraf + influxdb + grafana 实现交换机流量展示

Grafana添加influxDB2数据源 - 踩坑记录 InfluxDB 2.0要求HTTP添加Authorization头。第一步:选择Data source。第二步:选择influxDB。 阅读详情
AI摘要

本文介绍如何使用Telegraf通过SNMP采集交换机流量数据,存储到InfluxDB,并在Grafana中可视化展示。重点涵盖InfluxDB的部署与配置、Telegraf的SNMP插件设置(支持32位和64位计数器)、以及Grafana的数据源接入和图表绘制方法,实现高精度网络流量监控。

实验环境

influxdb2:2.7.5
telegraf:1.30.1
grafana:10.4.2

influxdb

官方文档见https://docs.influxdata.com/influxdb/v2/,网络上很多文档比较老,可能是v1版本的influxdb。

部署方法1:二进制

从https://www.influxdata.com/downloads/可以查看不同版本的下载地址
下载压缩包并解压、复制二进制文件至默认bin目录下

wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.7.6_linux_amd64.tar.gz
tar -zxf influxdb2-2.7.6_linux_amd64.tar.gz
cp influxdb2-2.7.6/usr/bin/influxd /usr/local/bin/

此后就可以通过influxd启动,通过--http-bind-address可以修改端口,通过--reporting-disabled可以不发送telemetry数据,例如:

influxd --http-bind-address=:8089
influxd --reporting-disabled

部署方法2:RPM包部署

按照官网说明下载及安装即可

cat <<EOF | sudo tee /etc/yum.repos.d/influxdata.repo
[influxdata]
name = InfluxData Repository - Stable
baseurl = https://repos.influxdata.com/stable/\$basearch/main
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdata-archive_compat.key
EOF
sudo yum install influxdb2

此后即可通过service或者systemctl操作influxdb,service influxdb start或者systemctl start influxdb
如果想要修改配置,修改配置文件/etc/influxdb/config.toml,例如增加配置如下:

http-bind-address = ":8089"
reporting-disabled = false

测试

启动完成后,可以通过8089端口进行管理,例如http://192.168.101.91:8089/
本次实验中,设置

Username: test
Password: teStUsEr
Organization: test
Bucket: traffic-test

记录下API token,后面telegraf和grafana连接influxdb要用,也可以创建一个All Access API Token。
influxdb启动后,可以参考官方文档的 Get Started ——> Write Data和Query Data进行写入数据和查询数据的测试,按照文档操作即可,唯一要注意的是,官网的样例数据是以秒为单位的,所以load data时精度一定要选择秒,否则数据都会被丢弃

telegraf

安装

配置yum源并安装:

cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxData Repository - Stable
baseurl = https://repos.influxdata.com/stable/\$basearch/main
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdata-archive_compat.key
EOF
sudo yum install telegraf

配置

telegraf支持非常多的插件,具体可以参考官方文档。
默认配置文件位置为/etc/telegraf/telegraf.conf,默认的telegraf是不产生日志的,需要在telegraf.conf`修改如下配置手工开启:

logtarget = "file"
logfile = "/var/log/telegraf/telegraf.log"

原始配置文件内容极多,可以仅生成需要的配置,例如:

telegraf --input-filter snmp --output-filter file config > test.conf

则只会生成一个输入为snmp,输出为file的配置文件test.conf。可以测试此配置文件是否正确,如果正确则会完成一次采集:

telegraf -config test.conf -input-filter snmp -test

每次修改配置文件后,telegraf都需要重启才能生效。如果使用systemctl启动telegraf,则会应用/etc/telegraf/telegraf.conf和/etc/telegraf/telegraf.d下的所有*.conf配置文件。如果有多个不同的采集任务,可以在一个配置文件中写多个Inputs插件,也可以在/etc/telegraf/telegraf.d下写多个配置文件,但是要注意,telegraf.d目录可以为空,telegraf.conf文件是必需的。

示例

输出

influxdb输出插件配置如下:

[[outputs.influxdb_v2]]
  urls = ["http://127.0.0.1:8089"]
  token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  organization = "test"
  bucket = "traffic-test"
流量采集(32位计数器版本)

实验示例为采集192.168.101.229、228两台交换机流量,关键配置如下:

 [[inputs.snmp]]
   agents = ["udp://192.168.101.229:161","udp://192.168.101.228:161"]
   version = 2
    community = "public"
    agent_host_tag = "source"
    fieldpass = ["ifOutOctets", "ifInOctets"]
  [[inputs.snmp.field]]
     oid = "RFC1213-MIB::sysName.0"
     name = "sysName"
     is_tag = true
   [[inputs.snmp.table]]
     oid = "IF-MIB::ifTable"
     name = "traffic"
     inherit_tags = ["sysName"]
   [[inputs.snmp.table.field]]
     oid = "IF-MIB::ifDescr"
     name = "ifDescr"
     is_tag = true
   [inputs.snmp.tagpass]
      ifDescr = ["GigabitEthernet*", "XGigabitEthernet*"]

关键配置说明如下:fieldpass会只保留ifOutOctets和ifInOctets两个字段,即流量计数,过滤掉查看流量所不需要的带宽、错包等其他信息;is_tag表示此字段将会成为一个tag;inherit_tags表示将会继承上层tag,此处即为sysName;tagpass会只保留ifDescrtag值为GigabitEthernet开头或者XGigabitEthernet开头,去掉loopback或者vlanif等其他端口。

流量采集(64位计数器版本)

64位计数器版本配置如下,与32位版本的区别是换了oid和过滤器:

 [[inputs.snmp]]
   agents = ["udp://192.168.101.229:161"]
   version = 2
    community = "public"
    agent_host_tag = "source"
    fieldpass = ["ifHCOutOctets", "ifHCInOctets"]
  [[inputs.snmp.field]]
     oid = "RFC1213-MIB::sysName.0"
     name = "sysName"
     is_tag = true
   [[inputs.snmp.table]]
     oid = "IF-MIB::ifXTable"
     name = "traffic"
     inherit_tags = ["sysName"]
     [[inputs.snmp.table.field]]
       oid = "IF-MIB::ifName"
       name = "ifName"
       is_tag = true
     [[inputs.snmp.table.field]]
       oid = "IF-MIB::ifAlias"
       name = "ifAlias"
       is_tag = true
   [inputs.snmp.tagpass]
      ifName = ["GigabitEthernet*", "XGigabitEthernet*"]

示例数据

一条数据示例如下:

traffic,host=net-229,ifDescr=GigabitEthernet0/0/14,ifIndex=19,source=192.168.101.229,sysName=H3C-.S5320-01 ifOutOctets=4189261175i,ifInOctets=3989823012i 1713344116000000000

该数据遵守influxdb的行协议(line protocol):
在这里插入图片描述

grafana

启动

可以直接yum安装,也可以下载后手动安装

yum install -y https://dl.grafana.com/oss/release/grafana-10.4.2-1.x86_64.rpm

如果想要修改默认端口号,修改/etc/grafana/grafana.ini 文件中[server]下的http_port项,将

;http_port = 3000

修改为需要的端口号

http_port = 4000

重启服务即可

systemctl restart grafana-server

默认账号密码是admin/admin,但是登录会建议修改。

添加数据源

Connections—>Addd new connection,选择 InfluxDB
在这里插入图片描述
Query language 选择 Flux,填好URL、Organization、Token、Default Bucket,点击Save & test,即可。

添加可视化

Query需要填写Flux语言的查询语句。
由于通过snmp协议获取值仅为当前流量计数器的总值,获取流量还需要通过计数器差值并计算速率,需要用到derivative()函数。
示例代码(32位计数器版本)如下:

from(bucket: "traffic-test")
  |> range(start: -3h)
  |> filter(fn: (r) => r["_measurement"] == "traffic")
  |> filter(fn: (r) => r["_field"] == "ifInOctets")
  |> filter(fn: (r) => r["source"] == "192.168.101.229")
  |> filter(fn: (r) => r["ifDescr"] == "GigabitEthernet0/0/10")
  |> derivative(unit: 1s)

即可显示图形
在这里插入图片描述

Grafana+influxd2.0+jmeter性能测试监控平台 (1)在jmeter的lib/ext文件夹下添加jmeter-plugin-influxdb2-listener-1.5-all.jar包。(1)下载influxdb2-client-2.3.0-linux-amd64.tar.gz离线安装包。(3)解压:tar -xzvf influxdb2-2.1.1-linux-amd64.tar.gz。(2)安装rpm包:rpm -ivh telegraf-1.14.5-1.x86_64.rpm。(3)安装成功后,在influxd平台中添加监控面板。 阅读详情

相关推荐

性能监控平台搭建(grafana+telegraf+influxdb) 及 配置 jmeter后端监听

搞性能测试,可以搭建Grafana+Telegraf+InfluxDB 监控平台,监控服务器资源使用率、jmeter性能测试结果等。 telegraf: 是一个用 Go 编写的代理程序,可收集系统和服务的统计数据,并写入到 InfluxDB 数据库。 influxdb:是一个用 Go 编写的目前比较流行的时间序列数据库。grafana:是一个开箱即用的可视化工具,具有功能齐全的度量仪表盘和图形...

查拉图斯特拉面条的博客 573

Telegraf+Influxdb+Grafana自动化运维

适合人群1.运维工程师 2.开发工程师 3.运维开发工程师 4.运维监控工程师课程目标构建Telegraf+InfluxDB+Grafana自动化运维监控系统课程简介本课程使用三项技术Telegraf+Influxdb+Grafana的组合教大家如何快速构建自动化运维监控系统,具体讲解内容如下1.讲解了Influxdb的安装及基础使用2.讲解了Grafana获取Influxdb并进行数据展现3.讲解了Telegraf的采集系统指标数据4.讲解了Telegraf+Influxdb+Grafana构建自动化运维监控系统

自建机房监控系统:从传感器到可视化,低成本实现环境与设备监控

在IT基础设施管理中,监控系统是保障服务连续性的关键。其核心原理是通过数据采集、存储、分析与告警,实现对被管对象状态的实时感知。这套技术体系的价值在于将物理世界的状态数字化,变被动响应为主动预防,从而提升运维效率和系统可靠性。典型的应用场景包括数据中心、服务器机房、网络设备间等需要7x24小时稳定运行的环境。本文聚焦于如何利用开源软件栈(如Telegraf、InfluxDB、Grafana)结合廉价传感器硬件,构建一个覆盖温湿度、漏水、电力及设备状态的自定义监控解决方案,并详细阐述了从硬件选型、软件部署到告

weixin_30598225的博客 364

grafana 绘制交换机性能图

zabbix数据源设备版本不同,模板不同,产生监控项的名称也不通,可能导致不能通用配置,会出现无法展示数据,建议将要监控的项重新自动义架空项,改成统一名称再进行展示。zabbix版本:6.0.2。Grafana版本:v8.5。添加cpu瞬时使用值。添加cpu使用趋势图。...

水彩橘子 2389

工业边缘计算实战:基于树莓派与Grafana的物联网数据采集与可视化方案

边缘计算作为物联网和工业互联网的核心技术,通过在数据源头就近处理信息,有效降低延迟、减轻云端负载并保障数据隐私。其核心原理是将计算能力下沉到网络边缘的设备侧,实现数据的本地采集、预处理和实时响应。在工业场景中,边缘计算的价值尤为突出,能够满足对实时性、可靠性要求极高的生产监控和设备管理需求。典型的应用场景包括工厂设备状态监测、环境数据采集、预测性维护等。本文以树莓派生态的工业级硬件Edge Box RPi 200为边缘节点,结合开源可视化平台Grafana,构建了一套完整的“边缘采集-中心可视化”解决方案。

weixin_34392435的博客 363

AI驱动的轻量级网络监控系统实战

网络监控系统是保障企业IT基础设施稳定运行的关键组件,其核心原理是通过持续采集设备状态指标(如流量、延迟、错误率等)实现异常检测。传统方案依赖静态阈值告警,面对动态变化的网络环境时存在高误报率问题。通过引入LSTM神经网络构建时序预测模型,可自动学习网络流量模式,实现动态基线告警。结合Telegraf+InfluxDB+Grafana技术栈,既能满足每秒10万级数据点的处理需求,又能通过AI模型实现92%的准确率。这种智能监控方案特别适用于电商、游戏等存在明显业务波动的场景,其中SNMP协议采集与PyTor

weixin_34221276的博客 499

从零搭建数据机房监控可视化系统:Telegraf+InfluxDB+Grafana实战

在IT运维和系统监控领域,时序数据采集与可视化是构建可观测性体系的核心基础。其原理是通过采集代理实时收集服务器、网络设备及应用的关键性能指标,存储于专用的时序数据库中,再通过可视化平台进行聚合分析与图形展示。这项技术的核心价值在于打破数据孤岛,实现运维数据的统一管理与实时洞察,从而显著提升故障发现与定位效率。在数据中心运维、云原生监控、物联网等场景中,它已成为保障业务连续性的关键基础设施。本文聚焦于数据机房这一典型应用场景,详细演示如何利用Telegraf、InfluxDB和Grafana(TIG Stac

weixin_30613433的博客 384

开源网络监控工具选型与实战指南:Nagios、Zabbix、Prometheus深度对比

网络监控是保障系统稳定运行的基础能力,其核心在于通过采集、存储、分析和告警四大环节实现对基础设施的可观测性。开源网络监控工具凭借成本可控、源码透明和生态活跃等优势,成为中小团队与云原生环境的首选。Nagios Core代表轻量级状态检查范式,Zabbix提供企业级全栈监控能力,Prometheus则以拉模式、多维标签和强大查询语言定义云原生监控标准。三者分别适配资源受限场景、混合架构环境与动态容器集群,共同构成从单机到分布式系统的监控演进路径。本文基于真实生产案例,解析工具原理、部署要点与协同实践,助力工程

weixin_34130389的博客 292

企业级SNMP监控系统实战案例

的一键部署能力,不需要手动搭建InfluxDB和Grafana环境,连告警规则都可以通过可视化界面配置,大大缩短了交付周期。对于需要快速验证方案效果的团队来说,这种开箱即用的体验确实很高效。今天想和大家分享一个真实的企业网络监控项目实战经验——如何从零搭建一个完整的SNMP监控系统。这个方案已经在多个客户的生产环境中稳定运行,特别适合需要统一管理多品牌网络设备的场景。这个项目让我深刻体会到标准化的重要性——通过统一的数据模型,最终实现了对200+异构设备的分钟级监控。

AmberLeopard26的博客 97

AI赋能轻量级网络监控系统:11天快速搭建实战

网络监控系统是企业IT运维的核心组件,通过实时采集设备状态、流量数据等指标实现故障预警。传统方案依赖商业软件或专业团队,而现代轻量级架构结合AI技术可大幅降低实施成本。其技术原理主要基于时序数据库存储、流式数据处理和机器学习算法,其中TensorFlow Lite等框架能实现边缘侧智能分析。这种方案特别适合中小型企业,既能通过MQTT等协议实现低带宽传输,又利用Grafana等工具快速构建可视化看板。在实际应用中,AI技术可显著提升日志分类、流量预测等场景的准确率,配合Node-RED等低代码工具,单人即可

weixin_30772105的博客 475

5G专网工业落地:从白皮书到PLC级可执行闭环

5G专网不是单纯的无线通信升级,而是工业控制网络的确定性延伸。其核心原理在于将3GPP标准协议(如PFCP、GTP-U、S-NSSAI)与OT侧硬实时指标(PLC扫描周期、AGV响应时延、视频帧率)深度对齐,实现用户面下沉、切片QoS绑定和L2/L3协同隔离。技术价值体现在打破IT/OT语义鸿沟、降低集成试错成本、支撑毫秒级闭环控制。典型应用场景包括智能工厂AGV调度、机器视觉质检、远程PLC编程等。本文聚焦《工业园区5G专网部署白皮书(2021)》的工程转化,详解Open5GS轻量5GC搭建、UPF下沉部

weixin_34228387的博客 372

游戏服务器监控系统设计与优化实践

服务器监控是保障在线游戏稳定运行的核心基础设施,其核心原理是通过实时采集CPU、内存、网络等基础指标,结合游戏特有的业务指标(如帧同步延迟、匹配成功率等),构建全方位的健康度评估体系。在技术实现上,通常采用Telegraf等采集工具配合InfluxDB、Grafana等技术栈,实现从数据采集、传输、存储到可视化的完整链路。优秀的监控系统能显著提升故障发现效率,我们的实践表明,合理设计的游戏监控系统可将故障平均发现时间从23分钟缩短到47秒。特别是在实时性要求高的游戏场景中,针对UDP协议优化和动态负载均衡等

weixin_30536861的博客 249

网络遥测实践:从SNMP到gRPC主动推送的实时监控管道搭建

网络监控是运维的基石,但传统SNMP轮询存在实时性不足、数据滞后等瓶颈。遥测(Telemetry)技术通过设备主动推送数据,可将采集延迟从分钟级压缩到秒级,为精细化运维提供可靠数据支撑。本文从遥测的基本原理切入,解析YANG数据模型、GPB编码、gRPC传输等核心组件,并结合Telegraf、InfluxDB与Grafana,给出从设备订阅配置到可视化面板的完整搭建路径。同时分享采样间隔调优、心跳保活、DSCP优先保障等工程实践经验,以及避坑指南,帮助运维人员构建高精度、可排障的实时网络监控体系。

weixin_31742871的博客 237

数据机房运维监控可视化系统:从数据孤岛到智能决策的实战指南

运维监控是保障IT系统稳定性的基石,其核心在于对系统状态的可观测性。传统监控往往面临数据孤岛、告警风暴等痛点,运维人员需要在多个工具间手动关联分析,效率低下。现代运维监控可视化系统通过统一采集指标、日志和链路追踪数据,构建了一个关联分析的数据中台。其技术价值在于将海量异构数据转化为直观的态势感知,实现从被动响应到主动预防的范式转变。在应用场景上,它尤其适用于复杂的数据机房环境,能够快速定位故障根因,并指导运维决策。本文以Prometheus、Loki和Grafana为核心,实战演示如何构建一个集数据采集、存

weixin_34342905的博客 323

网络遥测实践指南:从SNMP到Telemetry,构建精细化运维管道

传统网络监控依赖SNMP轮询和NetFlow采样,在秒级微突发和队列拥塞面前往往失明。网络遥测(Network Telemetry)通过设备主动推送结构化数据,将网络设备转化为可实时查询的数据源,从根本上提升排障效率。基于YANG/OpenConfig统一建模,结合gNMI、MDT等订阅通道,可对接口计数器、队列深度、CPU/内存等关键指标做秒级采集。配合Telegraf接收遥测流、时序库存储与Grafana可视化,运维团队能搭建一套从数据采集到告警分析的最小管道,实现逐跳故障定位和容量预测。从基础监控到精

weixin_42520374的博客 224

DDR内存Prefetch机制详解:从DDR1到DDR4的技术演进与性能提升

本文深入解析DDR内存Prefetch机制从DDR1到DDR4的技术演进与性能提升。通过分析Prefetch技术的实现原理与Burst传输的协同机制,揭示DDR1的2n Prefetch、DDR2的4n Prefetch、DDR3的8n Prefetch以及DDR4的Bank Group架构创新如何显著提升内存带宽与系统性能。

weixin_30369041的博客 537

超融合架构下的全域监控与智能运维实践

超融合架构(HCI)作为新一代IT基础设施,通过软件定义方式整合计算、存储、网络资源,在提升部署效率的同时也带来了运维复杂度的挑战。全域监控技术通过统一数据采集框架,实现跨资源层的指标关联分析,解决了传统监控工具存在的'监控盲区'问题。在工程实践中,采用Telegraf采集代理结合Prometheus、Ceph等组件,构建从物理层到虚拟化的全栈监控体系。该技术特别适用于金融、电商等对稳定性要求高的场景,能有效预防存储容量耗尽、虚拟机性能下降等典型问题。通过智能告警引擎与自动化运维平台的结合,可实现从故障检测

weixin_42116058的博客 286

机器视觉最全面试题总结

空洞卷积(Atrous Convolution)也叫做膨胀卷积、扩张卷积,最初的提出是为了解决图像分割在用下采样(池化、卷积)增加感受野时带来的特征图缩小,后再上采样回去时造成的精度上的损失。空洞卷积通过引入了一个扩张率的超参数,该参数定义了卷积核处理数据时各值的间距。可以在增加感受野的同时保持特征图的尺寸不变,从而代替下采样和上采样a. 是普通的卷积过程(dilation rate = 1),卷积后的感受野为3b. 是dilation rate = 2的空洞卷积,卷积后的感受野为5。

@bangbang的博客 9204

动环监控可视化:实时性、准确性与可操作性的工程实践

动环监控可视化是面向数据中心、智能楼宇等关键基础设施的运行状态感知技术,其本质是将分散的动力与环境传感器数据,通过协议解析、时间同步、时序存储与多维渲染,转化为具备实时性、准确性、可溯性和可操作性的决策视图。它解决的是非专业人员3秒内理解系统健康状态、10秒内响应异常的核心问题,广泛应用于故障定位、能效分析、风险预警和运维闭环等场景。本文深入剖析从物理层传感器选型、边缘网关数据过滤,到InfluxDB时序存储、Grafana+Three.js可视化渲染的全栈实现,尤其聚焦实时性保障与告警精准收敛两大关键技术

weixin_34009794的博客 396

西工大noj100题python2024第三季21-30

【代码】西工大noj100题python2024第三季21-30。

weixin_70523540的博客 1574

2.4G/4G天线共存方案:Air8101多频段隔离设计实战(附波长计算表)

本文深入探讨了物联网设备中Wi-Fi 2.4GHz与4G LTE天线共存设计的实战方案。针对B40与2.4G频段紧邻带来的干扰挑战,文章系统性地提出了空间隔离、PCB布局优化、结构设计三重防线,并提供了关键的波长计算工具与系统级验证Checklist,旨在帮助工程师将多频段隔离设计从“玄学”变为可执行的工程规范。

weixin_29197051的博客 388

星型拓扑网络治理实战:从VLAN规划到监控告警与排障

网络架构的稳定性直接决定业务体验,而拓扑设计是根基。星型拓扑通过将流量汇聚至核心层,实现故障域隔离与路径可控,是中小规模网络最可靠的骨架。基于此原理,结合VLAN划分、DHCP Snooping、STP等基础技术,可构建清晰的逻辑边界与安全防线。进一步引入SNMP、端口镜像、Syslog等监控手段,能对带宽利用率、CRC错误帧、广播包速率等关键指标进行量化采集,让故障定位从盲目猜测转向数据驱动。这套方案适用于办公室、弱电工程及多设备家庭场景,核心价值在于降低排障成本、提升带宽治理效率。本文以starnet项

weixin_32576389的博客 245

每天一个优秀提示词学习收藏 - 文本创作篇(二)

宝子们,今天不藏私啦!我把这段时间四处搜罗、潜心钻研出来的文本创作 Prompt 提示词大礼包双手奉上,这可都是能让你的 AI 创作水平原地起飞的干货!走过路过不要错过,赶紧码住,开启你的 AI 创作进阶之旅吧!

2397
上一篇: linux小工具杂记
下一篇: (GitHub) telegraf snmp input plugin README
Re_Virtual
博客等级 码龄16年 88粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值