prometheus概念
官方文档
一、特点
- 多维数据模型:由度量名称和键值对标识的时间序列数据
- PromQL:一种灵活的查询语言,可以利用多维数据完成复杂的查询
- 不依赖分布式存储,单个服务器节点可直接工作
- 基于HTTP的pull方式采集时间序列数据
- 推送时间序列数据通过PushGateway组件支持
- 通过服务发现或静态配置发现目标
- 多种图形模式及仪表盘支持(grafana)
二、组织与架构
- Prometheus Server:收集指标和存储时间序列数据,并提供查询接口
- ClientLibrary:客户端库
- Push Gateway:短期存储指标数据。主要用于临时性的任务
- Exporters:采集已有的第三方服务监控指标并暴露metrics
- Alertmanager:告警
- Web UI:简单的Web控制台
三、部署
参考链接
[root@slave-2 monitor]# tar -xvf prometheus-2.6.1.linux-amd64.tar.gz
[root@slave-2 monitor]# rm -rf prometheus-2.6.1.linux-amd64.tar.gz && mv prometheus-2.6.1.linux-amd64 prometheus
[root@slave-2 prometheus]# vi /usr/lib/systemd/system/prometheus.service
[Unit]
Description=prometheus
[Service]
ExecStart=/opt/monitor/prometheus/prometheus --config.file=/opt/monitor/prometheus/prometheus.yml
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
[root@slave-2 prometheus]# systemctl daemon-reload
[root@slave-2 prometheus]# systemctl start prometheus
[root@slave-2 prometheus]# systemctl enable prometheus
http://192.168.2.62:9090/
[root@slave-2 prometheus]# ./prometheus -h
[root@slave-2 prometheus]# ./promtool -h
四、配置文件
参考链接
- 整体配置
global:
[ scrape_interval: | default = 1m ]
[ scrape_timeout: | default = 10s ]
[ evaluation_interval: | default = 1m ]
external_labels:
[ : ... ]
[ query_log_file: ]
rule_files:
[ - ... ]
scrape_configs:
[ - ... ]
alerting:
alert_relabel_configs:
[ - ... ]
alertmanagers:
[ - ... ]
remote_write:
[ - ... ]
remote_read:
[ - ... ]
storage:
[ - ... ]
- 被监控端配置scrape_configs
job_name:
[ scrape_interval: | default = ]
[ scrape_timeout: | default = ]
[ metrics_path: | default = /metrics ]
[ scheme: | default = http ]
basic_auth:
[ username: ]
[ password: ]
[ password_file: ]
static_configs:
[ - ... ]
file_sd_configs:
[ - ... ]
kubernetes_sd_configs:
[ - ... ]
consul_sd_configs:
[ - ... ]
tls_config:
[ ]
relabel_configs:
[ - ... ]
metric_relabel_configs:
[ - ... ]
- 常用服务发现
- file_sd_config
- consul_sd_config
- kubernetes_sd_config
五、监控指标数据模型
- Prometheus将所有数据存储为时间序列;
- 具有相同度量名称以及标签属于同一个指标;
- 每个时间序列都由度量标准名称和一组键值对(称为标签)唯一标识,通过标签查询指定指标。