Grafana安装和实现可视化和告警

2023-11-19

1、Grafana安装和实现可视化和告警

Prometheus UI 提供了快速验证 PromQL 以及临时可视化支持的能力,但其可视化能力却比较弱。一般情况下,

我们都用 Grafana 来实现对 Prometheus 的可视化实现。

1.1 什么是 Grafana

Grafana 是一个用来展示各种各样数据的开源软件,在其官网上用这么一段话来说明其作用。

Used by thousands of companies to monitor everything from infrastructure, applications, and power plants

to beehives。数以万计的公司用 Grafana 来监控基础设施、应用。

从官网上可以看到目前有 Paypal、ebay 等公司已经在使用 Prometheus 了。

1.2 快速入门

我们只需要在 Grafana 上配置一个 Prometheus 的数据源。接着我们就可以配置各种图表,Grafana 就会自动去

Prometheus 拉取数据进行展示。

1.3 Grafana安装

首先我们从 https://grafana.com/grafana/download 下载对应系统的安装包:

在这里插入图片描述

下载grafana-enterprise-8.4.3.linux-amd64.tar.gz 安装包:

在这里插入图片描述

使用 tar xvf grafana-enterprise-8.4.3.linux-amd64.tar.gz进行解压:

在这里插入图片描述

解压后用下面的命令启动:

# 前台启动
$ ./bin/grafana-server web
# 后台启动
$ nohup ./bin/grafana-server web >> nohup.out 2>&1 &

正常启动会输出如下信息:

在这里插入图片描述
在这里插入图片描述

Grafana 默认使用 3000 端口启动,开放3000端口:

# 查看开放的端口号 
firewall-cmd --list-all 
# 设置开放的端口号 
firewall-cmd --add-port=3000/tcp --permanent 
# 重启防火墙 
firewall-cmd --reload

我们访问:http://192.168.2.186:3000 查看对应页面:

在这里插入图片描述

默认的账号密码是 admin/admin,登陆进去后是这样的:

在这里插入图片描述

1.4 配置数据源

之后我们去设置菜单添加 Prometheus 数据源:

在这里插入图片描述

打开如下图所示:

在这里插入图片描述

会有许多数据源的选择:

在这里插入图片描述

选择第一个Prometheus:

在这里插入图片描述

之后输入对应的名字和 URL 地址即可。

这里我们添加了一个名为「Prometheus」的数据源,数据获取地址为:http://192.168.2.186:9090

然后点击Save & test

在这里插入图片描述

1.5 配置面板

在 Grafana 中有「Dashboard」和「Panel」的概念,Dashboard 可以理解成「看板」,而 Panel 可以理解成

「图表」,一个看板中包含了无数个图表,里面一个个小的图表,就是一个个小的图表(Panel)。

点击「+ 号」-> 「Dashboard」就可以添加一个大面板。

在这里插入图片描述

添加后的面板是空白的,下面我们创建一个图标来显示 CPU 的使用率变化情况。点击右上角的创建图表按钮:

在这里插入图片描述

点击创建图表会进入如下界面:

在这里插入图片描述

我们设置好数据源、Metrics 数据(rate(process_cpu_seconds_total[1m]))、图表名称,之后点击右上角的

Apply 按钮即可。

在这里插入图片描述

保存之后我们就可以在面板中看到机器的 CPU 使用率情况了:

在这里插入图片描述

1.6 邮件通道配置

如果我们要使用 Prometheus 进行监控告警,那么 Grafana 也能够实现。

Grafana 的告警渠道有很多,这里我们以邮件告警为例。

首先需要在 Grafana 的配置文件,默认是 conf/default.ini 文件。

在这里插入图片描述

default.ini 文件中增加如下配置:

[smtp]
enabled = true
host = smtp.qq.com:465
user = 2420309401@qq.com
# If the password contains # or ; 
# you have to wrap it with triple quotes. Ex """#password;"""
password = nfsroqnmreipecib
cert_file =
key_file =
skip_verify = false
# from_address 必须与上面的 user 属性一致
from_address = 2420309401@qq.com  
from_name = Grafana
ehlo_identity =

