工作流程图
服务简介
Prometheus简介
普罗米修斯是一个开源系统 最初在 SoundCloud 上构建的监控和警报工具包。Prometheus
收集其指标并将其存储为时间序列数据,即指标信息与记录它的时间戳一起存储,以及称为标签的可选键值对。
特征:
- 具有由指标名称和键/值对标识的时间序列数据的多维数据模型
- PromQL,一种灵活的查询语言,可利用此维度
- 不依赖分布式存储;单服务器节点是自治的
- 时序收集通过 HTTP 上的拉取模型进行
- 通过中间网关支持推送时间序列
- 通过服务发现或静态配置发现目标
- 多种图形和仪表板支持模式
Grafana简介
Grafana
允许您查询、可视化、提醒和了解您的指标,无论它们存储在何处。创建、探索并与团队共享精美的仪表板,并培养数据驱动型文化,简单来说Grafana是一个可视化的指标展示工具,可通过各种炫酷的视图进行各种数据的展示。
Alertmanager
Alertmanager 主要用于接收Prometheus
发送的告警信息,它支持丰富的告警通知渠道,而且很容易做到告警信息进行分组、静默、抑制等,是Prometheus生态中非常重要的一个核心模块。
Prometheus服务器中的警报规则向Alertmanager发送告警。
Alertmanager 管理这些告警,对这些告警进行分组去重,根据理由规则发送到接受者,比如发送电子邮件、呼叫通知系统,以及即时通讯平台。
搭建服务
Prometheus
1.编写YML文件
vim /data/monitor/docker-compose-prometheus.yml
version: '3.2'
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
restart: unless-stopped
ports:
- 39090:9090
user: '0'
command:
- '--config.file=/etc/prometheus/prometheus.yml' #指定配置文件
- '--web.console.libraries=/etc/prometheus/console_libraries' #控制台模板目录
- '--web.console.templates=/etc/prometheus/consoles' #控制台库文件目录
- '--storage.tsdb.path=/prometheus/data' #指定数据存储位置
- '--storage.tsdb.retention=31d' #指定数据存储天数
- '--web.listen-address="0.0.0.0:9090"' #指定监听地址及端口
- '--web.external-url=prometheus' #指定web访问路径
- '--web.read-timeout=5m' #超时时间(超时读取请求和关闭空闲连接之前的最长持续时间。)
- '--web.max-connections=20' #设置最大连接数(同时连接的最大数量)
- '--web.enable-lifecycle' #支持热更新,直接执行localhost:39090/-/reload立即生效
- '--web.enable-admin-api' #控制对admin HTTP API的访问,其中包括删除时间序列等功能
- '--query.timeout=2m' #查询超时时间
- '--query.max-concurrency=20' #最大查询并发数量
- '--query.max-samples=50000000' #单次查询返回的最大样本数
- '--log.level=info' #日志级别: [debug, info, warn, error]
- '--log.format=logfmt' #日志输出格式:[logfmt, json]
volumes:
- /etc/localtime:/etc/localtime
- /data/monitor/config/prometheus/:/etc/prometheus
- /data/monitor/data/prometheus/:/prometheus/data
2.编写prometheus主配文件
vim /data/monitor/config/prometheus/prometheus.yml
###################全局配置#########################
global:
scrape_interval: 1m #全局默认的数据拉取间隔(默认1m)
scrape_timeout: 10s #全局默认的单次数据拉取超时时间(默认10s)
evaluation_interval