星途物语 星途物语
首页
  • 随手记录
  • 故障处理
  • Nginx
  • MySQL
  • Ansible
  • Nexus
  • Tomcat
  • Docker
  • Zabbix
  • Prometheus
  • Git
  • GitLab
  • Jenkins
  • Kubernetes
  • Shell
  • Python
  • 圈圈空间
  • 做饭这件事
收藏站点
留言板
归档
GitHub (opens new window)

星途物语

尚记时,记之
首页
  • 随手记录
  • 故障处理
  • Nginx
  • MySQL
  • Ansible
  • Nexus
  • Tomcat
  • Docker
  • Zabbix
  • Prometheus
  • Git
  • GitLab
  • Jenkins
  • Kubernetes
  • Shell
  • Python
  • 圈圈空间
  • 做饭这件事
收藏站点
留言板
归档
GitHub (opens new window)
  • 随手记录

    • QPS优化记录
    • 阿里云SLB演示
    • DDOS预防
    • Linux内核优化
    • rsync同步守护进程
    • NFS文件同步
    • Tomcat升级
    • 编译安装mysql后添加到systemd管理
    • 防火墙笔记
    • python自动化巡检服务器
  • 故障处理

    • 处理防MIME攻击后出现的问题解决
  • MySQL学习笔记

    • MySQL5.7安装
    • MySQL常用操作语句
    • MySQL主从架构实施
    • MySQL主主架构实施
    • MySQL MHA高可用实施
    • MyCat读写分离
    • MySQL创建用户时的授权
    • MySQL备份
    • MySQL通配符
  • Nginx学习笔记

    • 状态码含义
    • 匹配优先级
    • Nginx常用操作
    • 添加第三方模块
    • 关于路径匹配
    • 转发和重写
    • 内置变量
    • Nginx配置文件结构
  • Tomcat学习笔记

    • 部署Tomcat
    • 修改发布目录
    • Tomcat调优
  • Redis学习笔记

    • 通过 tar.gz 包安装部署 redis
    • redis 配置文件
    • 哨兵集群
    • redis常用命令
    • 虚拟机安装 redis.tar.gz 遇到的问题
  • Ansible学习笔记

    • 部署和使用 ansible
    • ansible 自带的密码认证参数
    • 批量免密操作:批量分发公钥
    • 配置主机清单
    • ansible 小知识
    • 模块介绍
    • 剧本
    • 一键部署 rsync 环境
    • 批量安装一个tomcat
    • 批量安装一个nginx
    • 批量安装 zabbix-agent
  • Zabbix学习笔记

    • 部署 zabbix 服务端、客户端
    • 自定义监控
    • 触发器
    • 监控项类型
    • 简单检查模式
    • zabbix web 界面结构信息
    • 邮件报警
    • 微信报警
    • snmp 监控网络设备
    • 部署 zabbix 服务端、客户端
    • jmx 监控 java 应用
    • ipmi 监控硬件
    • 自动化注册
    • 监控项的主要项和相关项
    • percona 监控 mysql
  • Git学习笔记

    • 配置 git
    • 常用命令
  • GitLab学习笔记

    • 环境准备
    • 安装 gitlab
    • gitlab 忘记 root 管理员密码的处理办法
  • Jenkins学习笔记

    • 安装部署
    • jenkins 使用脚本完成项目构建
    • jenkins 自动构建最新项目
    • 将 jenkins 自动部署的结果返回给 gitlab
    • jenkins 上线 java 项目
    • jenkins pipeline
  • Docker学习笔记

    • 安装 docker
    • 配置 docker 源
    • docker 中的常见名词
    • 镜像管理命令
    • 容器管理命令
    • 创建容器
    • 数据卷
    • docker network
    • 搭建 LNMP
    • Dockerfile
    • Dockerfile 搭建 tomcat
    • docker 镜像磁盘扩容
    • docker composer
    • Harbor 私有镜像仓库
    • docker 面试题
    • docker desktop 运行时与虚拟机冲突
    • docker离线安装
  • Nexus学习笔记
  • Prometheus学习笔记

    • 核心组件
    • 工作原理
    • 安装和配置
    • 启动 Prometheus
    • PromQL 使用
    • 数据模型
    • Exporter
    • 演示服务
    • Grafana 数据可视化
    • Prometheus 告警
  • Kubernetes学习笔记

    • K8S的介绍
    • K8S集群环境的搭建
    • K8S资源管理
    • K8S的实战入门
  • 运维
  • Prometheus学习笔记
星途物语
2025-01-01

安装和配置

https://github.com/prometheus/prometheus/releases/download/v2.53.3/prometheus-2.53.3.darwin-arm64.tar.gz

image-20241218172425081
  • prometheus:这是一个二进制文件,主要用于启动Prometheus的程序,它是我们的核心程序
  • prometheus.yml:这个是Prometheus的配置文件,主要用于存储一些Prometheus的相关配置
  • promtool:用于检查Prometheus的配置等操作

Prometheus是不依赖任何的外部Runtime的,可以直接运行二进制文件

启动 Prometheus 时默认会直接去引用prometheus.yml这个配置文件

通过 Docker 安装和启动 Prometheus

前提:安装 Docker 和 docker-composer

通过 docker-composer 安装 Prometheus(git clone 的方式)

mkdir /data/
cd /data/
git clone https://gitee.com/linge365/docker-prometheus.git
cd docker-prometheus
1
2
3
4
image-20241223122814242

docker-compose up -d

image-20241223132645273 image-20241223132702084

web 访问地址

