基于Grafana+Prometheus搭建可视化监控系统实践

基本介绍

Grafana:一个监控仪表系统,可以根据提供的监控数据,生产可视化仪表盘,同时也具有告警通知功能。这里的监控数据来源,目前主要以Prometheus为主(也支持其它数据源),每次展现仪表盘时,都会向Prometheus服务发送一个查询请求,从而拿到监控数据并构建可视化仪表盘。

Prometheus:主要负责存储和查询数据,并对Grafana的请求进行响应。

Prometheus如何采集数据?

有两种方式:pull以及push

pull:主动拉取,被监控机器需安装各类exporter(监控插件:node_exporter、mysql_exporter等),exporter以守护进程的方式运行,进行自动采集并将数据返回给prometheus。

push:被动推送,安装pushgateway,然后将数据组织成key value形式的metrics发送给pushgateway,然后再由pushgateway推送给Prometheus。

exporter的下载与使用

本文以node_exporter(监控两台linux机器)为例子,可以在官网进行下载。(地址:Download | Prometheus)

找到我们需要的node_exporter,进行下载。

基于Grafana+Prometheus搭建可视化监控系统实践_第1张图片下载完成后,在linux服务器输入rz,将安装包上传至服务器,然后对其进行解压。

tar xf node_exporter-1.7.0.linux-amd64.tar.gz -C /usr/local/            #解压至指定路径下
mv /usr/local/node_exporter-1.7.0.linux-amd64/ /usr/local/node_exporter #重命名

解压完毕后会发现有一个node_exporter可执行程序,我们可以在后面加上--help查看其语法,也可直接运行(默认监听9100端口)。

基于Grafana+Prometheus搭建可视化监控系统实践_第2张图片由于要求它在后台运行,这里为了方便推荐一款工具:screen,直接yum install -y screen进行下载即可。下载完成后输入screen,会进入后台,然后运行node_exporter,紧接着按住ctrl+a+d即可退出screen。(输入screen -ls可以查看以该方式运行的程序)

同理,由于我们演示监控两台机器,所以我们在另一台被监控机器,进行上述操作。

Prometheus与Grafana的下载与使用

这里为了方便,我们直接以docker容器方式进行运行。有关docker下载相关在前文[点击跳转]。(这两个安装在哪里都可以)。

#不指定tag时,会自动拉取最新版本镜像
docker pull prom/prometheus 
docker pull grafana/grafana

docker run -d --name prometheus -p 9090:9090 prom/prometheus #启动prometheus
docker run -d --name grafana -p 3000:3000 grafana/grafana    #启动grafana

将exporter添加到prometheus服务

接下来我们将exporter添加到promtheus服务,我们直接输入如下指令:

docker exec -it -u root prometheus sh #以root身份进入prom容器内部

打开其配置文件,并添加服务

vi /etc/prometheus/prometheus.yml

基于Grafana+Prometheus搭建可视化监控系统实践_第3张图片完毕后保存并退出,同时重启容器,使配置生效

基于Grafana+Prometheus搭建可视化监控系统实践_第4张图片接下来我们可以在浏览器通过ip+端口访问prometheus服务,此时我们可以看到我们监控的两台linux服务。(同理,也可以监控其它服务,如mysql、redis、elasticsearch等)

基于Grafana+Prometheus搭建可视化监控系统实践_第5张图片

当然,我们也可以输入一些promQL语句进行查询监控数据

基于Grafana+Prometheus搭建可视化监控系统实践_第6张图片Grafana展示数据

为了使数据更加直观的展示,我们可以用Grafana来实现,通过ip+端口,访问grafana服务,默认初始账号与密码都是admin,登陆后会要求重置密码

基于Grafana+Prometheus搭建可视化监控系统实践_第7张图片

进去后添加数据源

基于Grafana+Prometheus搭建可视化监控系统实践_第8张图片基于Grafana+Prometheus搭建可视化监控系统实践_第9张图片

基于Grafana+Prometheus搭建可视化监控系统实践_第10张图片

这里的地址填写我们的prometheus地址即可,这里我是部署在47.99.141.178机器上。

基于Grafana+Prometheus搭建可视化监控系统实践_第11张图片接下来我们就可以创建仪表盘了,可以自己创建,也可以直接导入模板使用,这里先演示直接导入模板使用

基于Grafana+Prometheus搭建可视化监控系统实践_第12张图片

基于Grafana+Prometheus搭建可视化监控系统实践_第13张图片

基于Grafana+Prometheus搭建可视化监控系统实践_第14张图片

最后点击import导入即可。

基于Grafana+Prometheus搭建可视化监控系统实践_第15张图片Grafana制作面板

有时候仅仅依靠模板是无法满足实际业务需求,所以也需学会如何自己来制作面板。我们点击新建仪表盘,

基于Grafana+Prometheus搭建可视化监控系统实践_第16张图片基于Grafana+Prometheus搭建可视化监控系统实践_第17张图片

点击后选择prometheus数据源,此时会出现如下界面:

基于Grafana+Prometheus搭建可视化监控系统实践_第18张图片

Panel options模块

基于Grafana+Prometheus搭建可视化监控系统实践_第19张图片Tooltip模块

基于Grafana+Prometheus搭建可视化监控系统实践_第20张图片Legend模块

基于Grafana+Prometheus搭建可视化监控系统实践_第21张图片Axis模块

基于Grafana+Prometheus搭建可视化监控系统实践_第22张图片

Graph styles模块

基于Grafana+Prometheus搭建可视化监控系统实践_第23张图片Standard options模块

基于Grafana+Prometheus搭建可视化监控系统实践_第24张图片Data links这块不咋使用,这里也不做讲解

Value mappings模块

基于Grafana+Prometheus搭建可视化监控系统实践_第25张图片Thresholds模块

基于Grafana+Prometheus搭建可视化监控系统实践_第26张图片制作完毕后保存即可,可以点击add选项,继续在仪表盘中添加相应面板。

基于Grafana+Prometheus搭建可视化监控系统实践_第27张图片基于Grafana+Prometheus搭建可视化监控系统实践_第28张图片面板的样式是非常多的,可以根据需求制作相应样式的面板。

变量的设置

我们还可以在仪表盘中添加一些变量,这就类似于我们在写代码时,使用变量,避免将代码写"死"。

基于Grafana+Prometheus搭建可视化监控系统实践_第29张图片基于Grafana+Prometheus搭建可视化监控系统实践_第30张图片在设置完毕变量后,我们就可以在我们的promQL语句中通过$,进行使用了。

基于Grafana+Prometheus搭建可视化监控系统实践_第31张图片

将Grafana嵌入前端页面

我们可以通过使用iframe标签,将制作的grafana面板嵌入前端页面

基于Grafana+Prometheus搭建可视化监控系统实践_第32张图片如下所示,src中填入上方url:



  
      

grafana_test

不过grafana默认是关闭通过iframe嵌入的,所以我们需要进入grafana容器,找到grafana.ini文件

docker exec -it -u root grafana bash # 以root身份进入grafana容器

vi打开后,找到allow_embedding设置,将其改为true,此时可以通过iframe进行嵌入到其它页面,但是会进行登录验证,要关闭登录验证,将 [auth.anonymous]中的enabled 设置也改为true。

(注意将前面的;也要去掉)

保存退出后,重启grafana容器即可。

基于Grafana+Prometheus搭建可视化监控系统实践_第33张图片此时就实现了嵌入到前端页面功能,并且去除了登录验证。(此时的grafana面板是没有edit编辑功能的)

你可能感兴趣的:(运维,grafana,prometheus,运维开发)