云原生之运维监控实践-使用Telegraf、Prometheus与Grafana实现对InfluxDB服务的监测
背景
如果你要为应用程序构建规范或用户故事,那么务必先把应用程序每个组件的监控指标考虑进来,千万不要等到项目结束或部署之前再做这件事情。——《Prometheus监控实战》
去年写了一篇在Docker环境下部署若依微服务ruoyi-cloud项目的文章,当时使用的是 docker-compose
在单台机器上部署若依微服务 ruoyi-cloud
项目;在这个基础上,作为演示项目,我们计划实现对所有基础组件和微服务的监控。之前记录了搭建 Prometheus
与 Grafana
监控系统的过程。今天这篇文章主要是记录下对 InfluxDB
的监测,用到的 exporter
是: Telegraf
, Telegraf
是一个开源的、插件驱动的服务器代理,用于收集、处理、和发送各种性能数据。它是 InfluxData
的一部分,常用于与 InfluxDB
结合使用,但也支持输出到其他存储系统,如 Prometheus
、 Graphite
、 OpenTSDB
、 ElasticSearch
等。。
虚机资源
共用到了2台虚机,1台作为应用服务节点,1台运维监控节点。
主机名 | IP | 说明 |
---|---|---|
svc | 192.168.44.168 | 服务节点 |
ops | 192.168.44.169 | 监控节点 |
基本选用当前最新版本,即将安装的 Prometheus
和 Grafana
及组件版本信息如下:
- Prometheus版本:v2.54.1
- Grafana版本:11.2.0
- Telegraf版本:1.19.3
系统环境
[root@ops ~]# uname -a
Linux ops 5.10.0-182.0.0.95.oe2203sp3.x86_64 #1 SMP Sat Dec 30 13:10:36 CST 2023 x86_64 x86_64 x86_64 GNU/Linux
[root@ops ~]# cat /proc/version
Linux version 5.10.0-182.0.0.95.oe2203sp3.x86_64 (root@dc-64g.compass-ci) (gcc_old (GCC) 10.3.1, GNU ld (GNU Binutils) 2.37) #1 SMP Sat Dec 30 13:10:36 CST 2023
ops节点:docker-compose安装Prometheus与Grafana
参考云原生之运维监控实践-OpenEuler22.03SP3上安装Prometheus与Grafana实现主机状态监测
svc节点:docker-compose安装Telegraf
有了 Prometheus
与 Grafana
的基础环境,我们来实现对 InfluxDB
状态的监控:通过 Telegraf
快速采集 InfluxDB
运行数据并以 Prometheus
格式提供,供 Prometheus
进行采集和分析。
Telegraf
是一个高效且灵活的指标收集代理,它支持从多种来源收集数据并将其转发到多个输出目标。无论是服务器监控、应用性能监控,还是云服务、容器和网络设备的监控, Telegraf
都能够满足需求,并且具有极低的性能开销。通过其插件架构, Telegraf
提供了很高的可扩展性和灵活性,非常适合用于现代的监控和 Observability
系统中。
安装Telegraf
在需要监测的主机上,编辑 docker-compose.yml
文件,增加安装 Telegraf
配置。
- [root@svc monitoring]# vi docker-compose.yml
version: '3'
services:ops-telegraf:image: telegraf:1.19.3container_name: ops-telegrafrestart: unless-stoppedports:- "9273:9273"volumes:- "./telegraf/conf/telegraf.conf:/etc/telegraf/telegraf.conf"
- telegraf.conf
通过http://192.168.44.168:8086/debug/vars
获取InfluxDB
的基础信息,并配置了用户认证信息。此外,还添加了关于CPU、内存、磁盘、IO等系统参数抓取配置。
[[outputs.prometheus_client]]listen = ":9273"[[inputs.influxdb]]urls = ["http://192.168.44.168:8086/debug/vars"]username = "admin"password = "you-guess"[[inputs.cpu]]## Whether to report per-cpu stats or notpercpu = true## Whether to report total system cpu stats or nottotalcpu = true## If true, collect raw CPU time metrics.collect_cpu_time = false# Read metrics about disk usage by mount point
[[inputs.disk]]## By default, telegraf gather stats for all mountpoints.## Setting mountpoints will restrict the stats to the specified mountpoints.# mount_points = ["/"]## Ignore some mountpoints by filesystem type. For example (dev)tmpfs (usually## present on /run, /var/run, /dev/shm or /dev).ignore_fs = ["tmpfs", "devtmpfs"]# Read metrics about disk IO by device
[[inputs.diskio]]## By default, telegraf will gather stats for all devices including## disk partitions.## Setting devices will restrict the stats to the specified devices.# devices = ["sda", "sdb"]## Uncomment the following line if you need disk serial numbers.# skip_serial_number = false[[inputs.mem]][[inputs.swap]][[inputs.processes]][[inputs.kernel]][[inputs.system]]
通过命令: docker-compose up -d
完成镜像拉取、并启动 ops-telegraf
服务。
修改Prometheus配置
在 Prometheus
配置中增加对svc主机上 InfluxDB
运行状态的抓取配置。
- [root@ops monitoring]# vi ./prometheus/conf/prometheus.yml
scrape_configs:- job_name: 'ops-telegraf'scrape_interval: 15sstatic_configs:- targets:- 192.168.44.168:9273
重启 Prometheus
容器。
[root@ops monitoring]# docker restart ops-prometheus
验证telegraf安装结果
- 浏览器验证metrics端点
浏览器访问http://192.168.44.168:9273/metrics
- Prometheus控制台验证influx相关的指标
配置Grafana对主机状态的可视化
浏览器访问http://192.168.44.169:3000。
- 配置数据源
- 点击左侧菜单中的"Add new connection"。
- 选择或搜索"Data Sources"。
- 点击"Add data source"并选择"Prometheus"。
- 在"HTTP"部分输入Prometheus地址,eg:http://192.168.44.169:9090
- 点击"Save & Test"确认连接成功。
- 查看现成的仪表板
https://grafana.com/grafana/dashboards/这个页面是 Grafana
的官方仪表板目录,用户可以在这里找到和共享各种现成的 Grafana
仪表板。这些仪表板覆盖了多种监控需求,包括系统性能、应用监控、网络流量等。用户可以根据自己的需求搜索和导入适合的仪表板,提高监控效率和可视化效果。这里我们搜索 Influx
,结果中有个 InfluxDB
,点击进去可以查看详细的UI效果,复制仪表板的id,此处是11334。
- 导入现成的仪表板
- 在右侧菜单中点击"New"按钮,然后选择"Import"。
- 在输入框中,可以直接输入现成仪表板的ID,或者上传JSON文件。常用的主机监控仪表板ID是11334(InfluxDB)。
- 点击"Load",随后选择已配置好的数据源。
- 点击"Import"完成导入。
InfluxDB监控效果
小总结
If you can’t measure it, you can’t improve it!
没有度量就没有改进,实际上,监控系统有以下两个客户:技术,业务。上述内容即是对技术组件的监控,方便技术方面的改进与优化。
本文记录了在 Docker
环境下通过 Prometheus
和 Grafana
实现对 InfluxDB
服务的监控。具体步骤包括在服务节点上使用 docker-compose
安装 telegraf
,配置 Prometheus
抓取 InfluxDB
的监控数据,并在 Grafana
中配置数据源和导入现成的监控仪表板,以实现对时序数据库服务的性能监控和可视化。
Reference
- 使用docker-compose部署时序数据库InfluxDB1.8.4
- https://grafana.com/grafana/dashboards/
If you have any questions or any bugs are found, please feel free to contact me.
Your comments and suggestions are welcome!
相关文章:

云原生之运维监控实践-使用Telegraf、Prometheus与Grafana实现对InfluxDB服务的监测
背景 如果你要为应用程序构建规范或用户故事,那么务必先把应用程序每个组件的监控指标考虑进来,千万不要等到项目结束或部署之前再做这件事情。——《Prometheus监控实战》 去年写了一篇在Docker环境下部署若依微服务ruoyi-cloud项目的文章,当…...
什么是MySQL,有什么特点
什么是 MySQL? MySQL 是一个关系型数据库管理系统(RDBMS),由瑞典公司 MySQL AB 开发,后来被 Sun Microsystems 收购,最终成为 Oracle Corporation 的一部分。MySQL 是最流行的关系型数据库之一,…...
初始化mysql5.7
-- 环境变量 MYSQL_HOME %MYSQL_HOME%\bin -- 新增配置文件 my.ini [mysqld] port 3306 basedir D:/develop/MySQL/mysql-5.7.44-winx64 datadir D:/develop/MySQL/mysql-5.7.44-winx64/data max_connections 200character-set-serverutf8 default-storage-engineINNODB …...
C# 字典应用
using System;using System.Collections.Generic;class Program{static void Main(){// 创建一个字典,键是字符串类型,值是整数类型Dictionary<string, int> studentScores new Dictionary<string, int>();// 向字典中添加键值对// 原理&am…...
CDH安装与配置及相关大数据组件实践
CDH安装与配置及相关大数据组件实践 一、CDH 介绍 CDH(Cloudera’s Distribution Including Apache Hadoop)是一个基于 Web 用户界面的大数据平台版本。它支持大多数 Hadoop 组件,包括 HDFS、MapReduce、Hive、Pig、HBase、Zookeeper、Sqoo…...

fastapi 调用ollama之下的sqlcoder模式进行对话操作数据库
from fastapi import FastAPI, HTTPException, Request from pydantic import BaseModel import ollama import mysql.connector from mysql.connector.cursor import MySQLCursor import jsonapp FastAPI()# 数据库连接配置 DB_CONFIG {"database": "web&quo…...
YOLO系列基础(六)YOLOv1原理详解,清晰明了!
系列文章地址 YOLO系列基础(一)卷积神经网络原理详解与基础层级结构说明-CSDN博客 YOLO系列基础(二)Bottleneck瓶颈层原理详解-CSDN博客 YOLO系列基础(三)从ResNet残差网络到C3层-CSDN博客 YOLO系列基础…...

LeetCode100之环形链表(141)--Java
1.问题描述 给你一个链表的头节点 head ,判断链表中是否有环 示例1 输入:head [3,2,0,-4], pos 1 输出:true 解释:链表中有一个环,其尾部连接到第二个节点 示例2 输入:head [1,2], pos 0 输出…...

【ict基础软件赛道】真题-50%openEuler
以下哪个命令可用于查看当前shell的后台任务在openeuler中哪个符号用于创建后台执行进程在openeuler中使用哪个命令查看软件包的详细信息在openeuler中如果想要查看本机的主机名可以使用下面哪个命令在openeuler中使用的包管理器是在openeuler系统中要配置防火墙以允许ssh连接应…...

<AI 学习> 下载 Stable Diffusions via Windows OS
注意: 不能使用 网络路径 不再支持 HTTPS 登录,需要 Token 1. 获得合法的授权 Stability AI License — Stability AI 上面的链接打开,去申请 许可 2. 拥有 HuggingFace 账号 注册:https://huggingface.co/ 3. 配置 Tok…...

计算机图形学在游戏开发中的应用
💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 计算机图形学在游戏开发中的应用 计算机图形学在游戏开发中的应用 计算机图形学在游戏开发中的应用 引言 计算机图形学的基本概念…...

【CubeMX-HAL库】STM32H743II——SDRAM配置所遇问题
推荐的博客和视频: 1、【CubeMX-HAL库】STM32H743—FMC配置SDRAM_stm32h743 sdram 速度-CSDN博客 2、【【STM32CubeMX教程】STM32全外设原理、配置和常用HAL、LL库API使用详解】 3、在百度网盘里有STM32H743的例程:【通过网盘分享的文件:S…...
mac上使用docker搭建gitlab
在 Mac 上搭建 GitLab 可以使用 Docker 来简化安装过程 一、安装详细步骤 1. 安装 Docker 如果你尚未安装 Docker,可以通过以下步骤安装: 下载并安装 Docker Desktop for Mac.安装完成后,启动 Docker Desktop,确保 Docker 运行…...

二维数组操作
代码结构 main.c #include <stdio.h> #include <stdlib.h>#define LEN 100int main() {//通过指针引用多维数组# if 1//定义多维数组int a[3][5] {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};int row sizeof(a) /sizeof(a[0]);int colum sizeof(a[0]) / sizeof(a[0…...

uniapp设置tabBar高斯模糊并设置tabBar高度占位
1、设置tabBar高斯模糊 2、设置tabBar高度占位 (1)需要先在App.vue中获取一下 uni.getSystemInfoSync().windowBottom; //返回值是tabBar的高度(2)在app.vue中定义一个全局样式 3、在需要的页面底部,加上一个view&…...

上市公司代理成本数据大全(第一类和第二类代理成本均有)1991-2023年
一、计算方式: (1) 第一类代理成本 AC1:经营费用率,参考顶刊《管理世界》李文贵和余明桂(2015)老师的研究构建代理成本 AC2:管理费用率,参考C刊《经济管理》彭雅哲和汪昌云(2021) 老师的研究构建代理成本 AC3:资产周转…...
CA-Markov模型概述及其MATLAB实现
CA-Markov模型概述及其MATLAB实现 1 Markov模型2 CA-Markov模型2.1 元胞自动机(Cellular Aumatomata, 简称CA)2.1.1 构成2.2 准确度评估(Accuracy assessment)2.2.1 Kappa coefficient参考1.参考文献2.其它参考资料1 Markov模型 Markov模型是一种数学模型,用于描述系统在不…...

《生成式 AI》课程 第3講 CODE TASK执行文章摘要的机器人
课程 《生成式 AI》课程 第3講:訓練不了人工智慧嗎?你可以訓練你自己-CSDN博客 任务1:总结 1.我们希望你创建一个可以执行文章摘要的机器人。 2.设计一个提示符,使语言模型能够对文章进行总结。 model: gpt-4o-mini,#gpt-3.5-turbo, import…...

HCIP-HarmonyOS Application Developer 习题(二十二)
1、用户将手机导航迁移至智能手表之后,智能手表如果需要获取手机传过来的数据,从下列哪个方法中获取? A、onCompleteContinuation() B、onStartContinuation() C、onRestoreData() D、onSaveData() 答案:C 分析:FA发起迁移后&am…...
c++原型模式(Prototype Pattern)
原型模式(Prototype Pattern) 原型模式是一种创建型设计模式,它允许你通过复制现有对象来创建新的对象,而不是通过类实例化来创建对象。这种模式在开发时需要大量类似对象的情况下非常有用。原型模式的核心是一个具有克隆方法的接…...

网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...

【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
API网关Kong的鉴权与限流:高并发场景下的核心实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...