docker安装prometheus + grafana实现SpringBoot服务监控

需求背景

在日常工作中,生产环境上面的服务一般都会有专门的预警,这样可以在服务异常的时候,提前感知,这个很重要,不然服务挂逼了,你还在睡大觉,怎么赚钱。

最近我们的韭盾公众号的流量上来了,因为比较干货而且在试运营阶段,保证服务的稳定运行成了重中之重,于是干脆整一个预警系统,保证用户的良好体验。以下无偿分享一下一些容易踩坑的地方,便于后续有搞自己事情的铁子们避坑。

本篇篇幅较长,但是非常有用。可以三连 + 收藏。

1、安装grafana的镜像

docker pull grafana/grafana:9.3.2

**注意:**这里的版本号根据你自己的需要下载即可,如果需要下载最新版本,使用如下命令

docker pull grafana/grafana 

2、安装prometheus

依次执行如下命令:

docker pull prom/node-exporter;
docker pull prom/prometheus;

3、查看是否安装成功

docker images

4、启动 prom/node-exporter

docker run -d   -p 9100:9100  -v "/proc:/host/proc:ro"   -v "/sys:/host/sys:ro"    -v "/:/rootfs:ro"   prom/node-exporter

温馨提醒: 在命令尾部的prom/node-exporter代表镜像名称,也可以使用镜像ID,如果有不清楚的,可以先熟悉一下docker运行容器的相关命令,有的朋友是刚刚接触或者对docker相关的命令不熟悉,可以先自行查阅。

查看9100端口是否正常被监听

netstat -pantu | grep 9100

如图所示,表示服务正常启动,也可以通过如下命令查询docker容器是否启动

通过浏览器网页访问查看

http://IP:9100/metrics

**注意:**如果你用的是云服务器的话,这里的IP用公网IP,然后云服务器需要进行防火墙开放9100端口,同时安全组规则也要开放9100端口,这两个地方开放后,正常情况下你可以看到如下的效果:

5、编辑prometheus的配置文件

**说明:**进行这一步的目的是为了prometheus可以收集到服务的数据,比如Linux主机、SpringBoot服务实例等等,以下是大致的配置内容,先配置基础的linux和prometheus的信息

# 1、创建宿主机的文件目录
mkdir /opt/prometheus

# 2、进入目录
cd /opt/prometheus/

# 3、编辑文件内容
vim prometheus.yml

# 4、配置如下内容
global:
 scrape_interval:     60s
 evaluation_interval: 60s
 
scrape_configs:
 - job_name: prometheus
   static_configs:
     - targets: ['localhost:9090']
       labels:
         instance: prometheus
 
 - job_name: linux
   static_configs:
     - targets: ['IP:9100']
       labels:
         instance: localhost

注意:代码块中的IP,如果你用的是云服务器,直接用公网IP即可

参数说明:

● scrape_interval:表示 Prometheus 将定期(每隔 60 秒)从目标(例如应用程序、数据库、服务器等)获取指标数据。这是一个全局设置,适用于所有被监控的目标。你可以根据需要调整此值。

● evaluation_interval:表示 Prometheus 将每隔 60 秒评估一次警报规则。警报规则定义了在满足特定条件时触发警报的条件。这个设置也是全局的,影响所有警报规则。

6、运行prom/node-prometheus

docker run  -d   -p 9090:9090    -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml   prom/prometheus

**说明:**这里运行容器的过程,-v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml 的命令主要是为了把容器内的文件映射到宿主机目录,这样我们编辑配置文件的时候,就不需要进入到容器内部去编辑,这一点很重要。

拓展

如果没有映射的话,要进入宿主机,命令如下, demo如下:

docker exec -it 容器ID /bin/bash,

**注意事项:**大多数时候,容器内很多命令都无法使用,在容器内使用vi的命令,会显示权限不足,这时候需要以管理员的身份进入容器,命令如下:

docker exec -it --user root 容器ID /bin/bash

这样你就可以正常地编辑并且保存你的配置。

7、打开浏览器预览效果

访问 : http:// 你的IP :9090/targets, 会出现如下的页面,因为我这边已经接入了SpringBoot服务,所以会显示服务,这个你们可以忽略。

8、启动 grafana

(1)创建宿主机映射文件

mkdir /opt/grafana-storage

(2)设置文件权限

chmod 777 -R /opt/grafana-storage

(3)运行grafana

docker run -d --restart unless-stopped -p 3000:3000 --name=grafana-9.3.2 -v /opt/grafana-storage:/var/lib/grafana grafana/grafana:9.3.2
参数解释

9、访问grafana网页

打开浏览器:http://你的IP:3000, 出现以下界面就安装成功了

**温馨提醒:**grafana的初始账号密码:admin/admin ,默认密码登录则提示修改密码 可以skip。

10、Grafana配置监控面板

(1)选择左下角的添加数据源

(2)添加数据源

(3)选择你需要的数据源,比如我这里选择普罗米修斯

(4)输入URL:http://你的IP:9090 ,其他暂时都可以不用填

填写ip地址后,拉到最下面点击:sava&test 。

11、下载可视化模板

**说明:**grafana是一个展示面板,数据收集是由prometheus负责收集。这个关系要先梳理清楚。grafana官网提供了很多的展示模板,你根据你自己的需求先去官网下载对应的模板,这里对于新手而言比较陌生,下面讲一下大致的流程:

