在 Rocky Linux 8 上安装 Prometheus

欢迎阅读我们关于如何在 Rocky Linux 8 上安装 Prometheus 的指南。 Prometheus 是一个开源的时间序列收集和处理监控系统,具有维度数据模型、灵活的查询语言、高效的时间序列数据库和现代警报方法。

想要快速开始使用 Prometheus 应用程序和基础设施监控吗? 检查下面的链接;

Prometheus:启动和运行:基础设施和应用程序性能监控

在 Rocky Linux 8 上安装 Prometheus

逐步完成本指南,以便在 Rocky Linux 8 上安装和配置 Prometheus。

创建 Prometheus 系统用户和组

运行下面的命令来创建 prometheus 系统用户和组。

useradd -M -r -s /bin/false prometheus

创建 Prometheus 配置目录

由于我们是从源代码安装 Prometheus,因此您需要创建相应的配置目录。

mkdir /etc/prometheus
mkdir /var/lib/prometheus

下载普罗米修斯压缩包

要安装最新版本的 Prometheus,请导航到下载页面并获取适用于您平台的 Prometheus 二进制文件。

您可以简单地运行以下命令来下载撰写本文时适用于 Linux 系统的最新版本。

将下面 VER 变量的值替换为 Prometheus 的当前版本。

VER=2.28.1
wget https://github.com/prometheus/prometheus/releases/download/v$VER/prometheus-$VER.linux-amd64.tar.gz -P /tmp

提取普罗米修斯压缩包

下载完成后,解压缩存档。

cd /tmp
tar -xzf prometheus-$VER.linux-amd64.tar.gz
ls prometheus-2.14.0.linux-amd64
console_libraries  consoles  LICENSE  NOTICE  prometheus  prometheus.yml  promtool  tsdb

复制两个 Prometheus 二进制文件, prometheuspromtool, 在解压后的 Prometheus 存档目录下 /usr/local/bin 目录。

cp prometheus-$VER.linux-amd64/{prometheus,promtool} /usr/local/bin/

复制 consoles/console_libraries/ 目录 /etc/prometheus 上面创建的目录。

cp -r prometheus-$VER.linux-amd64/{consoles,console_libraries} /etc/prometheus/

在 Rocky Linux 8 上配置 Prometheus

示例 Prometheus 配置文件, prometheus.yml, 位于解压缩的存档目录下。

由于我们正在进行基本设置,因此我们将复制配置文件并进行如下修改,使其只能抓取本地系统(Prometheus 服务器)。

cp prometheus-$VER.linux-amd64/prometheus.yml /etc/prometheus/

接下来,打开修改的配置文件,调整成这样;

vim /etc/prometheus/prometheus.yml

默认配置足以用于演示目的。 以下是默认 Prometheus 配置文件的内容。

# 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=` to any timeseries scraped from this config.   - job_name: 'prometheus'      # metrics_path defaults to '/metrics'     # scheme defaults to 'http'.      static_configs:     - targets: ['localhost:9090'] 

Save 并退出配置文件。

允许 Prometheus 通过防火墙。

firewall-cmd --add-port=9090/tcp --permanent
firewall-cmd --reload

设置配置文件和目录的正确所有权

运行以下命令将 Prometheus 配置文件和目录的所有权(所有者和组)设置为 prometheus。

chown -R prometheus:prometheus /etc/prometheus
chown -R prometheus:prometheus /var/lib/prometheus
chown prometheus.prometheus /usr/local/bin/{prometheus,promtool}

启动普罗米修斯

要使用我们的基本配置文件启动 Prometheus,请运行:

prometheus --config.file=/etc/prometheus/prometheus.yml
... level=info ts=2021-07-08T20:14:48.449Z caller=main.go:854 msg="TSDB started" level=info ts=2021-07-08T20:14:48.449Z caller=main.go:981 msg="Loading configuration file" filename=/etc/prometheus/prometheus.yml level=info ts=2021-07-08T20:14:48.451Z caller=main.go:1012 msg="Completed loading of configuration file" filename=/etc/prometheus/prometheus.yml totalDuration=1.389669ms remote_storage=1.749µs web_handler=236ns query_engine=591ns scrape=1.093751ms scrape_sd=26.279µs notify=23.549µs notify_sd=17.882µs rules=1.004µs level=info ts=2021-07-08T20:14:48.451Z caller=main.go:796 msg="Server is ready to receive web requests."

访问 Prometheus Web 界面

您应该能够访问 Prometheus 状态页面 https://localhost:9090 如果您在本地访问服务器或 https://<server-IP>:9090 如果您是远程访问。