应用 访问地址
prometheus http://10.0.0.21:9090
grafana http://10.0.0.21:3000
altermanager http://10.0.0.21:9093
node-exporter http://10.0.0.21:9100/metrics
image-20241223133458835 image-20241223133526011
# 1. Global Configuration(全局配置)
global:
  scrape_interval: 15s              # 默认抓取间隔,单位秒,决定 Prometheus 拉取目标的频率
  evaluation_interval: 15s          # 告警规则评估间隔
  scrape_timeout: 10s              # 每次抓取的超时时间,单位秒
  external_labels:                 # 添加全局标签,适用于所有指标
    monitor: 'example-monitor'

# 2. Scrape Configuration(抓取配置)
scrape_configs:
  # 2.1. 监控 Node Exporter(主机资源监控)
  - job_name: 'node'               # 任务名称,用于标识任务
    scrape_interval: 30s           # 该任务的抓取间隔
    static_configs:
      - targets: ['localhost:9100', '192.168.1.100:9100']  # Node Exporter 目标地址

  # 2.2. 监控应用服务(例如 Web 服务)
  - job_name: 'web-service'
    scrape_interval: 15s
    static_configs:
      - targets: ['web-server-1:8080', 'web-server-2:8080']

  # 2.3. 监控 Kubernetes 集群(使用服务发现)
  - job_name: 'kubernetes-pods'
    kubernetes_sd_configs:
      - api_server: 'https://kubernetes.default.svc:443'
        role: pod
    relabel_configs:
      - source_labels: [__meta_kubernetes_pod_label_app]
        target_label: app

  # 2.4. 监控 MySQL 数据库(MySQL Exporter)
  - job_name: 'mysql'
    scrape_interval: 30s
    static_configs:
      - targets: ['mysql-server:9104']

# 3. Alert Configuration(告警配置)
alerting:
  alertmanagers:
    - static_configs:
        - targets:
            - 'alertmanager:9093'   # 告警处理服务器的地址

# 4. Alert Rules Configuration(告警规则配置)
rule_files:
  - 'alert.rules'  # 引入外部规则文件,用于告警规则定义

# 5. Remote Storage Configuration(远程存储配置)
remote_read:
  - url: "http://remote-storage.example.com/api/v1/read"
remote_write:
  - url: "http://remote-storage.example.com/api/v1/write"

# 6. Other Settings(其他设置)
# 日志和其他高级配置可以根据需要添加。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56

各参数详细解释

  1. 全局配置(global)
    • 全局配置定义了 Prometheus 的基本行为和指标
    • scrape_interval:控制 Prometheus 拉取目标数据的频率,通常设置为 15s 或 30s。过短可能带来较大的负载
    • evaluation_interval:定义告警规则评估的频率。通常与 scrape_interval 保持一致
    • scrape_timeout:设置每次抓取目标的最大超时时间。设置过短可能会导致抓取失败,过长则会浪费资源
    • external_labels:全局标签,用于标记 Prometheus 实例或集群环境中的指标。例如,可以设置为 monitor: 'prod-monitor' 用于区分生产环境的 Prometheus 实例
  2. 抓取配置(scrape_configs)
    • 这是 Prometheus 配置的核心部分,定义了 Prometheus 如何抓取不同目标的数据。每个 scrape_config 包含以下配置
    • job_name:抓取任务的名称,用于区分不同的抓取任务。例如,node 用于监控主机资源,mysql 用于监控数据库
    • static_configs 或 kubernetes_sd_configs
      • static_configs:用于手动指定目标地址(如 IP 和端口)
      • kubernetes_sd_configs:用于基于 Kubernetes 服务发现自动抓取监控目标
    • targets:指定抓取目标的地址列表。例如,localhost:9100 是 Node Exporter 监听的端口
    • relabel_configs:标签重命名规则。可以对抓取的指标标签进行重命名、过滤或添加新的标签
  3. 告警配置(alerting)
    • alertmanagers:指定 Prometheus 将告警发送到的目标(通常是 Alertmanager 服务)
      • targets:定义了 Alertmanager 服务的地址,Prometheus 将告警信息通过 HTTP 发送到这些目标
  4. 告警规则配置(rule_files)
    • 告警规则文件定义了 Prometheus 触发告警的条件。你可以在 prometheus.yml 配置中引用一个或多个规则文件
    • alert.rules:告警规则文件的路径,可以是相对路径或绝对路径。告警规则文件内容包括各种指标的阈值规则
  5. 远程存储配置(remote_read 和 remote_write)
    • Prometheus 支持将数据写入远程存储系统(如 Thanos 或 Cortex)以进行长期存储,也可以从远程存储中读取历史数据
    • remote_read:配置从远程存储读取数据
    • remote_write:配置将数据写入远程存储
  6. 根据具体需求,Prometheus 配置文件还可以包含其他配置项,如日志配置、认证配置等

总结

整个 Prometheus 配置文件结构是层次化的,包含全局配置、抓取配置、告警配置、规则文件配置、远程存储配置等多个部分。每个部分都可以根据不同的监控需求进行定制

global:定义全局行为,如抓取频率

scrape_configs:定义具体的抓取任务,决定 Prometheus 监控哪些目标

alerting:配置告警系统,通常与 Alertmanager 配合使用

rule_files:定义告警触发条件

remote_read 和 remote_write:设置远程存储与 Prometheus 的集成

启动 Prometheus:./prometheus

image-20241218172904524
#Prometheus
工作原理
启动 Prometheus

← 工作原理 启动 Prometheus→

Theme by Vdoing | Copyright © 2025-2025 | 鄂ICP备2024086820号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式