SpringCloud使用Prometheus和Grafana进行应用监控

作者Gitee地址 https://gitee.com/thciweicloud
作者项目 面包博客,一个微服务架构的前后端分离博客系统。

面包博客 一直想拥有一套自己的监控装置,并且能够自定义面板,足够直观展示运行情况统计数据

监控状态

在SpringCloud Greenwich版开始推荐使用 micrometer 进行应用监控,之后推出了actuator进行统一的整合,当然从它的子依赖中可以看出micrometer的端倪,那么我们如何在微服务中进行应用的监控呢?

在SpringCloud Gateway中引入依赖


<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-actuatorartifactId>
dependency>

配置yaml,使端口暴露出来

management:
  endpoints:
    web:
      exposure:
        include: '*'

直接启动服务即可

SpringCloud使用Prometheus和Grafana进行应用监控_第1张图片

Prometheus

使用 actuator 获取这些端口,但数据是庞大复杂的,这不利于我们进行分析,我们可以通过 Prometheus 来将数据转为 JSON 格式,在控制面板通过图标进行监控和展示

这里有两种方法安装,下载官方tar包或者使用docker安装

docker run -d -it -p 9090:9090 --name prometheus bitnami/prometheus:latest
#root权限进入容器内部
docker exec -u 0 -it 容器名 /bin/bash
#修改配置
vi /conf/prometheus.yml

这里注意一个问题,docker内部没有vim,需要更新apt安装,但是国外源很慢,如果换源的话,最后完成安装要再换回官方源(因为安全协议)

mv /etc/apt/sources.list /etc/apt/sources.list.bak

cat <<EOF >/etc/apt/sources.list
deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free
deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free
EOF

apt update

apt install vim

mv /etc/apt/sources.list.bak /etc/apt/sources.list

配置yaml

metrics_path: '/actuator/prometheus' #监控地址
scrape_interval: 5s                 #间隔时间

static_configs:me
- targets: ['服务器ip:88'] #应用服务地址 如果使用localhost 需要替换为电脑ip

SpringCloud使用Prometheus和Grafana进行应用监控_第2张图片

重启Prometheus

对于服务端,引入依赖

<dependency>
    <groupId>io.micrometergroupId>
    <artifactId>micrometer-registry-prometheusartifactId>
dependency>

配置yaml

management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    prometheus:
      enabled: true
    metrics:
      enabled: true
  metrics:
    export:
      prometheus:
        enabled: true

重启服务端,访问 Prometheus部署服务器ip:9090,仅仅进入是不够的,请检查状态status和语句是否可用

SpringCloud使用Prometheus和Grafana进行应用监控_第3张图片

这里说一下如果使用 tar 包安装,还是修改yml文件,最后启动Prometheus

./prometheus --config.file=prometheus.yml

Grafana

使用Prometheus仍然不完美,我们还需要一个dashboard进行整体的展示和管理,Grafana帮助我们解决了这个问题

在以下地址下载 rpm包 直接在服务器安装 Grafana 启动grafana

https://grafana.com/grafana/download

systemctl  start  grafana-server

访问 服务器ip:3000,在dashboard跟随流程

SpringCloud使用Prometheus和Grafana进行应用监控_第4张图片

添加你需要的panel,在metrics brower选择语句

SpringCloud使用Prometheus和Grafana进行应用监控_第5张图片

你可能感兴趣的:(spring,cloud,docker,云原生)