使用 Linux Binaries 方式安装 Prometheus
只有源码包属于Prometheus官方发布包,其他Linux和Windows平台二进制发布包只是为了方便用户使用。
使用 Linux Binaries 方式安装
1、下载 Prometheus 二进制文件。
从浏览器 或 命令行 下载 Prometheus 二进制文件。
注意:可先网页下载到本地,上传到
/usr/local/src
目录下,也可以使用 wget 下载;
下载地址:
官方地址:https://prometheus.io/download/
GitHub:https://github.com/prometheus/prometheus/releases
从您的浏览器下载
- Standalone Linux Binaries (64 Bit)
- Standalone Linux Binaries (ARM64)
- Standalone Linux Binaries (ARMv5)
- Standalone Linux Binaries (ARMv6)
- Standalone Linux Binaries (ARMv7)
从命令行下载
- Standalone Linux Binaries (64 Bit)
wget https://github.com/prometheus/prometheus/releases/download/v2.43.0/prometheus-2.43.0.linux-amd64.tar.gz
tar -zxvf prometheus-2.43.0.linux-amd64.tar.gz
- Standalone Linux Binaries (ARM64)
wget https://github.com/prometheus/prometheus/releases/download/v2.43.0/prometheus-2.43.0.linux-arm64.tar.gz
tar -zxvf prometheus-2.43.0.linux-arm64.tar.gz
- Standalone Linux Binaries (ARMv5)
wget https://github.com/prometheus/prometheus/releases/download/v2.43.0/prometheus-2.43.0.linux-armv5.tar.gz
tar -zxvf prometheus-2.43.0.linux-armv5.tar.gz
- Standalone Linux Binaries (ARMv6)
wget https://github.com/prometheus/prometheus/releases/download/v2.43.0/prometheus-2.43.0.linux-armv6.tar.gz
tar -zxvf prometheus-2.43.0.linux-armv6.tar.gz
- Standalone Linux Binaries (ARMv7)
wget https://github.com/prometheus/prometheus/releases/download/v2.43.0/prometheus-2.43.0.linux-armv7.tar.gz
tar -zxvf prometheus-2.43.0.linux-armv7.tar.gz
2、解压并安装(以 Standalone Linux Binaries (64 Bit)
为例)
- Standalone Linux Binaries (64 Bit)
$ cd /usr/local/src && wget https://github.com/prometheus/prometheus/releases/download/v2.43.0/prometheus-2.43.0.linux-amd64.tar.gz --no-check-certificate
$ tar -zxvf prometheus-2.43.0.linux-amd64.tar.gz -C /usr/local
$ cd .. && mv /usr/local/prometheus-2.43.0.linux-amd64 prometheus
$ echo 'export PROMETHEUS_HOME=/usr/local/prometheus/' >>/etc/profile
$ echo 'export PATH="$PATH:$PROMETHEUS_HOME"' >>/etc/profile
$ source /etc/profile
3、启动 Prometheus 服务:
查询使用帮助
$ ./prometheus -h
帮助说明内容:
usage: prometheus [<flags>]
The Prometheus monitoring server
Flags:
-h, --help Show context-sensitive help (also try --help-long and --help-man).
--version Show application version.
--config.file="prometheus.yml"
Prometheus configuration file path.
--web.listen-address="0.0.0.0:9090"
Address to listen on for UI, API, and telemetry.
--web.config.file="" [EXPERIMENTAL] Path to configuration file that can enable TLS or authentication.
--web.read-timeout=5m Maximum duration before timing out read of the request, and closing idle connections.
--web.max-connections=512 Maximum number of simultaneous connections.
--web.external-url=<URL> The URL under which Prometheus is externally reachable (for example, if Prometheus is served via a reverse proxy). Used for
generating relative and absolute links back to Prometheus itself. If the URL has a path portion, it will be used to prefix all HTTP
endpoints served by Prometheus. If omitted, relevant URL components will be derived automatically.
--web.route-prefix=<path> Prefix for the internal routes of web endpoints. Defaults to path of --web.external-url.
--web.user-assets=<path> Path to static asset directory, available at /user.
--web.enable-lifecycle Enable shutdown and reload via HTTP request.
--web.enable-admin-api Enable API endpoints for admin control actions.
--web.enable-remote-write-receiver
Enable API endpoint accepting remote write requests.
--web.console.templates="consoles"
Path to the console template directory, available at /consoles.
--web.console.libraries="console_libraries"
Path to the console library directory.
--web.page-title="Prometheus Time Series Collection and Processing Server"
Document title of Prometheus instance.
--web.cors.origin=".*" Regex for CORS origin. It is fully anchored. Example: 'https?://(domain1|domain2)\.com'
--storage.tsdb.path="data/"
Base path for metrics storage. Use with server mode only.
--storage.tsdb.retention=STORAGE.TSDB.RETENTION
[DEPRECATED] How long to retain samples in storage. This flag has been deprecated, use "storage.tsdb.retention.time" instead.
Use with server mode only.
--storage.tsdb.retention.time=STORAGE.TSDB.RETENTION.TIME
How long to retain samples in storage. When this flag is set it overrides "storage.tsdb.retention". If neither this flag nor
"storage.tsdb.retention" nor "storage.tsdb.retention.size" is set, the retention time defaults to 15d. Units Supported: y, w, d, h,
m, s, ms. Use with server mode only.
--storage.tsdb.retention.size=STORAGE.TSDB.RETENTION.SIZE
Maximum number of bytes that can be stored for blocks. A unit is required, supported units: B, KB, MB, GB, TB, PB, EB. Ex: "512MB".
Based on powers-of-2, so 1KB is 1024B. Use with server mode only.
--storage.tsdb.no-lockfile
Do not create lockfile in data directory. Use with server mode only.
--storage.tsdb.head-chunks-write-queue-size=0
Size of the queue through which head chunks are written to the disk to be m-mapped, 0 disables the queue completely. Experimental.
Use with server mode only.
--storage.agent.path="data-agent/"
Base path for metrics storage. Use with agent mode only.
--storage.agent.wal-compression
Compress the agent WAL. Use with agent mode only.
--storage.agent.retention.min-time=STORAGE.AGENT.RETENTION.MIN-TIME
Minimum age samples may be before being considered for deletion when the WAL is truncated Use with agent mode only.
--storage.agent.retention.max-time=STORAGE.AGENT.RETENTION.MAX-TIME
Maximum age samples may be before being forcibly deleted when the WAL is truncated Use with agent mode only.
--storage.agent.no-lockfile
Do not create lockfile in data directory. Use with agent mode only.
--storage.remote.flush-deadline=<duration>
How long to wait flushing sample on shutdown or config reload.
--storage.remote.read-sample-limit=5e7
Maximum overall number of samples to return via the remote read interface, in a single query. 0 means no limit. This limit is
ignored for streamed response types. Use with server mode only.
--storage.remote.read-concurrent-limit=10
Maximum number of concurrent remote read calls. 0 means no limit. Use with server mode only.
--storage.remote.read-max-bytes-in-frame=1048576
Maximum number of bytes in a single frame for streaming remote read response types before marshalling. Note that client might have
limit on frame size as well. 1MB as recommended by protobuf by default. Use with server mode only.
--rules.alert.for-outage-tolerance=1h
Max time to tolerate prometheus outage for restoring "for" state of alert. Use with server mode only.
--rules.alert.for-grace-period=10m
Minimum duration between alert and restored "for" state. This is maintained only for alerts with configured "for" time greater than
grace period. Use with server mode only.
--rules.alert.resend-delay=1m
Minimum amount of time to wait before resending an alert to Alertmanager. Use with server mode only.
--alertmanager.notification-queue-capacity=10000
The capacity of the queue for pending Alertmanager notifications. Use with server mode only.
--query.lookback-delta=5m The maximum lookback duration for retrieving metrics during expression evaluations and federation. Use with server mode only.
--query.timeout=2m Maximum time a query may take before being aborted. Use with server mode only.
--query.max-concurrency=20
Maximum number of queries executed concurrently. Use with server mode only.
--query.max-samples=50000000
Maximum number of samples a single query can load into memory. Note that queries will fail if they try to load more samples than
this into memory, so this also limits the number of samples a query can return. Use with server mode only.
--enable-feature= ... Comma separated feature names to enable. Valid options: agent, exemplar-storage, expand-external-labels,
memory-snapshot-on-shutdown, promql-at-modifier, promql-negative-offset, promql-per-step-stats, remote-write-receiver (DEPRECATED),
extra-scrape-metrics, new-service-discovery-manager, auto-gomaxprocs, no-default-scrape-port, native-histograms. See
https://prometheus.io/docs/prometheus/latest/feature_flags/ for more details.
--log.level=info Only log messages with the given severity or above. One of: [debug, info, warn, error]
--log.format=logfmt Output format of log messages. One of: [logfmt, json]
带参数启动
$ ./prometheus --config.file="/usr/local/prometheus/prometheus.yml"
浏览器访问 Prometheus:
4、配置 Prometheus
为 Prometheus 创建专用的数据存储目录
$ mkdir -p /mnt/prometheus/data
$ mkdir -p /mnt/prometheus/logs
5、开机自启动
[root@local ~]# vi /lib/systemd/system/prometheus.service
脚本内容:
[Unit]
Description="prometheus"
Documentation=https://prometheus.io/
After=network.target
[Service]
User=root
Type=simple
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/mnt/prometheus/data --web.enable-lifecycle --enable-feature=remote-write-receiver --query.lookback-delta=2m
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
LimitNOFILE=65536
TimeoutStopSec=20
Restart=on-failure
SuccessExitStatus=0
StartLimitInterval=60
StartLimitBurst=3000
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=prometheus
[Install]
WantedBy=multi-user.target
设置随机启动:
[root@local ~]# systemctl daemon-reload
[root@local ~]# systemctl disable prometheus.service
[root@local ~]# systemctl enable prometheus.service
[root@local ~]# systemctl start prometheus.service
[root@local ~]# systemctl status prometheus.service
[root@local ~]# systemctl stop prometheus.service
[root@local ~]# systemctl restart prometheus.service
作者:Jeebiz 创建时间:2023-02-19 19:16
最后编辑:Jeebiz 更新时间:2024-01-24 21:48
最后编辑:Jeebiz 更新时间:2024-01-24 21:48