实验环境

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端口可以访问管理web,例如http://192.168.101.91:8089/

本次实验中,设置

Username: test
Password: teStUsEr
Organization: test
Bucket: test

记录下API token,后面telegraf和grafana连接influxdb要用,也可以创建一个All Access API Token。

influxdb启动后,可以参考官方文档的 Get Started ——> Write Data和Query Data进行写入数据和查询数据的测试,按照文档操作即可,唯一要注意的是,官网的样例数据是以秒为单位的,所以load data时精度一定要选择秒,否则数据都会被丢弃

telegraph

安装

配置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

默认配置文件位置为/etc/telegraf/telegraf.conf,原始配置文件内容极多,可以仅生成需要的配置,例如:

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

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

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

如果使用systemctl启动telegraf,则会应用/etc/telegraf/telegraf.conf和/etc/telegraf/telegraf.d下的所有*.conf配置文件。如果有多个不同的采集任务,可以在一个配置文件中写多个Inputs插件,也可以在/etc/telegraf/telegraf.d下写多个配置文件。

测试

实验示例为采集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等其他端口。

一条数据示例如下:

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

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()函数。

示例代码如:

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.169.229")
|> filter(fn: (r) => r["ifDescr"] == "GigabitEthernet0/0/10")
|> derivative(unit: 1s)

即可显示图形

telegraph + influxdb + grafana 实现交换机流量展示的更多相关文章

  1. 【jmeter】基于InfluxDB&Grafana的JMeter实时性能测试数据的监控和展示

    本文主要讲述如何利用JMeter监听器Backend Listener,配合使用InfluxDB+Grafana展示实时性能测试数据 关于JMeter实时测试数据 JMeter从2.11版本开始,命令 ...

  2. jmeter --- 基于InfluxDB&Grafana的JMeter实时性能测试数据的监控和展示

    转自:https://blog.csdn.net/RickyOne_RR/article/details/50637839 本文主要讲述如何利用JMeter监听器Backend Listener,配合 ...

  3. 转:基于InfluxDB&Grafana的JMeter实时性能测试数据的监控和展示

    本文主要讲述如何利用JMeter监听器Backend Listener,配合使用InfluxDB+Grafana展示实时性能测试数据 关于JMeter实时测试数据 JMeter从2.11版本开始,命令 ...

  4. 基于InfluxDB+Grafana打造大数据监控利器--转

    这是一个大数据爆发的时代.面对信息的激流.多元化数据的涌现,我们在获取.存储.传输.理解.分析.应用.维护大数据时,无疑需要一种便捷的信息交流通道,以便快速.有效.准确地理解和驾驭这个过程.本文将通过 ...

  5. Nagios+InfluxDB+Grafana

    1. 概述 Nagios负责收集数据,是一款开源的免费网络监视工具. influxDB负责存储数据,是一个开源的时间序列数据库.比较适合存储监控或者部署记录这些时序数据. Grafana负责数据的图形 ...

  6. influxdb + Grafana可视化监控平台

    在centos6.5上influxdb + Grafana监控平台配置: 1.RedHat and CentOS users can install the latest stable version ...

  7. 基于telegraf+influxdb+grafana进行postgresql数据库监控

    前言 随着公司postgresql数据库被广泛应用,尤其是最近多个项目在做性能测试的时候都是基于postgresql的数据库,为了确定性能瓶颈是否会出现在数据库中,数据库监控也被我推上了日程.在网上找 ...

  8. Metrics.net + influxdb + grafana 构建WebAPI的自动化监控和预警

    前言 这次主要分享通过Metrics.net + influxdb + grafana 构建WebAPI的自动化监控和预警方案.通过执行耗时,定位哪些接口拖累了服务的性能:通过请求频次,设置适当的限流 ...

  9. 详解k8s原生的集群监控方案(Heapster+InfluxDB+Grafana) - kubernetes

    1.浅析监控方案 heapster是一个监控计算.存储.网络等集群资源的工具,以k8s内置的cAdvisor作为数据源收集集群信息,并汇总出有价值的性能数据(Metrics):cpu.内存.netwo ...

  10. .NET Core微服务之基于App.Metrics+InfluxDB+Grafana实现统一性能监控

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.关于App.Metrics+InfluxDB+Grafana 1.1 App.Metrics App.Metrics是一款开源的支持. ...

随机推荐

  1. 5W1H聊开源之Why——为什么要参与开源?

    中国开源的发展速度发展加快,个人和组织对于为开源作贡献有着前所未有的激情.据<2020年IT行业项目管理调查报告>,约四成受访者以自己开发开源项目.为他人提交项目代码.作为成员开发维护项目 ...

  2. #矩阵乘法,斐波那契#洛谷 2544 [AHOI2004] 数字迷阵

    题目 分析 oeis找规律得到第一列和第二列的通项公式,然后矩阵乘法 代码 #include <cstdio> #include <cctype> #include <c ...

  3. OpenHarmony社区运营报告(2022年10月)

    本月快讯 ● <深圳市推动软件产业高质量发展的若干措施>于10月24日发布. ● 社区共发展逾5000位贡献者累计为社区提交超过11万个PR,深圳市优博终端科技有限公司(以下简称" ...

  4. 初学STM32 SDIO (二)

    ​ SD命令由主机发出,以广播命令和寻址命令为例,广播命令是针对与SD主机总线连接的所有从设备发送的,寻址命令是指定某个地址设备进行命令传输. 1.SD命令格式 SD命令格式固定为48bit,都是通过 ...

  5. TAMUctf 2024 RSA-证书修复-总结

    上周末跟朋友们参加了TAMUctf 2024国际赛,最终排在了第14名,还是很不错的成绩. 本次比赛Monk师傅也是出了三个RSA证书修复问题的题目,质量很不错.这里给大家整理一下供学习. Trunc ...

  6. amcap使用方法

    1.选择设备 device 里面显示的是设备,分割线上面是视频设备,分割线下面是音频设备 2.打开图像 options > Preview  勾选上就是打开视频,再次点击取消勾线就是关闭视频 3 ...

  7. Hessian反序列化分析

    RPC协议 RPC全称为Remote Procedure Call Protocol(远程调用协议),RPC和之前学的RMI十分类似,都是远程调用服务,它们不同之处就是RPC是通过标准的二进制格式来定 ...

  8. HarmonyOS实现静态与动态数据可视化图表

    一. 样例介绍 本篇Codelab基于switch组件和chart组件,实现线形图.占比图.柱状图,并通过switch切换chart组件数据的动静态显示.要求实现以下功能: 1.  实现静态数据可视化 ...

  9. 报表如何批量导出成 excel 文件

    需求说明 报表展现后可以通过工具栏中的导出按钮将当前展现的报表导出成 excel 文件,但是在实际使用中通常会要求报表不需要展现,直接通过一些操作将报表导出成 excel 文件,并且往往会要求批量导出 ...

  10. C#微服务必学清单

    在 C# 领域,有一些不错的微服务书籍和开源框架,对于学习微服务相关知识非常有帮助.以下是一些建议您阅读的微服务书目和开源框架. 微服务书目: 1. <Building Microservice ...