使用Grafana展示Prometheus数据

安装

首先,需要准备 grafana 的 repo 源,手动添加 /etc/yum.repos.d/grafana.repo文件:

[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

然后就可以用 yum 安装 grafana 了:

yum makecache
yum -y install grafana

启动

service grafana-server start

服务启动后 grafana 默认监听在 3000 端口 ,可以通过 http://localhost:3000 访问 grafana 的 ui 界面,默认登录账号密码为 admin/admin ,第一次登录需要我们重置密码。
在这里插入图片描述

安装alert manager DataSource:

grafana-cli plugins install camptocamp-prometheus-alertmanager-datasource
service grafana-server restart

mac下安装grafana

上面介绍的是centos安装grafana的步骤,mac安装启动比较简单,具体如下:

brew install grafana
// start
brew services start grafana
// stop
brew services stop grafana

添加datasource

为了展示prometheus的数据,首先添加prometheus的数据源:点击设置里面的data source选项
在这里插入图片描述
点击add data source按钮
在这里插入图片描述

选择第一个的prometheus在这里插入图片描述

配置Prometheus的url(我都在一个机器上启动的),然后点击save & test测试是否正确。在这里插入图片描述
在这里插入图片描述
然后添加alert manager的DataSource,步骤相同,端口号为9093

注意,需要配置Severity levels,否则severity不会显示任何信息。

在这里插入图片描述

Dashboard模板

为了更好的展示从prometheus获得的信息,我们使用grafana的网络模板,id为10280,具体过程如下:在添加的菜单里面选择import,输入id 10280,点击load按钮。

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

然后选择folder和数据源(之前配置的prometheus数据源),点击import即可。(我这里因为已经导入过了,所以import显示了overwrite)

在这里插入图片描述

模板的样式如下:
在这里插入图片描述
如果你使用的内容和模板不一样,可以自己修改一下(选择想要修改的面板,点击名字,选择edit即可)
比如我们项目使用的是jetty而不是tomcat,我自己修改了一下tomcat的项,导出的json文件太大了,这里就不放了。
然后,导入alert manager的模板,id为8010.
在这里插入图片描述
注意,这里提到的模板都是我在grafana的网上模板库里面找的,觉得还不错的。

自己创建模板

我还打算要一个显示Prometheus的各个instance状态的模板,没有找到,于是就自己做了一个简单的。

点击+ =》 dashboard创建新的模板
在这里插入图片描述

首先设置变量instance:点击右上角的Dashboard Settings,进入设置界面
在这里插入图片描述

点击左边的variables,添加一个新的变量,具体设置如下:注意勾选Include All Option,另外Query的配置很重要,表达式label_values(up, instance)

在这里插入图片描述

设置好了变量之后,点击右上角按钮在这里插入图片描述添加新的panel:

如果要添加一个row的话,再点击Convert to row,
在这里插入图片描述

然后点击row旁边的设置按钮,改名字在这里插入图片描述
如果添加pannel的话,点击Add Query按钮,
在这里插入图片描述
进入创建panel的界面。
左下角有一行这样的图标,分别是设置query、选择图表类型、通用设置(名字之类的)和alert的配置。
在这里插入图片描述
首先设置Query,up{instance=~"^$instance"}表示指定的instance的数量,0表示down,1表示up,需要注意的是,由于变量支持all选项,query里面直接使用instance="$instance"的引用方式不可以,需要是instance=~"^$instance"才可以正确获得数据。
在这里插入图片描述
然后,点击左侧第二个图标,选择图片类型为Singlestat,具体的设置如下:
在这里插入图片描述
在这里插入图片描述

接下来设置通用信息,也就是给表起个名字,这里我们叫$instance,也就是instance变量的值,下面的repeating, 设置为按变量instance重复,重复方向为垂直。
在这里插入图片描述
然后,panel就加好了,将加好的panel拖拽到之前的row里面,左上角的instance选择all即可显示所有的instance的状态了。
在这里插入图片描述
具体的效果如下:我们一共有两个instance,一个up,一个down。
在这里插入图片描述
保存之后,点击创建好的dashboard的右上角的share dashboard,选择export,save to file,即可导出模板json文件。
在这里插入图片描述
在这里插入图片描述

Grafana的Alert配置

之前我们使用了Prometheus的alert manager配置alert,grafana也支持alert配置,不过没有Prometheus的alert manager功能强大,但是简单功能还是可以的。
首先为了发生告警的时候可以通知我们,需要配置Notification channels。
点击左边的菜单Alerting中的Notification channels添加Notification方式,点击new channel。
在这里插入图片描述
在这里插入图片描述
进入下面的界面,选择type为webhook,即给我们预先定义的api发消息,输入name和url,点击send test测试,收到了的话,点击save。
在这里插入图片描述
然后,我们可以开始配置具体的alert了。

grafana的alert的添加需要去具体的表里面添加,首先选定一个要监听的表,点击edit进入编辑界面。
例如,之前导入模板的cpu usage界面。
在这里插入图片描述

这里有个问题,由于alert不支持变量,之前的模板里面的属性都是使用变量的,我们需要添加新的属性system_cpu_usage(prometheus中的一个metric),点击C小面板右上角的眼睛图标将他设为disabled,即不显示,这个属性的名称就是C,下面的alert将用到。

在这里插入图片描述
左侧的铃铛就是alert界面,点击alert

在这里插入图片描述
首先给rule起个名字,设置evaluate every 和for的值,这里的意思每隔20s计算一次,如果条件满足持续60s就发送alert

下面的conditions就是alert的条件,解释一下就是当属性C从5min之前到现在的平均值大于0.5的话,就发送alert

然后配置Notifications,选择之前设置的Notification channel,设置message即可
在这里插入图片描述
接口收到的信息如下:

/*Alerting状态的信息*/
{"evalMatches":[{"value":0.1294733207696565,"metric":"system_cpu_usage{application=\"my-web-local\", hikaricp=\"my-dev-jdbc-cp\", instance=\"127.0.0.1:28080\", job=\"spring\"}","tags":{"__name__":"system_cpu_usage","application":"my-web-local","hikaricp":"my-dev-jdbc-cp","instance":"127.0.0.1:28080","job":"spring"}}],"message":"CPU Usage is invalid.","ruleId":1,"ruleName":"CPU Usage alert","ruleUrl":"http://localhost:3000/d/spring_boot_21/spring-boot-2-1-statistics?fullscreen\u0026edit\u0026tab=alert\u0026panelId=95\u0026orgId=1","state":"alerting","title":"[Alerting] CPU Usage alert"}
 
 
/*No data状态的信息*/
{"evalMatches":[],"message":"CPU Usage is invalid.","ruleId":1,"ruleName":"CPU Usage alert","ruleUrl":"http://localhost:3000/d/spring_boot_21/spring-boot-2-1-statistics?fullscreen\u0026edit\u0026tab=alert\u0026panelId=95\u0026orgId=1","state":"alerting","title":"[Alerting] CPU Usage alert"}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值