使用 Linux Binaries 方式安装 Prometheus

https://prometheus.io/

只有源码包属于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)
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:

http://localhost:9090/

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