在Debian 10上安装Prometheus

在本指南中,我们将学习如何在Debian 10上安装Prometheus。 普罗米修斯 是一个开源系统和服务监视系统。它以给定的时间间隔通过HTTP调用从已配置目标中收集指标,评估规则表达式,显示结果,并在满足某些条件时触发警报。

在Debian 10上安装Prometheus

普罗米修斯由各种组成部分组成。

  • 主要的 Prometheus服务器 刮取并存储时间序列数据
  • 客户端库 用于检测应用程序代码
  • 推送网关 支持短期工作
  • 出口商 用于在无法直接使用Prometheus指标检测给定系统的情况下(例如在HAProxy,StatsD,Graphite等服务中)从第三方系统导出现有指标作为Prometheus指标。
  • 警报经理 处理警报。

Prometheus及其其他组件在默认的Debian 10存储库中可用。但是,可用版本可能不是最新的。您可以通过运行以下命令来验证可用版本:

apt-cache policy prometheus
prometheus:
  Installed: (none)
  Candidate: 2.7.1+ds-3+b11
  Version table:
     2.7.1+ds-3+b11 500
        500 http://deb.debian.org/debian buster/main amd64 Packages

截至撰写本文时,当前版本为v2.26.0,因此来自默认Debian存储库的软件包有些陈旧。

在Debian 10上使用预编译的二进制文件安装Prometheus

为了确保您安装了最新版本的Prometheus,您可以使用预编译的二进制文件,这些文件可以直接从Prometheus下载 下载部分

创建Prometheus系统用户和组

开始安装之前,您必须创建Prometheus系统用户和组,如下所示;

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

创建普罗米修斯目录

接下来,您需要创建用于存储Prometheus配置文件和其他数据的目录。

mkdir /etc/prometheus /var/lib/prometheus

下载Prometheus Binary

接下来,导航至下载部分,并获取Prometheus的最新版本。您只需使用wget进行下载。

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

在Debian 10上安装Prometheus

下载二进制文件后,将其解压缩并按照以下步骤进行安装。

tar xzf prometheus-$VER.linux-amd64.tar.gz

接下来,复制 普罗米修斯Promtool 提取的存档文件夹下的二进制文件到 /usr/local/bin 目录。

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

复制后,将这些二进制文件的用户和组所有权设置为 普罗米修斯

chown prometheus:prometheus /usr/local/bin/{prometheus,promtool}

接下来,复制 consolesconsole_libraries 目录到 /etc/prometheus

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

创建Prometheus配置文件

默认的Prometheus配置文件位于解压缩的存档文件夹中。出于演示目的,我们将其复制到Prometheus配置目录并按如下所示进行修改;

cp prometheus-$VER.linux-amd64/prometheus.yml /etc/prometheus/
less /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']

在默认配置中,只有一个作业,称为 普罗米修斯 ,它会刮取时间序列数据 裸露普罗米修斯 服务器。该作业包含一个静态配置的目标,即本地主机 9090端口

接下来,设置Prometheus配置目录的用户和组所有权, / etc / prometheus普罗米修斯

chown -R prometheus:prometheus /etc/prometheus

完成后,类似地设置Prometheus数据目录的用户和组所有权, / var / lib / prometheus /普罗米修斯

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

在Debian 10上运行Prometheus

至少,Prometheus现在已设置好并可以运行。但是,此时我们还没有Prometheus服务配置文件,因此,可以通过执行以下命令以独立模式运行该文件:

