在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