更新升级 专属应用 系统故障 硬件故障 电脑汽车 鸿蒙刷机 鸿蒙开发Linux教程 鸿蒙开发Linux命令
当前位置:HMXT之家 > 鸿蒙开发Linux教程 > 在Ubuntu 22.04上安装和配置Prometheus服务器

在Ubuntu 22.04上安装和配置Prometheus服务器

更新时间:2023-04-22 09:21:33浏览次数:213+次

本文介绍在Ubuntu 22.04系统上安装和配置Prometheus服务器的详细步骤,也可用于Ubuntu 20.04、18.04版本上。Prometheus是一种监控工具,旨在将实时指标记录在时间序列数据库中,这是一个开源软件项目,用Go编写。当前Prometheus度量是使用HTTP拉取来收集的,从而实现更高的性能和可扩展性。

在Ubuntu 22.04系统上安装和配置Prometheus服务器的详细步骤

步骤1:创建Prometheus系统组

让我们从创建Prometheus系统用户和组开始:

sudo groupadd --system prometheus

ID < 1000的组是一个系统组。添加系统组后,创建Prometheus系统用户并分配创建的主组:

sudo useradd -s /sbin/nologin --system -g prometheus prometheus

步骤2:创建数据和配置目录

Prometheus需要一个目录来存储它的数据。我们将在/var/lib/prometheus下创建这个:

sudo mkdir /var/lib/prometheus

Prometheus的主要配置文件目录是/etc/prometheus/。它将有一些子目录:

for i in rules rules.d files_sd; do sudo mkdir -p /etc/prometheus/${i}; done

步骤3:下载Prometheus文件

我们需要下载Prometheus文件的最新版本,并提取它以获得二进制文件。您可以从Prometheus发布Github页面查看,地址在https://github.com/prometheus/prometheus/releases,可直接下载Prometheus最新版本安装或者采用以下方法处理:

安装wget:

sudo apt update

sudo apt -y install wget curl vim

然后下载Prometheus的最新二进制档案:

mkdir -p /tmp/prometheus && cd /tmp/prometheus

curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -

提取文件:

tar xvf prometheus*.tar.gz

cd prometheus*/

将二进制文件移动到/usr/local/bin/目录:

sudo mv prometheus promtool /usr/local/bin/

检查已安装的版本:

$ prometheus --version

prometheus, version 2.43.0 (branch: HEAD, revision: edfc3bcd025dd6fe296c167a14a216cab1e552ee)

build user: root@8a0ee342e522

go version: go1.19.7

platform: linux/amd64

tags: netgo,builtinassets

$ promtool --version

promtool, version 2.43.0

将Prometheus配置模板移动到/etc/目录:

sudo mv prometheus.yml /etc/prometheus/prometheus.yml

还要将控制台和控制台库移动到/etc/prometheus目录:

sudo mv consoles/ console_libraries/ /etc/prometheus/

cd $HOME

步骤4:在Ubuntu 22.04上配置Prometheus

创建或编辑Prometheus – /etc/prometheus/prometheus.yml的配置文件:

sudo vim /etc/prometheus/prometheus.yml

模板配置应类似于以下内容:

# 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']

您可以根据自己的默认喜好编辑文件并保存。

1、创建Prometheus系统服务单元文件

为了能够使用systemd管理Prometheus服务,您需要明确定义这个单元文件:

sudo tee /etc/systemd/system/prometheus.service<<EOF

[Unit]

Description=Prometheus

Documentation=https://prometheus.io/docs/introduction/overview/

Wants=network-online.target

After=network-online.target

[Service]

Type=simple

User=prometheus

Group=prometheus

ExecReload=/bin/kill -HUP \$MAINPID

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 \

  --web.listen-address=0.0.0.0:9090 \

  --web.external-url=

SyslogIdentifier=prometheus

Restart=always

[Install]

WantedBy=multi-user.target

EOF

2、更改目录权限

将这些目录的所有权更改为Prometheus用户和组:

for i in rules rules.d files_sd; do sudo chown -R prometheus:prometheus /etc/prometheus/${i}; done

for i in rules rules.d files_sd; do sudo chmod -R 775 /etc/prometheus/${i}; done

sudo chown -R prometheus:prometheus /var/lib/prometheus/

3、重新加载systemd守护程序并启动服务

sudo systemctl daemon-reload

sudo systemctl start prometheus

sudo systemctl enable prometheus

使用systemctl status prometheus命令检查状态:

$ systemctl status prometheus

prometheus.service - Prometheus

Loaded: loaded (/etc/systemd/system/prometheus.service; enabled; vendor preset: enabled)

Active: active (running)

如果您的服务器有一个正在运行的防火墙服务,则需要打开9090端口:

sudo ufw allow 9090/tcp

确认您可以通过访问web浏览器中的Prometheus服务器IP地址/DNS名称来连接到9090端口:

\

可以看到,成功访问了。另外,用户可自行配置使用密码保护Web控制台,即配置Prometheus基本http身份验证。