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将所有数据存储为时间序列;
  • 具有相同度量名称以及标签属于同一个指标;
  • 每个时间序列都由度量标准名称和一组键值对(称为标签)唯一标识,通过标签查询指定指标。