Prometheus 安装

安装 prometheus server

二进制安装

可以从 prometheus官网 下载最新版本软件包。

1
2
$ export VERSION=2.33.4
$ curl -LO https://github.com/prometheus/prometheus/releases/download/v$VERSION/prometheus-$VERSION.darwin-amd64.tar.gz

然后解压:

1
2
$ tar -xzf prometheus-${VERSION}.darwin-amd64.tar.gz
$ mv prometheus-${VERSION}.darwin-amd64 prometheus-${VERSION} && cd prometheus-${VERSION}

解压后当前目录会包含默认的prometheus配置文件prometheus.yml

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
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).

# Alertmanager configuration
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:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'

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

static_configs:
- targets: ['localhost:9090']

启动prometheus,会默认加载当前路径下面的prometheus.yml文件:

1
$ ./prometheus

正常情况下会输出如下内容:

1
2
3
4
5
6
level=info ts=2018-10-23T14:55:14.499484Z caller=main.go:554 msg="Starting TSDB ..."
level=info ts=2018-10-23T14:55:14.499531Z caller=web.go:397 component=web msg="Start listening for connections" address=0.0.0.0:9090
level=info ts=2018-10-23T14:55:14.507999Z caller=main.go:564 msg="TSDB started"
level=info ts=2018-10-23T14:55:14.508068Z caller=main.go:624 msg="Loading configuration file" filename=prometheus.yml
level=info ts=2018-10-23T14:55:14.509509Z caller=main.go:650 msg="Completed loading of configuration file" filename=prometheus.yml
level=info ts=2018-10-23T14:55:14.509537Z caller=main.go:523 msg="Server is ready to receive web requests."

prometheus启动参数说明:

参数名称 含义 备注
–version 显示应用的版本信息
配置文件参数
–config.file=”prometheus.yml” Prometheus配置文件路径
WEB服务参数
–web.listen-address=”0.0.0.0:9090” UI、API、遥测(telemetry)监听地址
–web.read-timeout=5m 读取请求和关闭空闲连接的最大超时时间 默认值:5m
–web.max-connections=512 最大同时连接数 默认值:512
–web.external-url= 可从外部访问普罗米修斯的URL 如果Prometheus存在反向代理时使用,用于生成相对或者绝对链接,返回到Prometheus本身,如果URL存在路径部分,它将用于给Prometheus服务的所有HTTP端点加前缀,如果省略,将自动派生相关的URL组件。
–web.route-prefix= Web端点的内部路由 默认路径:–web.external-url
–web.user-assets= 静态资产目录的路径 在/user路径下生效可用
–web.enable-lifecycle 通过HTTP请求启用关闭(shutdown)和重载(reload)
–web.enable-admin-api 启用管理员行为API端点
–web.console.templates=”consoles” 总线模板目录路径 在/consoles路径下生效可用
–web.console.libraries=”console_libraries” 总线库文件目录路径
–web.page-title=”Prometheus Time Series Collection and Processing Server” Prometheus实例的文档标题
–web.cors.origin=”.*” CORS来源的正则Regex,是完全锚定的 例如:’https?://(domain1|domain2).com’
数据存储参数
–storage.tsdb.path=”data/“ 指标存储的根路径
–storage.tsdb.retention=STORAGE.TSDB.RETENTION [DEPRECATED]样例存储时间 此标签已经丢弃,用”storage.tsdb.retention.time”替代
–storage.tsdb.retention.time=STORAGE.TSDB.RETENTION.TIME 存储时长,如果此参数设置了,会覆盖”storage.tsdb.retention”参数;如果设置了”storage.tsdb.retention” 或者”storage.tsdb.retention.size”参数,存储时间默认是15d(天),单位:y, w, d, h, m, s, ms
–storage.tsdb.retention.size=STORAGE.TSDB.RETENTION.SIZE [EXPERIMENTAL]试验性的。存储为块的最大字节数,需要使用一个单位,支持:B, KB, MB, GB,TB, PB, EB 此标签处于试验中,未来版本会改变
–storage.tsdb.no-lockfile 不在data目录下创建锁文件
–storage.tsdb.allow-overlapping-blocks [EXPERIMENTAL]试验性的。允许重叠块,可以支持垂直压缩和垂直查询合并。
–storage.tsdb.wal-compression 压缩tsdb的WAL WAL(Write-ahead logging, 预写日志),WAL被分割成默认大小为128M的文件段(segment),之前版本默认大小是256M,文件段以数字命名,长度为8位的整形。WAL的写入单位是页(page),每页的大小为32KB,所以每个段大小必须是页的大小的整数倍。如果WAL一次性写入的页数超过一个段的空闲页数,就会创建一个新的文件段来保存这些页,从而确保一次性写入的页不会跨段存储。
–storage.remote.flush-deadline= 关闭或者配置重载时刷新示例的等待时长
–storage.remote.read-sample-limit=5e7 在单个查询中通过远程读取接口返回的最大样本总数。0表示无限制。对于流式响应类型,将忽略此限制。
–storage.remote.read-concurrent-limit=10 最大并发远程读取调用数。0表示无限制。
–storage.remote.read-max-bytes-in-frame=1048576 在封送处理之前,用于流式传输远程读取响应类型的单个帧中的最大字节数。请注意,客户机可能对帧大小也有限制。 默认情况下,protobuf建议使用1MB。
告警规则相关参数
–rules.alert.for-outage-tolerance=1h 允许prometheus中断以恢复“for”警报状态的最长时间。
–rules.alert.for-grace-period=10m 警报和恢复的“for”状态之间的最短持续时间。这仅对配置的“for”时间大于宽限期的警报进行维护。
–rules.alert.resend-delay=1m 向Alertmanager重新发送警报之前等待的最短时间。
告警管理中心相关参数
–alertmanager.notification-queue-capacity=10000 挂起的Alertmanager通知的队列容量。 默认值:10000
–alertmanager.timeout=10s 发送告警到Alertmanager的超时时间 默认值:10s
数据查询参数
–query.lookback-delta=5m 通过表达式解析和联合检索指标的最大反馈时间 默认值:5m
–query.timeout=2m 查询中止前可能需要的最长时间。 默认值:2m
–query.max-concurrency=20 并发(concurrently)执行查询的最大值
–query.max-samples=50000000 单个查询可以加载到内存中的最大样本数。注意,如果查询试图将更多的样本加载到内存中,则会失败,因此这也限制了查询可以返回的样本数。 数量级:5千万
日志信息参数
–log.level=info 仅记录给定的日志级别及以上的信息 可选参数值:[debug, info, warn, error],其中之一
–log.format=logfmt 日志信息输出格式 可选参数值:[logfmt, json],其中之一

docker 安装

直接使用prometheus 官方镜像安装就行了。

1
docker run -p 9090:9090 -v /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

启动完成后,可以通过http://ip:9090访问Prometheus的UI界面:

prometheus graph


Prometheus 安装
https://randzz.cn/41b1dfb8890e/prometheus-安装/
作者
Ezreal Rao
发布于
2022年5月15日
许可协议