从实时监控到智能洞察:Grafana 和 CnosDB 的无限潜力

news2024/11/27 11:45:21

在今天的数字化世界中,监控系统对于维护应用程序和基础设施的稳定性至关重要。本文将介绍如何使用 Grafana 和 CnosDB 构建强大的监控体系,以便实时监视性能、发现问题并采取及时的措施。

CnosDB已正式上架Grafana插件市场

Grafana:开源监控和仪表工具

Grafana 是一款流行的开源监控和仪表工具,它提供了丰富的数据可视化功能和易于使用的仪表编辑器。您可以在 Grafana 中创建各种类型的图表,包括折线图、柱状图、仪表盘等,以展示您的监控数据。

CnosDB:高性能时间序列数据库

CnosDB 是一种高性能、分布式的时间序列数据库,具有出色的水平扩展性和可用性。它适用于各种场景,包括大规模的时序数据存储和分析。

步骤 1:安装 CnosDB

更多部署方式请参考:安装 | 文档CnosDB 的文档icon-default.png?t=N7T8https://docs.cnosdb.com/zh/latest/deploy/install.html

1.安装并启动 CnosDB

docker run --name cnosdb -p 8902:8902 -d cnosdb/cnosdb:community-latest cnosdb run -M singleton

2.创建数据库

用于存储监控数据

curl -i -u "root:" -XPOST "http://localhost:8902/api/v1/sql" -d 'CREATE DATABASE node_metrics'

步骤 2:采集主机数据

以下内容请在 mac 环境中体验,其他操作系统请参考:Install Telegraf | Telegraf 1.27 Documentation

1.下载 Telegraf

brew update
brew install telegraf

2.修改采集指标配置如下

vim /opt/homebrew/etc/telegraf.conf

[global_tags]
[agent]
  interval = "10s"
  round_interval = true
  metric_batch_size = 1000
  metric_buffer_limit = 10000
  collection_jitter = "0s"
  flush_interval = "1s"
  flush_jitter = "0s"
  precision = "0s"
  hostname = ""
  omit_hostname = false
[[outputs.http]]
  url = "http://127.0.0.1:8902/api/v1/write?db=node_metrics"
  timeout = "5s"
  method = "POST"
  username = "root"
  password = ""
  data_format = "influx"
  use_batch_format = true
  content_encoding = "identity"
  idle_conn_timeout = 10
[[inputs.cpu]]
  percpu = true
  totalcpu = true
  collect_cpu_time = false
  report_active = false
  core_tags = false
[[inputs.disk]]
  ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
[[inputs.diskio]]
[[inputs.kernel]]
[[inputs.mem]]
[[inputs.processes]]
[[inputs.swap]]
[[inputs.system]]
[[inputs.net]]

3.启动 Telegraf 数据采集工具

brew services start telegraf

步骤 3:安装 Grafana

部署方式请参考:Grafana documentation | Grafana documentation

docker run --name grafana -p 3000:3000 -d grafana/grafana:9.3.6

步骤 4:配置 CnosDB 数据源

Grafana 支持 CnosDB 的原生连接插件

1.安装 CnosDB 数据源插件

docker exec grafana /bin/sh grafana-cli plugins install cnos-cnosdb-datasource

⚠️ 安装完插件后重启才会生效

docker restart grafana

2.在 Grafana 添加 CnosDB 数据源连接

接下来,我们需要将 CnosDB 设置为 Grafana 的数据源,以便从数据库中提取监控数据。在 Grafana 中配置 CnosDB 数据源的步骤如下:

● 登录 Grafana 的 Web 界面:http://127.0.0.1:3000。

● 导航到 "Configuration" > "Data Sources"。

● 单击 "Add data source" 按钮。

● 在数据源类型中选择 "CnosDB"。

● 在配置中填写 CnosDB 的连接信息,包括主机、端口、用户名和密码。

● 单击 "Save & Test" 按钮以测试连接是否成功。

步骤 5:导入 Dashborad

添加 Dashborad 用于可视化主机运行情况,步骤如下:

● 导航到 "Dashboards"

● 单击 "New" > "Import"

● 将 JSON 文件icon-default.png?t=N7T8https://github.com/cnosdb/docs/blob/main/assets/grafana_dashboard.json复制到 "Import via panel json" 中