prometheus --config.file=/etc/prometheus/prometheus.yml
level=info ts=2021-04-04T06:10:29.876Z caller=main.go:380 msg="No time or size retention was set so using the default time retention" duration=15d
level=info ts=2021-04-04T06:10:29.876Z caller=main.go:418 msg="Starting Prometheus" version="(version=2.26.0, branch=HEAD, revision=3cafc58827d1ebd1a67749f88be4218f0bab3d8d)"
level=info ts=2021-04-04T06:10:29.876Z caller=main.go:423 build_context="(go=go1.16.2, [email protected], date=20210331-11:56:23)"
level=info ts=2021-04-04T06:10:29.876Z caller=main.go:424 host_details="(Linux 4.19.0-13-amd64 #1 SMP Debian 4.19.160-2 (2020-11-28) x86_64 debian (none))"
level=info ts=2021-04-04T06:10:29.876Z caller=main.go:425 fd_limits="(soft=1024, hard=1048576)"
level=info ts=2021-04-04T06:10:29.876Z caller=main.go:426 vm_limits="(soft=unlimited, hard=unlimited)"
level=info ts=2021-04-04T06:10:29.878Z caller=web.go:540 component=web msg="Start listening for connections" address=0.0.0.0:9090
level=info ts=2021-04-04T06:10:29.878Z caller=main.go:795 msg="Starting TSDB ..."
level=info ts=2021-04-04T06:10:29.879Z caller=tls_config.go:191 component=web msg="TLS is disabled." http2=false
level=info ts=2021-04-04T06:10:29.881Z caller=head.go:696 component=tsdb msg="Replaying on-disk memory mappable chunks if any"
level=info ts=2021-04-04T06:10:29.881Z caller=head.go:710 component=tsdb msg="On-disk memory mappable chunks replay completed" duration=2.396µs
level=info ts=2021-04-04T06:10:29.881Z caller=head.go:716 component=tsdb msg="Replaying WAL, this may take a while"
level=info ts=2021-04-04T06:10:29.881Z caller=head.go:768 component=tsdb msg="WAL segment loaded" segment=0 maxSegment=0
level=info ts=2021-04-04T06:10:29.881Z caller=head.go:773 component=tsdb msg="WAL replay completed" checkpoint_replay_duration=16.322µs wal_replay_duration=122.019µs total_replay_duration=154.38µs
level=info ts=2021-04-04T06:10:29.882Z caller=main.go:815 fs_type=EXT4_SUPER_MAGIC
level=info ts=2021-04-04T06:10:29.882Z caller=main.go:818 msg="TSDB started"
level=info ts=2021-04-04T06:10:29.882Z caller=main.go:944 msg="Loading configuration file" filename=/etc/prometheus/prometheus.yml
level=info ts=2021-04-04T06:10:29.883Z caller=main.go:975 msg="Completed loading of configuration file" filename=/etc/prometheus/prometheus.yml totalDuration=917.073µs remote_storage=1.258µs web_handler=422ns query_engine=799ns scrape=685.906µs scrape_sd=23.984µs notify=13.096µs notify_sd=9.627µs rules=1.062µs
level=info ts=2021-04-04T06:10:29.883Z caller=main.go:767 msg="Server is ready to receive web requests."

创建Prometheus Systemd服务文件

为了能够将prometheus作为服务运行,您可以创建一个systemd服务配置文件,如下所示;

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

检查Prometheus服务的状态;

systemctl status prometheus
● prometheus.service - Prometheus Time Series Collection and Processing Server
   Loaded: loaded (/etc/systemd/system/prometheus.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2021-04-04 02:12:59 EDT; 6s ago
 Main PID: 916 (prometheus)
    Tasks: 7 (limit: 2359)
   Memory: 23.0M
   CGroup: /system.slice/prometheus.service
           └─916 /usr/local/bin/prometheus --config.file /etc/prometheus/prometheus.yml --storage.tsdb.path /var/lib/prometheus/ --web.console.templates=/etc/prometheus/con

...
Apr 04 02:12:59 debian prometheus[916]: level=info ts=2021-04-04T06:12:59.595Z caller=main.go:818 msg="TSDB started"
Apr 04 02:12:59 debian prometheus[916]: level=info ts=2021-04-04T06:12:59.595Z caller=main.go:944 msg="Loading configuration file" filename=/etc/prometheus/prometheus.yml
Apr 04 02:12:59 debian prometheus[916]: level=info ts=2021-04-04T06:12:59.595Z caller=main.go:975 msg="Completed loading of configuration file" filename=/etc/prometheus/pro
Apr 04 02:12:59 debian prometheus[916]: level=info ts=2021-04-04T06:12:59.595Z caller=main.go:767 msg="Server is ready to receive web requests."

访问Prometheus Web界面

您现在可以使用以下地址访问Prometheus, http:// <服務器IP>:9090。这将带您进入Prometheus的内置表达式浏览器。

可以在下面查看已抓取的指标, http:// <服務器IP>:9090 / metrics

在Debian 10上安装Prometheus

要检查节点的状态,请导航至 地位 > 目标

在Debian 10上安装Prometheus

好吧,这就是关于如何在Debian 10上安装Prometheus的内容。

想了解如何使用Prometheus Node Exporter监视Linux主机吗?检查下面的链接;

将Prometheus与Grafana集成以进行监控

使用Prometheus Node Exporter监视Linux系统指标

使用Prometheus和Grafana监控Gitlab指标

使用Prometheus和Grafana监控OpenVPN连接

Sidebar