创建 Prometheus Systemd 服务文件

为了能够将 Prometheus 作为服务运行,您需要创建一个 systemd 服务文件, /etc/systemd/system/prometheus.service,配置如下。

Note that this assumes Prometheus server is listening on default port 9090.
cat > /etc/systemd/system/prometheus.service << 'EOL' [Unit] Description=Prometheus Time Series Collection and Processing Server Wants=network-online.target After=network-online.target  [Service] User=prometheus Group=prometheus Type=simple ExecStart=/usr/local/bin/prometheus      --config.file /etc/prometheus/prometheus.yml      --storage.tsdb.path /var/lib/prometheus/      --web.console.templates=/etc/prometheus/consoles      --web.console.libraries=/etc/prometheus/console_libraries  [Install] WantedBy=multi-user.target EOL 

重新加载 systemd 守护进程配置。

systemctl daemon-reload

启动并启用 Prometheus 服务以在引导时运行。

systemctl enable --now prometheus

检查状态

systemctl status prometheus
● prometheus.service - Prometheus Time Series Collection and Processing Server    Loaded: loaded (/etc/systemd/system/prometheus.service; disabled; vendor preset: disabled)    Active: active (running) since Thu 2021-07-08 23:19:51 EAT; 7s ago  Main PID: 8209 (prometheus)     Tasks: 6 (limit: 4938)    Memory: 18.3M    CGroup: /system.slice/prometheus.service            └─8209 /usr/local/bin/prometheus --config.file /etc/prometheus/prometheus.yml --storage.tsdb.path /var/lib/prometheus/ --web.console.templates=/etc/prometheus/c>  Jul 08 23:19:51 localhost.localdomain prometheus[8209]: level=info ts=2021-07-08T20:19:51.676Z caller=head.go:794 component=tsdb msg="On-disk memory mappable chunks replay> Jul 08 23:19:51 localhost.localdomain prometheus[8209]: level=info ts=2021-07-08T20:19:51.676Z caller=head.go:800 component=tsdb msg="Replaying WAL, this may take a while" Jul 08 23:19:51 localhost.localdomain prometheus[8209]: level=info ts=2021-07-08T20:19:51.678Z caller=tls_config.go:191 component=web msg="TLS is disabled." http2=false Jul 08 23:19:51 localhost.localdomain prometheus[8209]: level=info ts=2021-07-08T20:19:51.678Z caller=head.go:854 component=tsdb msg="WAL segment loaded" segment=0 maxSegm> Jul 08 23:19:51 localhost.localdomain prometheus[8209]: level=info ts=2021-07-08T20:19:51.678Z caller=head.go:860 component=tsdb msg="WAL replay completed" checkpoint_repl> Jul 08 23:19:51 localhost.localdomain prometheus[8209]: level=info ts=2021-07-08T20:19:51.679Z caller=main.go:851 fs_type=XFS_SUPER_MAGIC Jul 08 23:19:51 localhost.localdomain prometheus[8209]: level=info ts=2021-07-08T20:19:51.679Z caller=main.go:854 msg="TSDB started" Jul 08 23:19:51 localhost.localdomain prometheus[8209]: level=info ts=2021-07-08T20:19:51.679Z caller=main.go:981 msg="Loading configuration file" filename=/etc/prometheus> Jul 08 23:19:51 localhost.localdomain prometheus[8209]: level=info ts=2021-07-08T20:19:51.681Z caller=main.go:1012 msg="Completed loading of configuration file" filename=/> Jul 08 23:19:51 localhost.localdomain prometheus[8209]: level=info ts=2021-07-08T20:19:51.681Z caller=main.go:796 msg="Server is ready to receive web requests." 

检查 prometheus 是否正在侦听 TCP 端口 9090。

ss -altnp | grep 9090
LISTEN 0      128                *:9090            *:*    users:(("prometheus",pid=8209,fd=7))

太好了,Prometheus 现在作为服务运行。

您现在可以检查连接目标的状态。 点击 地位 下拉然后 目标。 目前,我们只有 Prometheus 抓取运行它的本地主机。

您还可以检查本地系统指标,例如检查内存统计信息,例如“go_memstats_frees_total“。

如需图形概览,请单击图形。

到目前为止,您已经学会了如何在 Rocky Linux 8 上安装和配置 Prometheus。

在这里可以随意探索更多关于 Prometheus 的信息。

使用 AlertManager 配置 Prometheus 电子邮件警报

使用 Prometheus 和 Grafana 监控 SSL/TLS 证书到期