在Debian 10/9和Ubuntu 20.04 / 18.04上安装Prometheus服务器

如何在Debian 10/9和Ubuntu 20.04 / 18.04 Linux上安装Prometheus? Prometheus是一种监视工具,旨在在时间序列数据库中记录实时指标。这是用Go编写的开源软件项目。 Prometheus指标使用HTTP拉取进行收集,从而提高了性能和可伸缩性。本教程描述了如何在Debian和Ubuntu Linux系统上安装Prometheus Server。

使Prometheus成为完整监视工具的其他工具包括:

  • 出口商答:这些库可帮助将第三方系统的指标导出为Prometheus指标。
  • PromQL:Prometheus查询语言,可以过滤多维时间序列数据。

Grafana是通常用于可视化Prometheus轮询的数据以进行监视和分析的工具。用于创建带有代表特定指标的面板的仪表盘。

步骤1:创建Prometheus系统组

首先,为Prometheus系统创建用户和组。

sudo groupadd --system prometheus

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

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

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

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存档的最新版本并获取二进制文件。您可以检查发布 普罗米修斯发布Github 页面。

安装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.15.2 (branch: HEAD, revision: d9613e5c466c6e9de548c4dae1b9aabf9aaf7c57)
  build user:       [email protected]
  build date:       20200106-14:50:51
  go version:       go1.13.5

$ promtool --version
promtool, version 2.15.2 (branch: HEAD, revision: d9613e5c466c6e9de548c4dae1b9aabf9aaf7c57)
  build user:       [email protected]
  build date:       20200106-14:50:51
  go version:       go1.13.5

将Prometheus配置模板移至/ etc目录。

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

还将console和console_libraries移至/ etc / prometheus目录。

sudo mv consoles/ console_libraries/ /etc/prometheus/

步骤4:在Debian / Ubuntu上配置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=` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
    - targets: ['localhost:9090']

您可以编辑文件并将其保存为默认首选项。

创建Prometheus systemd服务单元文件

必须明确定义此单位文件,以便systemd能够管理Prometheus服务。

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

更改目录权限。

将这些目录的所有权更改为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/

重新加载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) since Sun 2020-01-19 14:36:08 UTC; 14s ago
     Docs: https://prometheus.io/docs/introduction/overview/
 Main PID: 1397 (prometheus)
    Tasks: 7 (limit: 2377)
   Memory: 21.7M
   CGroup: /system.slice/prometheus.service
           └─1397 /usr/local/bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus --web.console.templates

Jan 19 14:36:08 deb10 prometheus[1397]: level=info ts=2020-01-19T14:36:08.959Z caller=main.go:334 vm_limits="(soft=unlimited, hard=unlimited)"
Jan 19 14:36:08 deb10 prometheus[1397]: level=info ts=2020-01-19T14:36:08.960Z caller=main.go:648 msg="Starting TSDB ..."
Jan 19 14:36:08 deb10 prometheus[1397]: level=info ts=2020-01-19T14:36:08.964Z caller=head.go:584 component=tsdb msg="replaying WAL, this may take awhil
Jan 19 14:36:08 deb10 prometheus[1397]: level=info ts=2020-01-19T14:36:08.964Z caller=web.go:506 component=web msg="Start listening for connections" add
Jan 19 14:36:08 deb10 prometheus[1397]: level=info ts=2020-01-19T14:36:08.965Z caller=head.go:632 component=tsdb msg="WAL segment loaded" segment=0 maxS
Jan 19 14:36:08 deb10 prometheus[1397]: level=info ts=2020-01-19T14:36:08.966Z caller=main.go:663 fs_type=EXT4_SUPER_MAGIC
Jan 19 14:36:08 deb10 prometheus[1397]: level=info ts=2020-01-19T14:36:08.966Z caller=main.go:664 msg="TSDB started"
Jan 19 14:36:08 deb10 prometheus[1397]: level=info ts=2020-01-19T14:36:08.966Z caller=main.go:734 msg="Loading configuration file" filename=/etc/prometh
Jan 19 14:36:08 deb10 prometheus[1397]: level=info ts=2020-01-19T14:36:08.967Z caller=main.go:762 msg="Completed loading of configuration file" filename
Jan 19 14:36:08 deb10 prometheus[1397]: level=info ts=2020-01-19T14:36:08.967Z caller=main.go:617 msg="Server is ready to receive web requests."

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

sudo ufw allow 9090/tcp

使用网络浏览器访问Prometheus服务器的IP地址/ DNS名称,并确认您可以连接到端口9090。

接下来,将导出器安装在受监视的节点上,并配置Prometheus服务器目标以丢弃指标,以便可以在Grafana中对其进行可视化。

普罗米修斯监视指南

使用Prometheus和Grafana监视Ceph集群

使用Prometheus和Grafana监视Apache Web Server

如何在5分钟内使用Prometheus和Grafana监视Linux服务器性能

如何使用Prometheus和Grafana监视BIND DNS服务器

如何在5分钟内使用Prometheus和Grafana监视Redis服务器

在5分钟内使用Prometheus监视MySQL / MariaDB

使用Prometheus监控Etcd集群

Sidebar