初识Telegraf、InfluxDB和Grafana铁三角形成的监控可视化解决方案
文章目录
- 前言
- 原始的监控靠人盯
- 进化的监控靠批处理脚本
- 高端的监控靠完整的可视化解决方案
- Telegraf、InfluxDB和Grafana铁三角
- Telegraf
- InfluxDB
- Grafana
- Grafana仪表板展示
- 服务器资源总览
- 负载和内存使用
- 网络带宽
- 磁盘IO
- IO延迟
- 其他指标
- 进程信息
- 总结
前言
数据监控目前用于各行各业,服务器开发也不例外,进程什么时候被杀死了?内存占用已经达到98%了怎么早点没发现,网络带宽已经占满了怪不得玩家反馈说登录不上去了,这些都是服务器开发人员常常听到的“抱怨”,他们都涉及到服务器资源的使用情况,如果有一种方便的途径可以高效的监控各个服务器的情况就好了,单靠人去各个服务器查看是不现实的,今天就来简单介绍一种我刚刚学到的方案。
原始的监控靠人盯
如果服务器只有一台或者很少,可以每隔一段时间去服务器上看看,top 看一下整体运行情况,free 查一下内存详情,df 看一下硬盘还够不够,iftop 看一下网络带宽情况,不要觉得不可能,有次测试我真的就是开了好几个远程窗口来盯着各个指标,不过人的精力有限,这样做毕竟不是长久之计。
进化的监控靠批处理脚本
随着服务器的增多,靠人盯的方式的已经达不到要求了,看看上面的这些命令都是已知的,并且只需要定期得到这些值就可以了,完全可以使用脚本定期执行来做呀,把上面提到的命令封装成脚本然后定期执行得到结果列表,然后发送到指定的地址,我们就可以只分析这些结果,没必要登录到各个服务器上去查询了。
高端的监控靠完整的可视化解决方案
懒惰是科学发展的推动力,使用脚本收集数据就不用登录服务器去实时查询了,那能不能帮我自动分析结果,或者在异常时直接给出提醒,因为我连分析的操作都不想做,肯定有人这样想当然也有人这样做了,并且形成了成熟的解决方案,我们只需要简单搭建和配置就可以早点下班了,半夜收到服务器报警电话时起来解决就可以了。
Telegraf、InfluxDB和Grafana铁三角
Telegraf是一个用于收集、处理和发送指标数据的代理,它可以与各种数据源和监控系统集成,定期收集数据并将其发送到目标位置。
InfluxDB是一个开源的时间序列数据库,用于存储和查询大量时间序列数据。它被广泛用于存储来自Telegraf等数据收集器的指标数据。
Grafana用于创建交互式仪表板,从各种数据源中提取数据,并将数据以图表、图形和表格等形式展示出来。
通过将Telegraf用作数据收集代理,将数据发送到InfluxDB中存储,然后使用Grafana从InfluxDB中提取数据进行可视化,这个铁三角组合提供了一个强大的监控和数据可视化解决方案。
Telegraf
Telegraf是一个开源的代理程序,用于收集、处理和发送指标数据。它设计用于高效地收集各种类型的数据,并将其发送到不同的目标位置,如时序数据库、消息队列等,具有以下是关键特点和功能:
-
插件架构:Telegraf采用模块化的插件架构,具有丰富的输入和输出插件。它支持多种输入插件,如系统性能指标、日志文件、数据库查询、API调用等,以便从不同的数据源中收集数据。同样,Telegraf还支持多种输出插件,如InfluxDB、Elasticsearch、Kafka等,用于将收集到的数据发送到不同的目标位置。
-
多平台支持:Telegraf可在多个操作系统上运行,包括Linux、Windows和macOS,以适应不同的部署环境和需求。
-
轻量级和高性能:Telegraf被设计为轻量级和高性能的代理程序,可以在资源受限的环境中高效运行。它使用Golang编写,具有低的内存和CPU占用,并能够处理高并发的数据收集和处理任务。
-
数据转换和处理:Telegraf提供了灵活的数据转换和处理功能,可以对收集到的数据进行过滤、转换、聚合等操作。它支持各种数据处理任务,如标签添加、数据格式转换、聚合计算等,以便对数据进行预处理和清洗,使其适应目标存储或分析平台的要求。
-
插件生态系统:Telegraf拥有一个活跃的插件生态系统,用户可以根据自己的需求选择和配置适当的插件。社区提供了大量的插件,覆盖了各种数据源和目标位置,使得Telegraf具备广泛的适用性和灵活性。
InfluxDB
InfluxDB是一个开源的高性能时序数据库,专门用于存储和处理时间序列数据。它被设计为能够高效地处理大规模的时间相关数据,并提供快速的数据插入、查询和聚合能力,具有关键特点和功能:
-
时序数据存储:InfluxDB专注于存储和管理时间序列数据,如传感器数据、监控指标、日志事件等。它使用特定的数据结构和索引机制,以优化对时间序列数据的写入和查询操作。
-
高性能和可扩展性:InfluxDB被设计为具有高吞吐量和低延迟的数据库系统。它采用了一系列的优化策略,包括压缩算法、分片存储、数据分区等,以实现高效的数据处理和查询性能。此外,InfluxDB还支持水平扩展,可以通过添加更多节点来提高性能和容量。
-
查询语言:InfluxDB提供了InfluxQL和Flux两种查询语言。InfluxQL是类似于SQL的查询语言,专门用于时间序列数据的查询和聚合操作。Flux是一种功能更强大和灵活的查询语言,它支持更复杂的数据处理和转换操作,并具有扩展性更好的能力。
-
数据保留策略:InfluxDB允许定义数据保留策略,以指定数据在数据库中的保存期限和存储策略。这样可以根据数据的时效性需求和存储资源限制来管理数据的保留和清理。
-
数据一致性和持久性:InfluxDB采用了写时复制(Write Ahead Log)的机制,确保数据的一致性和持久性。它使用持久化引擎来保证数据在故障情况下的可靠性,同时提供数据备份和恢复的功能。
-
整合生态系统:InfluxDB具有丰富的整合生态系统,可以与各种数据源和工具集成。它支持与Telegraf等数据收集代理的无缝集成,以及与Grafana等数据可视化工具的联合使用,提供完整的监控和数据处理解决方案。
Grafana
Grafana是一个开源的数据可视化和监控平台,用于创建、展示和分析实时指标和数据的交互式仪表板。它提供了丰富的可视化选项和灵活的配置,使用户能够轻松地创建各种类型的仪表板,并实时监控和分析数据,具有以下关键特点和功能:
-
数据源支持:Grafana支持广泛的数据源,包括各种数据库(如MySQL、PostgreSQL、InfluxDB)、时序数据库(如Prometheus、Graphite)、日志文件、API等。它提供了内置的数据源插件和API接口,以便与不同的数据源进行集成和数据获取。
-
丰富的可视化选项:Grafana提供多种可视化选项,如折线图、柱状图、仪表盘、热力图等,可以根据数据的特点选择适合的图表类型。它还支持动态图表、图表注释、数据标记等功能,以增强数据的可视化效果和交互性。
-
交互式仪表板:Grafana的仪表板具有交互式的功能,用户可以自由地缩放、选择时间范围、过滤数据等。它还支持实时数据更新和自动刷新,以确保仪表板上的数据保持最新。
-
告警和通知:Grafana提供了强大的告警功能,用户可以根据自定义的条件设置告警规则,并通过电子邮件、Slack等渠道接收告警通知。这样可以及时发现数据异常或重要指标的变化。
-
用户管理和权限控制:Grafana支持多用户和团队管理,可以设置不同的用户角色和权限,以控制对仪表板和数据的访问和操作。它还提供了LDAP、OAuth等身份验证和单点登录功能,与企业的用户管理系统集成更加便捷。
-
社区支持和插件生态系统:Grafana拥有庞大的开源社区支持和活跃的插件生态系统。用户可以从社区中获取各种主题、模板和插件,以扩展和定制Grafana的功能和外观。
Grafana仪表板展示
说实话第一次看到Grafana仪表板还是挺震撼的,展示的信息很多,可以帮助服务器维护人员分析很多问题,下面来展示一些主要的面板。
服务器资源总览

