初识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分钟,没有问八股文。全都围绕项目在问,在提问的过程中会涉及到原理以及具体操作。整体面试感觉下来,面试官很随和,通过面试也能和面试官学到很多,交流了对未来行业的看法,也对某些技…...

利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...

《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...