最简单使用promethus+spring boot admin搭建spring boot应用监控系统

本文介绍了如何最简单地利用Prometheus和Spring Boot Admin搭建Spring Boot应用监控系统。从Prometheus的下载、启动和配置,到在Spring Boot中启用Prometheus,再到Spring Boot Admin的配置和使用,详细讲解了整个过程。文中还提到了Spring Boot Admin的server和client部分,以及对接Prometheus的方法,并解决了一个在2.1.2版本中遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最简单使用promethus+spring boot admin搭建spring boot应用监控系统

promethus的安装使用
下载

官网地址 https://prometheus.io/

打开download页面,选择操作系统(Operating system),cpu架构(Architecture)后选择对应的软件下载即可

  • prometheus是监控系统,和一个内嵌的时间序列数据库
  • alertmanager是告警的组件

因为是springboot应用的监控 所以主要使用这两个就可以(其他组件提供了探测功能,spring boot自身使用actuator提供这些探测信息)

因为主要是在linux上使用,所以下面讲的都是linux的操作

解压到prometheus到一个指定的位置,暂定**/app/monitor-admin/prometheus/**

解压之后有各种各样的文件

  • prometheus是可执行文件,要有x权限才能使用
  • prometheus.yml是配置文件,yml风格如果手写比较容易出错,最好使用相应的编辑器编写

解压alertmanager到**/app/monitor-admin/prometheus/里面,所以目录是/app/monitor-admin/prometheus/alertmanager**

文件命名风格基本一致

  • alertmanager是可执行文件,要有x权限才能使用
  • alertmanager.yml是配置文件
启动

启动prometheus最好使用如下命令

./prometheus --config.file=./prometheus.yml --web.enable-lifecycle
#--config.file=./prometheus.yml 指定配置
#--web.enable-lifecycle这个参数的主要目的是为了运行时重载配置

启动完成后使用ip:9090就可以访问到Prometheus的页面了

启动alertmanager可以使用类似的命令

alertmanager的默认端口是9093

简单配置

一个简单的prometheus.yml配置如下

# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration 这个是Alertmanager的配置
alerting:
  alertmanagers:
  - static_configs:
    - targets:
       - 127.0.0.1:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
   - "agent_monitor.yml" #这个是页面上的rules的配置文件
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  # - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
  - job_name: 'agent-server-monitor' #某个job的名字
    metrics_path: '/actuator/prometheus' #Prometheus采集的uri,在这里是spring boot提供的promethus接口
    scrape_interval: 15s
    static_configs:
    - targets: ['192.168.6.28:8099'] #目标,实际上就是一个应用的ip:port
      labels:
        instance: server #实例
        name: 192.168.6.28:8099 #区分各个实例,这个标签是可以任意添加的,在这里我的instance代表的是应用的功能,name作为区分
    - targets: ['192.168.5.22:8099']
      labels:
        instance: server
        name: 192.168.5.22:8099

agent_monitor.yml 这个配置可以这样子检查

promtool check rules /path/to/example.rules.yml
groups:
- name: monitor
  rules:
  - alert: InstanceDown
    ex
答:以下是一个示例的docker-compose.yml文件,用于启动Prometheus和Grafana来监控一个或多个应用程序: ``` version: '3' services: prometheus: image: prom/prometheus container_name: prometheus ports: - "9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml command: - '--config.file=/etc/prometheus/prometheus.yml' restart: always grafana: image: grafana/grafana container_name: grafana depends_on: - prometheus ports: - "3000:3000" environment: GF_SERVER_ROOT_URL: http://localhost:3000 GF_SECURITY_ADMIN_USER: admin GF_SECURITY_ADMIN_PASSWORD: admin volumes: - ./grafana-data:/var/lib/grafana restart: always ``` 在该docker-compose.yml文件中,我们创建了两个服务:prometheus和grafana。Prometheus服务使用Prometheus Docker映像,并将端口映射到9090。它还将/prometheus.yml文件作为挂载卷传递给容器。在启动容器时,我们使用命令行参数来指定/config.file=/etc/prometheus/prometheus.yml。 Grafana服务程序使用Grafana Docker映像,并依赖于prometheus服务。Grafana服务映射端口3000,并将以下环境变量传递给容器:GF_SERVER_ROOT_URL:使用localhost:3000 (在该容器中内部)作为grafana的根URL,GF_SECURITY_ADMIN_USER和GF_SECURITY_ADMIN_PASSWORD管理Grafana管理员的凭据。此服务还挂载了grafana-data目录,以便可以在重启容器时保留所有Grafana的设置。 最后,我们定义了restart: always参数以确保容器在退出时自动重新启动。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值