0x01 创建目录

找一个你喜欢的地方,创建项目根目录

example:

[root@demo-78 ~]#  mkdir /data/prometheus

0x02 创建配置文件

进入到项目根目录:

[root@demo-78 ~]#  cd /data/prometheus

需要新建三个文件,分别是docker-compose.ymlprometheus.ymlnode_down.yml,详细配置如下

在以下配置中,除了docker-compose.yml中的端口映射配置以外,所有你能看到的关于hostportusernamepassowrd的配置,都修改成你自己的,顺便注意一下docker-compose.yml配置中关于文件挂载的路劲问题。

prometheus.yml配置如下:

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
alerting:
alertmanagers:
- static_configs:
- targets: ['10.0.5.78:9093']
# - alertmanager:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
- "node_down.yml"
# - "first_rules.yml"
# - "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'. static_configs:
- targets: ['10.0.5.78:9094'] - job_name: 'redis'
static_configs:
- targets: ['10.0.5.78:9121']
labels:
instance: redis - job_name: 'node'
scrape_interval: 8s
static_configs:
- targets: ['10.0.5.78:9100']
labels:
instance: node - job_name: 'cadvisor'
static_configs:
- targets: ['10.0.5.78:8088']
labels:
instance: cadvisori #基于文件自动加载新监控任务
- job_name: 'file_ds'
file_sd_configs:
- files: ['/etc/prometheus/reload/*.yml']
refresh_interval: 5s

docker-compose.yml配置如下:

version: '3'

networks:
monitor:
driver: bridge services:
prometheus:
image: prom/prometheus
container_name: prometheus
hostname: prometheus
restart: always
volumes:
- /prometheus/reload:/etc/prometheus/reload
- /prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
- /prometheus/node_down.yml:/etc/prometheus/node_down.yml
ports:
- "9094:9090"
networks:
- monitor grafana:
image: grafana/grafana
container_name: grafana
hostname: grafana
restart: always
ports:
- "3000:3000"
networks:
- monitor redis-exporter:
image: oliver006/redis_exporter
container_name: redis_exporter
hostname: redis_exporter
restart: always
ports:
- "9121:9121"
networks:
- monitor
command:
- '--redis.addr=redis://10.0.5.79:6379'
- '--redis.password=Pig_1234' node-exporter:
image: quay.io/prometheus/node-exporter
container_name: node-exporter
hostname: node-exporter
restart: always
ports:
- "9100:9100"
networks:
- monitor mysql-exporter:
image: prom/mysqld-exporter
container_name: mysql-exporter
hostname: mysql-exporter
restart: always
ports:
- "9104:9104"
networks:
- monitor
command:
- "--mysqld.address=10.0.5.79:3306"
- "--mysqld.username=pigdigital:Pigdigital_1234" cadvisor:
image: google/cadvisor:latest
container_name: cadvisor
hostname: cadvisor
restart: always
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
ports:
- "8088:8080"
networks:
- monitor

node_down.yml配置如下:

groups:
- name: node_down
rules:
- alert: InstanceDown
expr: up == 0
for: 1m
labels:
user: test
annotations:
summary: "Instance {{ $labels.instance }} down"
description: "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 1 minutes."

0x03 启动容器

# 启动容器
[root@demo-78 prometheus]# docker-compose up -d

自行执行命令查看是否启动成功

0x04 FAQ

  1. 如何使用prometheus.yml配置的 "基于文件自动加载新监控任务"

    项目启动后,在根目录会生产一个名叫reload的文件夹,只需要在当前文件夹中加入新增的监控配置就能自动注册到prometheus服务中,配置书写格式如下:

    [root@demo-78 ~]# cat /prometheus/reload/web.yml
    - targets:
    - '10.0.5.79:9100'
    labels:
    job: 'pig-web'
    __metrics_path__: '/web/actuator/prometheus'

    或:

    [root@demo-piggpt-78 ~]# cat /prometheus/reload/mysql.yml
    - targets: ['10.0.5.78:9104']

    这里只是给个实例,有特别的需求请自行查看资料,这两种写法唯一的区别在于:第一种写法我需要自定义metrics_path,否则默认拉取指标的路径(第二种写法)就是:10.0.5.78:9104/metrics,对于很多官网的exporter,使用第二种方式即可

  2. 容器mysql-export启动报错:caller=mysqld_exporter.go:225 level=info msg="Error parsing host config" file=.my.cnf err="no configuration found"

    由于mysql-exporter更新过后,配置写法有改变,截止2024年5月28日,最新的mysql-exporter:0.15.1按照当前配置部署能够成功启动,如遇无法启动,请自行查看官方文档

