初识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分钟,没有问八股文。全都围绕项目在问,在提问的过程中会涉及到原理以及具体操作。整体面试感觉下来,面试官很随和,通过面试也能和面试官学到很多,交流了对未来行业的看法,也对某些技…...
基于物联网及云平台的光伏运维系统
系统结构 在光伏变电站安装逆变器、以及多功能电力计量仪表,通过网关将采集的数据上传至服务器,并将数据进行集中存储管理。用户可以通过PC访问平台,及时获取分布式光伏电站的运行情况以及各逆变器运行状况。平台整体结构如图所示。 光伏背景…...
Android kotlin 实现仿京东多个item向左自动排队(横向、动手滑动、没有首尾滑动)功能
文章目录 一、实现效果二、引入依赖三、源码实现1、适配器2、视图实现一、实现效果 二、引入依赖 在app的build.gradle在添加以下代码 1、implementation com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.6,这个里面带的适配器,直接调用就即可 BaseRecyclerViewAdapt…...
美团买菜基于 Flink 的实时数仓建设
美团买菜基于 Flink 的实时数仓建设 1. 背景介绍2. 技术愿景和架构设计3. 典型场景、挑战与应对3.1 动态 ETA 实时特征3.2 实时数据经营分析 4. 未来规划 1. 背景介绍 美团买菜是美团自营生鲜零售平台,上面所有的商品都由美团亲自采购,并通过供应链物流体…...
前端vue入门(纯代码)08
【08.webStorage--本地存储】 (1). 什么是 localStorage 和 sessionStorage ? 它们都是浏览器的一种本地存储数据的方式它们只是存在本地,即浏览器中,不会发送到服务器 它们的区别: localStorage:永久存在浏览器中…...
Xubuntu22.04之便签工具(一百八十)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…...
Unity入门4——重要组件与API
一、GameObject (一)成员变量 // 名字 print(this.gameObject.name); this.gameObject.name "Lesson4唐老狮改名"; print(this.gameOb…...
NFS服务器安装及NFS制备程序安装
NFS服务器安装及NFS制备程序安装 NFS服务器安装 NFS是一种分布式文件系统协议,由sun公司开发,旨在允许客户端主机可以像访问本地存储一样通过网络访问服务端文件 安装NFS服务器 登录需要安装NFS服务器的主机执行以下命令完成NFS安装 yum -y install…...
matlab+yalmip+cplex求解车辆路径优化问题(VRP)--matlab中yalmip函数介绍
YALMIP是一个MATLAB工具箱,用于建模和求解优化问题。它支持线性规划、二次规划、整数规划、鲁棒优化、半定规划等优化问题的建模和求解。下面是一些常用的函数的详细介绍: 1. sdpvar:用于定义优化问题中的变量。可以定义实数、向量和矩阵型变…...
实战:用dockerfile创建镜像实现springboot项目容器化
文章目录 前言技术积累docker基本操作命令dockerfile简介dockerfile指令说明 实战演示创建dockerfile创建挂载目录构建dockerfile启动容器完成验证 写在最后 前言 docker容器化方案是当下流行的服务部署方式,在软件领域举足轻重。我公司的测试、线上环境都采用dock…...
【Flask】配置项解析与加载
文章目录 默认配置表配置项加载方式直接配置存放在app.config字典通过.py配置文件通过class类加载对象通过.json配置文件通过环境变量配置内置命令行 默认配置表 配置项默认值备注DEBUGFalse是否开启 Debug 模式。如果为True,修改了代码,只需要保存&…...
集团做网站方案制作包含哪些方面/搜索引擎营销优缺点
每次遇见你电影《夜玫瑰》插曲 演唱:郭乔伊作词:郭乔伊 作曲:浮克编曲:浮克 那天遇到你也许就是所说 的天意 你那样呆呆望着我好像过了几个世纪你向我走来带起了满天的花雨我呼吸 再次遇到你 还是那样偶然而惊喜 你带有最…...
怎么用群晖nas做网站/什么网站推广比较好
实现一个函数,将一个字符串中的所有空格替换为"%20",例如输入字符串"How beautiful you are!",输出结果应为"How%20beautiful%20you%20are!"。首先,如果另开辟一块空间并且足够将全部空格都替换成"%20&qu…...
网站制作需求文档/seo搜索引擎优化推广
01常量和变量 1、常量:在程序运行过程中,其值不能被改变的量称为常量。分为以下几类:(1)整型常量(2)实型常量(3)字符常量①普通字符②转义字符(4)…...
wordpress如何清除导入的模板/产品推广方案要包含哪些内容
适用场景 为了解决丢失修改的问题,更新一条记录时,希望这条记录当前没有被别人修改,实现线程安全的数据更新 实现策略 添加version,版本号 取出记录时,获取当前version 更新时,带上version 执行更新时&…...
关于做公司网站建设你应该知道的/最佳磁力吧ciliba
C友元函数和友元类(C friend)详解 私有成员只能在类的成员函数内部访问,如果想在别处访问对象的私有成员,只能通过类提供的接口(成员函数)间接地进行。这固然能够带来数据隐藏的好处,利于将来程…...
做全景哪个网站不模糊/百度搜索关键词热度
CSS-HTML 知识点与高频考题解析 CSS 和 HTML 是网页开发中布局相关的组成部分,涉及的内容比较多和杂乱,本小节重点介绍下常考的知识点。 知识点梳理 选择器的权重和优先级盒模型 盒子大小计算margin 的重叠计算 浮动float 浮动布局概念清理浮动 定位p…...