(1)模板官网地址

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

(2)下载模板

在grafana中导入模板

选择下载好的模板后,点击确定即可

13、得到监控页面如下:

自此,你就可以看到自己的服务器概况了。

14、配置邮件提醒

我们接入监控的主要目的,还是为了在系统异常的时候能够及时或者提前发出通知,grafana的预警方式有几种,像企业微信机器人预警,飞书,钉钉以及邮件提醒都可以支持,我这里只演示一下邮件的配置。

上面我们已经把grafana服务跑起来了,接下来需要在grafana中配置邮件的相关信息。

(1)找到配置文件

注意:用管理员身份登录

docker exec -it --user root 容器ID /bin/bash

使用vi命令编辑即可,找到SMTP关键词。

配置完之后,保存,然后重启一下grafana容器,这样邮件配置就配置好了,下面演示一下在grafana面板中如何配置,进行邮件的提醒。

参数解释

enabled = true       #默认是false
host = smtp.mxhichina.com:465  #smtp服务器的地址和端口,我用的是阿里云的企业邮箱。465加密端口25非加密端口
user = test@xxx.com   #你登录邮箱的账号
password = xxxxxxx    #你邮箱账号的密码
from_address = test@xxx.com  #发邮件的账号
from_name = Grafana     #自定义的名字
ehlo_identity = dashboard.example.com #无关紧要的一个标示

注意:host后面一定要带上端口号!!!
注意:host后面一定要带上端口号!!!
注意:host后面一定要带上端口号!!!

重要的事情说三遍

15、grafana配置邮件通知

(1)首先配置具体的通知方式

(2)填写配置信息

(3)点击test看看配置是否生效

收到邮件通知,表示这个配置是对的,后续如果没有收到邮件,只有一个原因,你的预警规则没有触发你的设置条件。

16、配置SpringBoot节点信息

打开前面配置的prometheus.yml文件,添加SpringBoot服务的信息,按照我的Demo即可,注意job_name和targets要配置对,targets中的IP是公网的IP

**注意:**不知道SpringBoot如何接入prometheus的可以私信留言或者自行百度即可,这里篇幅太长就不赘述了,只讲比较容易踩坑的地方。

17、配置邮件对应的服务

我们监控的目的,很多时候不同触发同一个邮件通知,一般多个服务会配置不同的邮件通知,这里简单理解就是这个意思,比如CPU飙高,我选择配置1,服务宕机,选择配置2,这个触发预警规则的时候,他会自动发送消息给对应的邮箱。

18、配置具体的预警规则

19、设置完成,达到预警规则的时候就会发送邮件

说明:像我这里firing就是表示会发送邮件的状态,这里的state一般有三种状态

(1)normal: 状态正常,不会触发预警
(2)pending: 触发了规则,进行轮询,如果一段时间后,还是会触发规则,则状态会变成firing
(3) firing : 触发规则,发送邮件

写在最后

以上就是今天分享的内容,干货满满。篇幅较长,要想弄好需要花点时间,耐心阅读。分享不易,不要白嫖哦,帮忙一键三连,持续关注“安前码后”公众号,更多干货持续输出中。下期再见。

  • 27
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
你!要在Linux上搭建PrometheusGrafana,你可以按照以下步骤进行操作: 1. 首先,确保你已经在Linux服务器上安装DockerDocker Compose。如果没有安装,可以参考官方文档进行安装。 2. 创建一个新的目录来存放PrometheusGrafana的配置文件。进入该目录并创建一个名为docker-compose.yml的文件。 3. 打开docker-compose.yml文件,并添加以下内容: ```yaml version: '3' services: prometheus: image: prom/prometheus volumes: - ./prometheus:/etc/prometheus command: - --config.file=/etc/prometheus/prometheus.yml ports: - 9090:9090 grafana: image: grafana/grafana ports: - 3000:3000 ``` 上述配置将创建两个服务PrometheusGrafanaPrometheus服务将监听9090端口,Grafana服务将监听3000端口。 4. 在同一目录下创建一个名为prometheus目录,用于存放Prometheus的配置文件。进入prometheus目录,并创建一个名为prometheus.yml的文件。 5. 打开prometheus.yml文件,并添加以下内容: ```yaml global: scrape_interval: 15s scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] ``` 上述配置将告诉Prometheus每隔15秒抓取一次本地主机的metrics信息。 6. 返回到docker-compose.yml文件所在目录,并在终端中运行以下命令启动PrometheusGrafana容器: ``` docker-compose up -d ``` 这将在后台启动容器。 7. 等待一段时间,然后在浏览器中访问http://服务器IP:3000,会看到Grafana的登录页面。 8. 使用默认用户名(admin)和密码(admin)登录Grafana。 9. 在Grafana中,点击左侧面板上的"Configuration"选项,然后选择"Data Sources"。 10. 点击"Add data source"按钮,选择"Prometheus"作为数据源类型。 11. 在"HTTP"选项卡中,输入Prometheus服务的URL,即http://localhost:9090。 12. 点击"Save & Test"按钮,确保连接正常。 现在,你已经成功搭建了PrometheusGrafana。你可以开始创建仪表盘和监控指标了。希望对你有所帮助!
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

做一枚快乐的程序员

觉得不错的话,可以点赞加关注哦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值