一分钟部署prometheus&grafana全方面监控SpringBoot项目的更多相关文章

  1. 【Linux】【Services】【SaaS】Docker+kubernetes(12. 部署prometheus/grafana/Influxdb实现监控)

    1.简介 1.1. 官方网站: promethos:https://prometheus.io/ grafana:https://grafana.com/ 1.2. 架构图 2. 环境 2.1. 机器 ...

  2. Prometheus+Grafana通过kafka_exporter监控kafka

    Prometheus+Grafana通过kafka_exporter监控kafka 一.暴露 kafka-metric 方式 二.jmx_exporter方式 2.1 下载jmx_prometheus ...

  3. k8s实战之部署Prometheus+Grafana可视化监控告警平台

    写在前面 之前部署web网站的时候,架构图中有一环节是监控部分,并且搭建一套有效的监控平台对于运维来说非常之重要,只有这样才能更有效率的保证我们的服务器和服务的稳定运行,常见的开源监控软件有好几种,如 ...

  4. Rancher2.x 一键式部署 Prometheus + Grafana 监控 Kubernetes 集群

    目录 1.Prometheus & Grafana 介绍 2.环境.软件准备 3.Rancher 2.x 应用商店 4.一键式部署 Prometheus 5.验证 Prometheus + G ...

  5. 部署Prometheus+Grafana监控

    Prometheus 1.不是很友好,各种配置都手写 2.对docker和k8s监控有成熟解决方案 Prometheus(普罗米修斯) 是一个最初在SoudCloud上构建的监控系统,开源项目,拥有非 ...

  6. k8b部署prometheus+grafana

    来源: https://juejin.im/post/5c36054251882525a50bbdf0 https://github.com/redhatxl/k8s-prometheus-grafa ...

  7. CentOS7安装部署Prometheus+Grafana (转)

    转自:https://www.jianshu.com/p/967cb76cd5ca 作为监控系统的后起之秀,prometheus的安装可谓非常简单,不需要第三方的依赖(数据库.缓存.PHP之类的).下 ...

  8. 群晖-使用docker套件部署Prometheus+Grafana

    Docker 部署 Prometheus 说明: 先在群辉管理界面安装好docker套件,修改一下镜像源(更快一点) 所需容器如下 Prometheus Server(普罗米修斯监控主服务器 ) No ...

  9. SpringBoot+Prometheus+Grafana实现应用监控和报警

    一.背景 SpringBoot的应用监控方案比较多,SpringBoot+Prometheus+Grafana是目前比较常用的方案之一.它们三者之间的关系大概如下图: 关系图 二.开发SpringBo ...

  10. kubenetes部署prometheus+grafana

    文章目录 环境介绍 创建node-exporter 创建Prometheus 创建Grafana 测试 环境介绍 # 关于k8s的集群部署,可以查看我其他博客 [root@master ~]# cat ...

随机推荐

  1. Kubernetes Pod配置:从基础到高级实战技巧

    本文深入探讨了Kubernetes Pod配置的实战技巧和常见易错点. 关注[TechLeadCloud],分享互联网架构.云服务技术的全维度知识.作者拥有10+年互联网服务架构.AI产品研发经验.团 ...

  2. Next.js 实战

    0x1 CSR,SSR,SSG CSR 客户端渲染(Client-Side Rendering).常见 B 端 Web 应用开发模式,前后端分离,服务器压力相对更轻,渲染工作在客户端进行,服务器直接返 ...

  3. 物联网浏览器(IoTBrowser)-Java快速对接施耐德网络IO网关

    前一段时间有个Java技术栈的朋友联系到我,需要快速对接现有的无人值守称重系统,这里的对接是指替代现有系统,而非软件层面的对接,也就是利用现有的硬件开发一套替代现有软件的自动化系统.主要设备包括地磅秤 ...

  4. 实验k8s ————— k8s 搭建[一]

    前言 以前学习k8s记录的.这里简单整理一下搭建,当时是我们学习环境的搭建,正式环境得专门的运维人员来,毕竟人家考虑的东西不一样. 正文 这里用kubeadm进行搭建,更加详细信息,在这里: http ...

  5. MVC 下拉选项实现的几种方式

    主要介绍4种方式 硬编码方式: ViewBag.hard_value = new List<SelectListItem>() { new SelectListItem(){Value=& ...

  6. The request client is not a secure context and the resource is in more-private address space `privat

    Chrome跨域问题:has been blocked by CORS policy: The request client is not a secure context and the resou ...

  7. linux中nginx的https证书过期替换

    linux中nginx的https证书过期替换 工作记录,不然老是忘 一般提示这个就说明过期了 首先把新的证书换上去,最好和之前的文件名字一样,这样就不用改配置文件了 路径就自己找了需要,不过一般挺好 ...

  8. 力扣20(java)-有效的括号(简单)

    题目: 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合.左括号必须以正确的顺序闭合.每个右括 ...

  9. 云企业网CEN-TR打造企业级私有网络

    简介: 为了满足企业大规模.多样化的组网和网络管理需求,云企业网(CEN)提出了转发路由器TR(Transit Router)的概念.在每个地域内创建一个转发路由器,可以连接大量VPC.VBR,作为您 ...

  10. 新型DDoS来袭 | 基于STUN协议的DDoS反射攻击分析

    简介: 作为新型反射类型,目前仍存绕过防御可能性. 阿里云安全近期发现利用STUN(Session Traversal Utilities for NAT,NAT会话穿越应用程序)服务发起的DDoS反 ...