负载和内存使用

网络带宽

磁盘IO

IO延迟

其他指标

进程信息

总结
- Telegraf、Grafana和InfluxDB通常被称为"铁三角",因为它们经常一起使用,形成一个完整的监控和数据可视化解决方案
- Telegraf是一个用于收集、处理和发送指标数据的代理,它可以与各种数据源和监控系统集成,定期收集数据并将其发送到目标位置
- InfluxDB是一个开源的时间序列数据库,用于存储和查询大量时间序列数据。它被广泛用于存储来自Telegraf等数据收集器的指标数据
- Grafana用于创建交互式仪表板,从各种数据源中提取数据,并将数据以图表、图形和表格等形式展示出来
- Grafana的仪表板真的挺漂亮的
把烦恼痛了吞了认了算了
不对别人讲
谁还没有辜负几段 昂贵的时光
相关文章:
初识Telegraf、InfluxDB和Grafana铁三角形成的监控可视化解决方案
文章目录 前言原始的监控靠人盯进化的监控靠批处理脚本高端的监控靠完整的可视化解决方案Telegraf、InfluxDB和Grafana铁三角TelegrafInfluxDBGrafana Grafana仪表板展示服务器资源总览负载和内存使用网络带宽磁盘IOIO延迟其他指标进程信息 总结 前言 数据监控目前用于各行各业…...
【哈佛积极心理学笔记】第20课 幸福与幽默
第20课 幸福与幽默 The vanguard of the positive psychology revolution: Our brain is basically a single processor, capable of consciouly choosing to devote resources either to the pain and suffering on one side, or viewing the world that lens of something l…...
设计模式-责任链模式
责任链模式 请求发送者和接收者连接成一条链,一个对象处理完,交给下一位,沿着链传递请求,这就是责任链模式。 角色 抽象处理者(Handler) 定义了处理请求的方法具体处理者(ContreteHandler&am…...
不变的是需求,变化的是解决方法和工具:探讨iPaaS与ESB的差异
在企业数字化转型过程中,企业需要面临日益复杂的业务和数据集成挑战。为了应对这些挑战,需要借助适当的解决方法和工具来实现系统间的通信和数据传输。在这方面,iPaaS(Integration Platform as a Service)和ESB&#x…...
网络解析----faster rcnn
Faster R-CNN(Region-based Convolutional Neural Network)是一种基于区域的卷积神经网络用于目标检测任务的模型。它是一种两阶段的目标检测方法,主要包含以下几个步骤: Region Proposal Network(RPN): F…...
modbus TCP协议讲解及实操
具体讲解 前言正文modbus tcp主机请求数据基本讲解Modbus Poll工具简单使用讲解 modbus tcp从机响应数据Modbus Slave工具简单使用讲解 前言 关于modbus tcp从0到1的讲解,案例结合讲解,详细了解整个modbus的可以参考这个:详解Modbus通信协议…...
既有内销又有外贸,多样性外贸业务管理解决方案
随着外贸数字化贸易全球化的深入发展,出口、进口、内销业务越来越受到关注。外贸业务是企业在海外市场进行商品贸易,而内销业务是企业在国内市场进行商品贸易。在管理这种业务时,想要实现降本增效,企业需要有一套成熟的管理解决方…...
spring eurake中使用IP注册
在开发spring cloud的时候遇到一个很奇葩的问题,就是服务向spring eureka中注册实例的时候使用的是机器名,然后出现localhost、xxx.xx等这样的内容,如下图: eureka.instance.perferIpAddresstrue 我不知道这朋友用的什么spring c…...
c# 从零到精通 form界面之listView控件
c# c# 从零到精通 form界面之listView控件 添加值 设置值 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace Test06 { public partial cla…...
Qt6.5.1+WebRTC学习笔记(十二)环境搭建流媒体服务器(ubuntu22.04+SRS)
前言 若只是实现一对一通信,仅使用webrtc就足够了。但有时间需要进行多个人的直播会议,当人比较多时,建议使用一个流媒体服务器,笔者使用的是SRS。 这个开源项目资料比较全,笔者仅在此记录下搭建过程 一、准备 1.操…...
LeetCode 9. 回文数
LeetCode 9. 回文数 一、题目描述: 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数…...
Linux系统之部署Teleport堡垒机系统
Linux系统之部署Teleport堡垒机系统 一、Teleport介绍1.1 Teleport简介1.2 Teleport特点1.3 支持操作系统 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、检查本地环境3.1 检查本地操作系统版本3.2 检查系统内核版本 四、部署teleport服务端4.1 创建部署目录4.2 下载t…...
【二叉树part02】| 102.二叉树的层序遍历、226.翻转二叉树、101.对称二叉树
目录 ✿LeetCode102.二叉树的层序遍历❀ ✿LeetCode226.翻转二叉树❀ ✿LeetCode101.对称二叉树❀ ✿LeetCode102.二叉树的层序遍历❀ 链接:102.二叉树的层序遍历 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地ÿ…...
【干货】Android系统定制基础篇:第十五部分(Android支持鼠标右键返回、GPIO 控制方案、属性标识USB摄像头的VID与PID)
1、修改 frameworks/native/services/inputflinger/InputReader.cpp 如下: diff --git a/frameworks/native/services/inputflinger/InputReader.cpp b/frameworks/native/services/inputflinger/Inp index 7207a83..2721800 100755 --- a/frameworks/native/servi…...
ubuntu18 修改dns服务器地址为google
域名解析被干扰的有点严重,直接使用谷歌dns服务器来解析ip 第一、永久修改DNS方法 1、修改 /etc/systemd/resolved.conf 文件 vi /etc/systemd/resolved.conf这里我们可以看到这些参数: # 指定 DNS 服务器,以空白分隔,支持 IP…...
RHCE shell 作业一
1. 设置邮箱 [rootserver ~]# yum install s-nail -y [rootserver ~]# vim /etc/s-nail.rc 编写脚本 [rootserver ~]# vim homework1.sh 设置定时任务 [rootserver ~]# vim /etc/crontab 2. [rootserver ~]# vim homework2.sh 测试: 3. [rootserve…...
Qqis中采用栅格工具生成XYZ瓦片(目录)简介
目录 前言 一、Qgis的相关功能 1、数据准备 2、将两个xyz图源添加到图层 二、Qgis栅格工具生成 1、生成xyz图块工具在哪里 2、生成xyz图块怎么用 3、下载结果 4、Leaflet加载离线瓦块 总结 前言 在上一篇博客中,介绍了一种在Qgis中基于QMetaTiles插件进行xyz瓦…...
【Axure教程】根据标签数自动调整尺寸的多选下拉列表
多选下拉列表常用于需要用户从一组选项中选择多个选项的情况。它提供了一个下拉菜单,用户可以点击展开并选择他们感兴趣的多个选项。多选下拉列表可以用于展示可选标签,并允许用户选择多个标签。例如,在一个博客发布界面上,可以…...
【python】js逆向基础案例——有道翻译
前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 课程亮点: 1、爬虫的基本流程 2、反爬的基本原理 3、nodejs的使用 4、抠代码基本思路 环境介绍: python 3.8 pycharm 2022专业版 >>> 免费使用教程文末名片获取 requests >>> pip install req…...
面经系列.飞猪 Java开发工程师.杭州.2023.6.14一面面经
本人是2023年6月14日面试的,面试的岗位是飞猪的Java研发工程师,地点是杭州,面试时长37分钟,没有问八股文。全都围绕项目在问,在提问的过程中会涉及到原理以及具体操作。整体面试感觉下来,面试官很随和,通过面试也能和面试官学到很多,交流了对未来行业的看法,也对某些技…...
ComfyUI全面掌握-知识点详解——自定义节点安装与首次 AI 绘图(实操+排错)
本文为系列第 6 篇(第一章第 5 个知识点),讲解自定义节点的作用与安装方式,手把手教读者加载默认工作流、完成首次 AI 绘图,解读核心参数并排查常见问题。 目录 一、引言:自定义节点是什么?为什…...
大模型Agent面试通关秘籍!小白程序员必备,附收藏版学习资源
大模型Agent面试通关秘籍!小白程序员必备,附收藏版学习资源 本文分享了作者在阿里巴巴大模型Agent应用算法岗面试中的真实经验,涵盖了从一面到三面的高频技术问题及答题思路,包括大模型Agent核心模块解析、微调与提示工程关系、Ag…...
从ENVI SARscape到SNAP:手把手教你迁移哨兵1 GRD数据预处理流程(含避坑指南)
从ENVI SARscape到SNAP:哨兵1 GRD数据预处理全流程迁移实战 当雷达遥感领域的工具生态逐渐向开源化倾斜,许多长期依赖ENVI SARscape的研究者开始面临工具迁移的挑战。本文将聚焦哨兵1号GRD数据的预处理流程,为需要从商业软件转向开源工具的用…...
EmbedClaw:RAG应用中文本智能分块与向量化检索的工程实践
1. 项目概述:一个面向嵌入向量检索的“机械爪”最近在折腾RAG(检索增强生成)应用,发现向量数据库的检索效果,很大程度上取决于你“喂”进去的文本是怎么被切成一块一块的(也就是分块,Chunking&a…...
AI应用着陆页模板:快速构建专业产品门户的实战指南
1. 项目概述:一个面向AI应用落地的着陆页模板 最近在折腾AI应用开发的朋友,估计都遇到过同一个问题:模型和算法好不容易调好了,后端API也搭起来了,但一到“怎么让用户用起来”这一步,就卡壳了。尤其是那个…...
这家头部智能家居品牌是如何让全渠道电商闭环运营落地?
在电商渠道愈发多元的当下,让很多企业陷入 “数据多却用不好” 的困境。这不是个别现象,而是绝大多数全渠道电商企业正在经历的“成长烦恼”。今天,我们用一个真实案例,带您看看如何用一套系统,彻底告别这些噩梦。这家…...
一分钟看懂大模型备案
大模型备案,全称 “生成式人工智能服务上线备案”,是国内面向公众提供大模型服务的法定合规流程,核心是审核模型安全、数据合规与内容可控,未备案违规上线最高罚一千万元,该处罚依据主要来自两大核心法规:1…...
第六届机械制造与智能控制国际学术会议(ICMMIC 2026)
第六届机械制造与智能控制国际学术会议(ICMMIC 2026)将于2026年6月12-14日在中国浙江湖州隆重举行。本次会议旨在汇聚全球“机械制造、智能控制”领域的学者、专家、研发者和技术人员,共同探讨学术前沿,分享科研成果,促…...
Taotoken官方价折扣活动对于高频用户的实际成本影响分析
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken官方价折扣活动对于高频用户的实际成本影响分析 1. 理解Taotoken的计费模式 Taotoken平台采用按Token消耗量计费的模式。…...
初创公司如何利用Taotoken快速构建AI产品原型
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 初创公司如何利用Taotoken快速构建AI产品原型 对于资源有限的初创团队而言,验证产品想法、快速推出原型是生存和发展的…...
