欢迎阅读我们关于如何在 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 二进制文件, prometheus
和 promtool
, 在解压后的 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 证书到期