在这里插入图片描述

host 这里是你邮箱所在运营商的 SMTP 服务器,user 属性是发件人的邮箱地址,password 是发件人邮箱的登

陆密码,from_address 与 user 属性一样,都是发件人的邮箱地址,from_name 是发件人的显示名称。

修改完成之后,保存配置文件,之后重启 Grafana,接着通过 Alerting 菜单添加告警渠道。

在这里插入图片描述
在这里插入图片描述

之后填写「提醒通道」名称、类型,之后点击「Send Test」按钮测试一下。

在这里插入图片描述
在这里插入图片描述

后台会有日志信息打印:

在这里插入图片描述

正常的话,会收到一封测试邮件,这表明邮件配置已经完成。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

此外我们还可以配置 AlertManager、钉钉等其他告警方式,配置的流程都大同小异,这里不再赘述。

1.7 指标告警配置

配置好邮件发送通道信息后,Grafana 就具备了发送邮件的能力。但是什么时候发送邮件呢?这就需要我们进行指

标告警配置了。

我们需要在图表面板设置中设置CPU使用率报警指标:

(1- avg(irate(node_cpu_seconds_total{mode="idle"}[5m])))*100

在这里插入图片描述

在这里插入图片描述

创建告警规则:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置完成点击 Apply,回到 DashBoard:

在这里插入图片描述

查看 Alert 页面:

在这里插入图片描述

我们进行下面 的操作使CPU的使用率增高:

for i in `seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc -l)`; do dd if=/dev/zero of=/dev/null & done

查看 Alert 和 DashBoard 页面变化:

在这里插入图片描述
在这里插入图片描述

当 Pending 一直持续5分钟之后会出发告警:

在这里插入图片描述
在这里插入图片描述

并且会收到告警邮件:

在这里插入图片描述

当我们杀死使CPU升高的进程,查看页面的变化:

在这里插入图片描述
在这里插入图片描述

并且会收到恢复告警的邮件:

在这里插入图片描述

我们一般不使用 grafana 的告警,而是使用 Altermanager进行告警。

1.8 Grafana 模板中心

对于线上监控来讲,如果我们每个面板都需要自己从零开始,那么就太累了。事实上,我们用到的许多监控信息都

是类似的。因此 Grafana 官网 - Dashboards 模块 提供了下载 Dashboard 模板的功能。

https://grafana.com/grafana/dashboards/

在这里插入图片描述

在这里插入图片描述
Dashboards 里有许多各种类型的 Dashboard 面板,例如 JVM 监控、MySQL 数据库监控等。你只需找到合适自

己的监控面板,之后根据 ID 添加即可。

现在准备监控MySQL:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

你只需要复制它的 ID 并使用 Grafana 的 import 功能导入即可,并且需要执行相关的SQL,如下图所示:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

最终的效果如图所示:

在这里插入图片描述

1.9 将 Grafana 设置为服务

创建service并设置自动启动:

$ vim /usr/lib/systemd/system/grafana.service

配置如下内容:

[Unit]
Description=grafana
Documentation=https://grafana.com
After=network.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/home/zhangshixing/prometheus/grafana-8.4.3/bin/grafana-server -homepath /home/zhangshixing/prometheus/grafana-8.4.3
Restart=on-failure
[Install]
WantedBy=multi-user.target

设置自动启动:

$ systemctl enable grafana

启动服务并查看启动状态:

