初识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分钟,没有问八股文。全都围绕项目在问,在提问的过程中会涉及到原理以及具体操作。整体面试感觉下来,面试官很随和,通过面试也能和面试官学到很多,交流了对未来行业的看法,也对某些技…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...
脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...