● 单机 "Load" 按钮

● 选择刚才设置好的数据源,单击 "Import"

● 导入成功后即可看见图表

步骤 6:设置警报规则

监控体系不仅用于可视化数据,还用于警报。您可以设置警报规则,以便在特定条件下通知您的团队。在 Grafana 中设置警报规则的步骤如下:

  1. 在仪表板编辑模式下,选择要设置警报的图表。

  2. 单击图表右上角的 "Edit" 按钮。

  3. 在 "Alert" 选项卡中,配置警报规则,包括触发条件和通知方式(例如电子邮件通知、Slack 通知等)。

  4. 单击 "Apply" 按钮保存警报规则。

总结

最后,部署和维护监控体系是一个持续的过程。确保定期更新 Grafana 和 CnosDB 的版本,并根据需要调整仪表板和警报规则。同时,定期审查数据的保留策略,以确保不会占用过多的存储空间。

通过使用 Grafana 和 CnosDB,您可以构建高效的监控体系,帮助您实时监视和分析应用程序和基础设施的性能。通过适当的配置和维护,您可以及时发现问题并采取措施,确保系统的稳定性和可靠性。希望这篇文章能帮助您开始构建自己的监控体系,提高系统的可用性和性能。

CnosDB简介

CnosDB是一款高性能、高易用性的开源分布式时序数据库,现已正式发布及全部开源。

欢迎关注我们的社区网站:https://cn.cnosdb.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1004837.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ 类的继承特性简单运用

封装一个名为Shape(图形)的父类,从父类中派生两个子类,分别为Circle(圆形),Rect(矩形),父类拥有两个子类的共同特性,面积和周长,两个子…

buuctf crypto 【密码学的心声】解题记录

