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

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安装和实现可视化和告警_第1张图片

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

Grafana安装和实现可视化和告警_第2张图片

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

Grafana安装和实现可视化和告警_第3张图片

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

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

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

Grafana安装和实现可视化和告警_第4张图片
Grafana安装和实现可视化和告警_第5张图片

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

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

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

Grafana安装和实现可视化和告警_第6张图片

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

Grafana安装和实现可视化和告警_第7张图片

1.4 配置数据源

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

Grafana安装和实现可视化和告警_第8张图片

打开如下图所示:

Grafana安装和实现可视化和告警_第9张图片

会有许多数据源的选择:

Grafana安装和实现可视化和告警_第10张图片

选择第一个Prometheus:

Grafana安装和实现可视化和告警_第11张图片

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

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

然后点击Save & test

Grafana安装和实现可视化和告警_第12张图片

1.5 配置面板

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

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

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

Grafana安装和实现可视化和告警_第13张图片

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

Grafana安装和实现可视化和告警_第14张图片

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

Grafana安装和实现可视化和告警_第15张图片

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

Apply 按钮即可。

Grafana安装和实现可视化和告警_第16张图片

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

Grafana安装和实现可视化和告警_第17张图片

1.6 邮件通道配置

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

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

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

Grafana安装和实现可视化和告警_第18张图片

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

[smtp]
enabled = true
host = smtp.qq.com:465
user = [email protected]
# 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 = [email protected]  
from_name = Grafana
ehlo_identity =

Grafana安装和实现可视化和告警_第19张图片

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

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

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

Grafana安装和实现可视化和告警_第20张图片
Grafana安装和实现可视化和告警_第21张图片

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

Grafana安装和实现可视化和告警_第22张图片
Grafana安装和实现可视化和告警_第23张图片

后台会有日志信息打印:

在这里插入图片描述

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

Grafana安装和实现可视化和告警_第24张图片

在这里插入图片描述
Grafana安装和实现可视化和告警_第25张图片

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

1.7 指标告警配置

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

标告警配置了。

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

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

Grafana安装和实现可视化和告警_第26张图片

Grafana安装和实现可视化和告警_第27张图片

创建告警规则:

Grafana安装和实现可视化和告警_第28张图片
Grafana安装和实现可视化和告警_第29张图片
Grafana安装和实现可视化和告警_第30张图片

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

Grafana安装和实现可视化和告警_第31张图片

查看 Alert 页面:

Grafana安装和实现可视化和告警_第32张图片

我们进行下面 的操作使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 页面变化:

Grafana安装和实现可视化和告警_第33张图片
Grafana安装和实现可视化和告警_第34张图片

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

Grafana安装和实现可视化和告警_第35张图片
Grafana安装和实现可视化和告警_第36张图片

并且会收到告警邮件:

Grafana安装和实现可视化和告警_第37张图片

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

Grafana安装和实现可视化和告警_第38张图片
Grafana安装和实现可视化和告警_第39张图片

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

Grafana安装和实现可视化和告警_第40张图片

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

1.8 Grafana 模板中心

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

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

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

Grafana安装和实现可视化和告警_第41张图片

Grafana安装和实现可视化和告警_第42张图片
Dashboards 里有许多各种类型的 Dashboard 面板,例如 JVM 监控、MySQL 数据库监控等。你只需找到合适自

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

现在准备监控MySQL:
Grafana安装和实现可视化和告警_第43张图片
Grafana安装和实现可视化和告警_第44张图片
Grafana安装和实现可视化和告警_第45张图片
Grafana安装和实现可视化和告警_第46张图片

Grafana安装和实现可视化和告警_第47张图片

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

Grafana安装和实现可视化和告警_第48张图片
Grafana安装和实现可视化和告警_第49张图片

Grafana安装和实现可视化和告警_第50张图片

Grafana安装和实现可视化和告警_第51张图片
Grafana安装和实现可视化和告警_第52张图片

最终的效果如图所示:

Grafana安装和实现可视化和告警_第53张图片

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 的使用,更多关于图表的设置,将在后续文章专门讲述,这里不深入讲解。

你可能感兴趣的:(prometheus,grafana)