# 重新加载某个服务的配置文件
$ systemctl daemon-reload
# 启动grafana
$ systemctl start grafana
# 查看grafana状态
$ systemctl status grafana
[root@zsx ~]# systemctl status grafana
● grafana.service - grafana
   Loaded: loaded (/usr/lib/systemd/system/grafana.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2023-06-17 17:12:23 CST; 1min 0s ago
     Docs: https://grafana.com
 Main PID: 53549 (grafana-server)
    Tasks: 8
   Memory: 72.6M
   CGroup: /system.slice/grafana.service
           └─53549 /home/zhangshixing/prometheus/grafana-8.4.3/bin/grafana-server -homepath /home/zhangshixing/prometheus/grafa...

Jun 17 17:12:23 zsx.com grafana-server[53549]: logger=plugin.manager t=2023-06-17T17:12:23.52+0800 lvl=info msg="Plugin r...=input
Jun 17 17:12:23 zsx.com grafana-server[53549]: logger=query_data t=2023-06-17T17:12:23.52+0800 lvl=info msg="Query Servic...ation"
Jun 17 17:12:23 zsx.com grafana-server[53549]: logger=live.push_http t=2023-06-17T17:12:23.55+0800 lvl=info msg="Live Pus...ation"
Jun 17 17:12:23 zsx.com grafana-server[53549]: logger=report t=2023-06-17T17:12:23.67+0800 lvl=warn msg="Scheduling and sending...
Jun 17 17:12:23 zsx.com grafana-server[53549]: logger=http.server t=2023-06-17T17:12:23.69+0800 lvl=info msg="HTTP Server...ocket=
Jun 17 17:12:35 zsx.com grafana-server[53549]: logger=context t=2023-06-17T17:12:35.44+0800 lvl=info msg="Request Complet...ferer=
Jun 17 17:12:35 zsx.com grafana-server[53549]: logger=context t=2023-06-17T17:12:35.79+0800 lvl=info msg="Request Complet...ferer=
Jun 17 17:12:35 zsx.com grafana-server[53549]: logger=live t=2023-06-17T17:12:35.81+0800 lvl=info msg="Initialized channe...Ms4uVk
Jun 17 17:12:38 zsx.com grafana-server[53549]: logger=context t=2023-06-17T17:12:38.11+0800 lvl=info msg="Request Complet...ferer=
Jun 17 17:12:40 zsx.com grafana-server[53549]: logger=context t=2023-06-17T17:12:40.75+0800 lvl=info msg="Request Complet...ferer=
Hint: Some lines were ellipsized, use -l to show in full.

如果启动失败,可以查看日志:

[root@zsx ~]# journalctl -u grafana.service

其它的服务都类似,只需要修改相应 service 文件的一些参数。

1.10 总结

这里简单介绍了 grafana 的使用,更多关于图表的设置,将在后续文章专门讲述,这里不深入讲解。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Grafana安装和实现可视化和告警 的相关文章

随机推荐

  • c++得到窗口句柄

    include
  • Gitlab Java API 使用示例(亲测、有效)

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 简介 一 依赖 常量 Maven依赖 定义常量类 二 增删改查 1 新增私有仓库 2 删除指定仓库 3 修改项目简介和是否开源 三 后续更新 简介 在开发中 偶尔会
  • 算法学习——动态规划的学习

    作者 小 琛 欢迎转载 请标明出处 引言 动态规划是算法中较难的内容 常常被用来区分学习者的档次 笔者也是在面试中发现了这个问题 故而回头认真学习并总结递归算法 希望能够帮助到阅读的你 文章目录 动态规划的思想 动态规划的具体实现步骤 入门
  • QThread介绍

    一 介绍 Qt中的QThread类提供了与平台无关的线程 一个QThread代表了一个在应用程序中可以独立控制的线程 它与进程中的其他线程分享数据 但是是独立执行的 相对于一般的程序都从main 函数开始执行 QThread从run 函数开
  • Q_D指针(d指针)和Q_Q指针(q指针)简介

    文章目录 1 Q D指针 2 Q Q指针 1 Q D指针 在class中配合使用 Q DECLARE PRIVATE 和 Q D 方便获取d指针 d指针指向Class Private 2 Q Q指针 在class Private配合使用 Q
  • 记录--Vue中如何导出excel表格

    这里给大家分享我在网上总结出来的一些知识 希望对大家有所帮助 一 导出静态数据 1 安装 vue json excel npm i vue json excel 注意 此插件对node有版本要求 安装失败检查一下报错是否由于node版本造成
  • hive、impala、prestoDB 优缺点对比

    hive 优点 缺点 被广泛应用 经受时间的考验 既然是基于Mapreduce 也拥有MapReduce所有缺点 包含昂贵的Shuffle操作和磁盘IO操作 运行在Mapreduce框架之上 hive仍然不支持多个reduce操作group
  • JavaScript系列——数组元素左右移动N位算法实现

    引言 在自己刚刚毕业不久的时候 去了一家公司面试 面试官现场考了我这道题 我记忆深刻 当时没有想到思路 毫无疑问被面试官当成菜鸟了 最近刚好在研究数组的各种算法实现 就想到这道题 可以拿来实现一下 纪念自己逝去的青春 需求 假设有这样一个数
  • stm32(十)滴答定时器

    1 系统滴答定时器的概述 滴答定时器又称 SysTick 有两个时钟源 一个为内部时钟 一个为外部时钟 滴答定时器是一个 24 位倒计 数的定时器 从预装载值一直到 0 重装载寄存器的值会自动装载到计数寄存器中 只要不把它使能位清除 那 么
  • 用过多款团队协作工具后,少数派为什么选择飞书

    飞书 字节跳动旗下SaaS应用 自诞生以来 受到了国内众多企业的青睐和关注 飞书也一直致力于为企业提供高效协作的解决方案 如今 飞书的解决方案已覆盖互联网 教育 媒体 法律 零售等行业 未来还将进一步扩展到更多行业 少数派 是媒体行业中最早
  • Java程序员必备的几款开发工具

    工欲善其事 必先利其器 作为一名优秀的Java程序员 怎能没有几款得心应手的高效开发工具呢 市面上类库 工具千千万 下面就给大家推荐几款高效的Java开发工具 1 UItraEdit UltraEdit是初学者们非常喜爱的一款开发工具 可以
  • 史上最全的MathCAD安装教程

    今天我们来安装一下MathCAD 今天我们安装的版本是PTC MathCAD Prime 5 0 Step 01 首先我们先来下载一下软件 提取码 nifp Step 02 软件下载好了之后如下图 Step 03 解压此文件 Step 04
  • vue的v-for循环普通数组、对象数组、对象、数字

    div span u 索引 i span br span u a 索引 i span div
  • JavaScript经典案例之按下拖拽、跟随鼠标移动

    div div
  • VMware虚拟机走主机代理上网

    1 打开虚拟机系统的网络设置 2 设置代理为手动 并填写代理ip和端口 这里我的代理软件用的是Socket协议 故只填 Socket 主机一栏 3 代理 ip 和端口填写 ip地址 ip地址可以在主机系统的命令行窗口输入ipconfig查询
  • js向服务器发送信息,Angularjs向服务器发送请求

    您需要将id属性分配给对象 item id 4 让我们假设您有一个文本框 并且用户想要通过在其中插入名称来保存新项目 然后单击提交 让我们假设您正在使用MongoDB项目集合 为简单起见 它们只有id字段 这是你应该做些什么来让它变得容易
  • java如何检测连接池连接情况,如何监控数据库连接池(JDBC Connection Pool)

    本文中 我将介绍利用Dynatrace AppMon监控JDBC Connection Pool的一些技巧 以便快速诊断JDBC Connection Pool是否存在泄露和监控JDBC Connection Pool的使用率 通过监控获取
  • 攻防世界 Web simple_php

    攻防世界 Web simple php 1 分析源代码 2 得到flag 1 分析源代码 a 和 b 都是通过GOT传入 第一个if可以获取flag1 但是要求a0 atrue 但是如果
  • x-studio教程之 - Unity Lua调试 ulua/tolua slua调试教程

    UnityLua DebugTutorial 请查看最新官方文档 https docs x studio net zh CN latest lua dbg 01 unity3d
  • Grafana安装和实现可视化和告警

    1 Grafana安装和实现可视化和告警 Prometheus UI 提供了快速验证 PromQL 以及临时可视化支持的能力 但其可视化能力却比较弱 一般情况下 我们都用 Grafana 来实现对 Prometheus 的可视化实现 1 1