1.打开可以看到一个曲谱 2.看到曲谱中的提示埃塞克码可以想到ascii码,没有八可以联想到八进制,而八进制又对应着三位的二进制,然后写个脚本就好了 oct [111,114,157,166,145,123,145,143,165,162,151,164,171,126,145,162,171,115,165,143,…

UG\NX二次开发 获取曲面上指定点位置的uv参数 UF_MODL_ask_face_parm

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C++-CSDN博客 简介: UG\NX二次开发 获取曲面上指定点位置的uv参数 UF_MODL_ask_face_parm。 效果: 代码: #include "me.hpp"//parm[2] static void AskFaceUVP…

使用NSISW工具打包

程序使用VS2019Qt5.6.3开发工具编写。 已经有生成的32位Release文件夹 D:\work\版本\1.0.0\code\Release 文件夹内含: 关键是nsis.nsi 把nsis.nsi拖拽入下面的页面: 等待一段时间。打包成功。

随机密码生成器(Python)

随机密码生成器 想要生成一个随机密码,需要考虑下面两点: 1.字符集合 2.密码的位数 下面代码中引用了string模块和random模块,string.printable是string中的可打印字符,用strip函数首尾去掉空格;random模块用来取字符&…

JavaScript中循环遍历数组、跳出循环和继续循环

循环遍历数组 上个文章我们简单的介绍for循环,接下来,我们使用for循环去读取数据的数据,之前我们写过这样的一个数组,如下: const ITshareArray ["张三","二愣子","2033-1997","…

Java复习-多线程编程

多线程编程 解决并发访问的问题。 一. 继承 Thread 类实现多线程 1. 继承实现 继承thread类 class MyThread extends Thread{}覆写run主方法 多线程要执行的功能都应该在 run() 方法中定义。 class MyThread extends Thread { // 线程的主体类private String title;public…

Windows上Qt配置OpenCV(最简单版本无需自己编译-避坑必看)

文章目录 Windows上Qt配置OpenCV(最简单版本无需自己编译-避坑必看)1 前言2 软件安装2.1 安装qt2.2 安装OpenCV(分为vc版和mingw版)2.2.1 配置环境变量 3 Qt配置OpenCV3.1 创建一个项目(注意选择的是MinGW编译器还是MSVC编译器)msvc:mingw: 4 简单快捷添加OpenCV库的方法5 简单…

人类文明之光,历史上最伟大的10位程序员

21世纪,被称作计算机的时代,程序员是其中不可或缺的组成部分。不夸张的说,他们贡献改变了我们人类的整个文明进程。今天我们就来看看人类历史上最伟大的10位程序员。 丹尼斯里奇(Dennis Ritchie):C语言之父…

驱动开发--自动创建节点udev机制的实现过程分析

一,创建设备文件的机制 1,mknod:手动创建设备节点 2,devfs:创建设备节点的逻辑在内核空间,2.5版本后淘汰 3,udev:自动创建设备节点的机制,逻辑在用户空间,…

Linux编辑器-vim使用

文章目录 前言一、vim编辑器1、vim的基本概念2、vim的基本操作2.1 命令模式切换至插入模式2.2 插入模式切换至命令模式2.3 命令模式切换至底行模式 3、vim命令模式命令集3.1 移动光标3.2 删除文字3.3 复制与粘贴3.4 替换3.5 撤销上一次操作3.6 更改3.7 跳至指定的行 4、vim末行…

相关性分析-Pearson, Spearman, Kendall 三大相关系数+绘制热力图

相关性分析 1、Pearson 相关系数(连续变量)Pearson代码2、Spearman 秩相关系数(连续变量)Spearman代码3、Kendall 相关系数 (有序分类变量)Kendall代码Pearson, Spearman, Kendall 三类相关系数是统计学上的三大重要相关系数,表示两个变量之间变化的趋势方向和趋势程度。…

将Windows本地的数据集上传到Linux服务器

一、用MobaXterm软件 软件界面如下: 在左侧边栏中找到存放数据集的位置,点击上传按钮(这里只能上传单个文件),就可以完成上传了。 具了解上传速度为1M/s-22M/s. 其他方法待尝试,未完待续。。。。 点赞…

C语言实现三子棋游戏(详解)

目录 引言: 1.游戏规则: 2.实现步骤: 2.1实现菜单: 2.2创建棋盘并初始化: 2.3绘制棋盘: 2.4玩家落子: 2.5电脑落子: 2.6判断胜负: 3.源码: 结语&…

STLINK-V3 STDC14座转2.54mm排针转接板Kicad工程

简介 这是一个 STLINK-V3 STDC14座转2.54mm排针转接板Kicad工程 。STDC14座实际工作中不太方便,所以搞了这个转接板。另外转接版上提供了可选的电源输出功能。 An adapter board for STLINK-V3. It change the STDC14 to 2.54mm pin header.It also provides 5V an…

哪里可以了解轻量的工作流引擎?

如果想要实现高效率的办公,可以使用轻量的工作流引擎低代码技术平台。随着工作量日益繁重起来,传统的办公制作方式已经无法满足现实需要的,采用轻量级的表格制作工具,就能在无形中缓解办公压力,创造更高效、灵活、优质…

phpcmsV9.6.0sql注入漏洞分析

目录 前言 环境准备 漏洞点 看一看parse_str函数 看一看sys_auth函数 看一看get_one函数 全局搜索sys_auth($a_k, ENCODE) 查看哪里调用了 set_cookie 查看safe_replace函数 判断登录绕过 index的业务 加载modules/wap/index.php 加载modules/attachment/attachme…

小节6:Python字典dict

1、字典的键必须时不可变数据类型,所以列表list不能作为键key,那怎么办呢?Python为我们准备了一个很像列表,却又不可变的数据类型——元组tuple,通常用元组tuple来作为键。比如: contact_dict {("张…

简单的洗牌算法(Java)

目录 一、问题二、创建一个Poker类三、完成游戏内容四、测试五、总结 简单的洗牌算法是对ArrayList的具体使用 一、问题 我们需要一副完整的扑克牌,除去大小王一共52张牌,参与游戏的玩家共3名,在洗牌后分发每名玩家5张扑克牌。 二、创建一…

Prometheus+Grafana可视化监控【MySQL状态】

文章目录 一、Prometheus监控MySQL二、Grafana添加MySQL监控模板 PrometheusGrafana部署请参考上篇文章: PrometheusGrafana部署: 一、Prometheus监控MySQL 1、创建MySQL监控用户 mysql> create user "prometheus""%" identified by NTQ34tg*19VF; m…