Prometheus基本概念

Prometheus是使用Go语言开发的一款开源监控报警系统,它存储的是时序数据,简单的说就是按照相同的名称盒标签以时间维度存储连续的数据集合

时序(time series)以名称(metric)和一组key/value标签定义

Prometheus架构

Prometheus通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。输出被监控组件信息的HTTP接口叫做exporter,目前互联网已经有很多exporter可以直接使用,比如node、nginx、mysql等等。

安装prometheus

下载地址:https://github.com/prometheus/prometheus/releases

下载 prometheus-2.8.1.linux-amd64.tar.gz 二进制包

#解压
tar zxvf prometheus-2.8.1.linux-amd64.tar.gz
#进入目录
cd prometheus-2.8.1.linux-amd64
#启动
./prometheus --config.file=prometheus.yml
# ./prometheus 启动项选择
# 指定配置文件,默认当前prometheus命令同级的yml
--config.file="prometheus.yml"
# 指定监听地址端口
--web.listen-address="0.0.0.0:9090"
# 最大连接数
--web.max-connection=512
# tsdb数据存储目录,默认当前data
--storage.tsdb.path="data/"
# premetheus存储数据时间,默认15天
--storage.tsdb.retention=15d

prometheus.yml

# my global config
global:
scrape_interval: 15s # 默认情况下,每15s拉取一次目标采样数据
evaluation_interval: 15s # 默认情况下,每15s对告警规则做计算,更新告警状态
# scrape_timeout is set to the global default (10s). # 抓取超时时间

# 告警配置
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# job名称会增加到所有采样点上
- job_name: 'prometheus'

# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.

static_configs:
# 抓取的目标地址
- targets: ['localhost:9090']