GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie Prometheus unter Ubuntu 18.04

Prometheus ist ein sehr leistungsfähiges Open-Source-Überwachungs- und Warnsystem, das für dynamische Umgebungen wie im Cloud-Raum geeignet ist. Es ist ein eigenständiges Projekt, das von der Community gepflegt wird, wobei viele Unternehmen und Organisationen zu seinem Quellcode beitragen. Die meisten Komponenten von Prometheus sind in Go geschrieben, was es einfach macht, sie als statische Binärdateien zu erstellen und bereitzustellen. In seltenen Fällen müssen Sie die Anwendung aus Code kompilieren.

Prometheus ist in der Lage, beliebige rein numerische Zeitreihen aufzuzeichnen, sowohl für maschinenzentrierte Überwachungen wie Linux-Systeme als auch für die Überwachung hochdynamischer serviceorientierter Architekturen. Visualisierungstools wie Grafana unterstützen die Abfrage von Prometheus mit der Grafana-Datenquelle für Prometheus, die seit Grafana 2.5.0 enthalten ist.

In diesem Handbuch behandeln wir die Installation von Prometheus auf einem Ubuntu 18.04-Server.

Bestandteile von Prometheus

Das Prometheus-Ökosystem umfasst verschiedene Komponenten, die zusammen ein vollständiges Überwachungs- und Warnsystem bieten. Die meisten Komponenten sind optional und müssen nur bei Bedarf installiert werden. Die Hauptkomponenten sind:

  • Prometheus-Server – Dieser kratzt und speichert Zeitreihendaten von Client-Systemen und -Anwendungen.
  • Exporter – werden zum Exportieren vorhandener Metriken aus Drittsystemen als Prometheus-Metriken verwendet.
  • Ein Alertmanager zur Handhabung von Alerts
  • Die Client-Bibliotheken zum Instrumentieren von Anwendungscode

Prometheus-Funktionen

Die Hauptmerkmale von Prometheus sind:

  • ein mehrdimensionales Datenmodell mit Zeitreihendaten, die durch Metriknamen und Schlüssel/Wert-Paare identifiziert werden
  • Es hat eine sehr flexible Abfragesprache, um sein mehrdimensionales Modell zu nutzen
  • Einzelne Serverknoten sind autonom und nicht auf verteilten Speicher angewiesen.
  • Die Prometheus-Zeitreihensammlung verwendet das Pull-Modell über das HTTP-Protokoll
  • Es verfügt über eine automatische Diensterkennung von Zielen und Konfigurationsdateien können dafür verwendet werden.
  • Das Pushen von Zeitreihen wird über ein zwischengeschaltetes Gateway unterstützt
  • Prometheus unterstützt mehrere Grafik- und Dashboard-Modi

Prometheus unter Ubuntu 18.04 installieren

Da Prometheus in Go geschrieben ist, werden seine Pakete als Binärdateien verteilt. Zum jetzigen Zeitpunkt ist die neueste Version von Prometheus v2.2.1 . Sie können die Veröffentlichungen auf der offiziellen Download-Seite überprüfen. Die bereitgestellten Pakete gelten für macOS-, Linux- und Windows-Betriebssysteme, stellen Sie also sicher, dass Sie das richtige Paket herunterladen.

$ sudo su -
$ export RELEASE="2.2.1"
$ wget https://github.com/prometheus/prometheus/releases/download/v${RELEASE}/prometheus-${RELEASE}.linux-amd64.tar.gz

Nachdem Sie das Archiv heruntergeladen haben, extrahieren Sie es mit tar.

$ tar xvf prometheus-${RELEASE}.linux-amd64.tar.gz
prometheus-2.2.1.linux-amd64/
prometheus-2.2.1.linux-amd64/consoles/
prometheus-2.2.1.linux-amd64/consoles/index.html.example
prometheus-2.2.1.linux-amd64/consoles/node-cpu.html
prometheus-2.2.1.linux-amd64/consoles/node-disk.html
prometheus-2.2.1.linux-amd64/consoles/node-overview.html
prometheus-2.2.1.linux-amd64/consoles/node.html
prometheus-2.2.1.linux-amd64/consoles/prometheus-overview.html
prometheus-2.2.1.linux-amd64/consoles/prometheus.html
prometheus-2.2.1.linux-amd64/console_libraries/
prometheus-2.2.1.linux-amd64/console_libraries/menu.lib
prometheus-2.2.1.linux-amd64/console_libraries/prom.lib
prometheus-2.2.1.linux-amd64/prometheus.yml
prometheus-2.2.1.linux-amd64/LICENSE
prometheus-2.2.1.linux-amd64/NOTICE
prometheus-2.2.1.linux-amd64/prometheus
prometheus-2.2.1.linux-amd64/promtool

Wechseln Sie in das neu erstellte Verzeichnis von Dateiextraktionen.

# cd prometheus-${RELEASE}.linux-amd64/

Prometheus-Systemgruppe erstellen

Prometheus benötigt einen eigenen Benutzer und eine eigene Gruppe, um als ausgeführt zu werden.

# groupadd --system prometheus
# grep prometheus /etc/group
prometheus:x:999:

Prometheus-Systembenutzer erstellen

Nachdem wir nun die Prometheus-Gruppe haben, erstellen wir einen Benutzer und weisen ihm die erstellte Gruppe zu.

# useradd -s /sbin/nologin -r -g prometheus prometheus
# id prometheus
uid=999(prometheus) gid=999(prometheus) groups=999(prometheus)

Konfigurations- und Datenverzeichnisse für Prometheus erstellen

Prometheus benötigt ein Verzeichnis, um seine Daten und Konfigurationsdateien zu speichern. Wir werden /var/lib/prometheus erstellen für Daten und /etc/prometheus für Konfigurationsdateien.

# mkdir -p /etc/prometheus/{rules,rules.d,files_sd}  /var/lib/prometheus

Prometheus-Binärdateien in ein Verzeichnis in Ihrem $PATH kopieren

Das bevorzugte Verzeichnis zum Ablegen von Binärdateien von Drittanbietern unter Linux ist /usr/local/bin/ da es sich standardmäßig in $PATH befindet und die Systembinärdateien nicht stört.

# cp prometheus promtool /usr/local/bin/
# ls /usr/local/bin/
prometheus promtool

Konsolen und Konsolenbibliotheken in das Konfigurationsdateiverzeichnis kopieren

Konsolendateien und Bibliotheken müssen unter /etc/prometheus/ abgelegt werden Verzeichnis.

# cp -r consoles/ console_libraries/ /etc/prometheus/

Systemdatei erstellen:

Ubuntu 18.04 verwendet standardmäßig das Systemd-Init-System. Wir müssen eine Service-Unit-Datei zum Verwalten des Prometheus-Dienstes erstellen. Wir legen die Datei unter /etc/systemd/system ab Verzeichnis. Der Name der Datei muss auf .service enden

# cat /etc/systemd/system/prometheus.service

[Unit]
Description=Prometheus systemd service unit
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

SyslogIdentifier=prometheus
Restart=always

[Install]
WantedBy=multi-user.target

Beachten Sie Folgendes:

  • Wir binden den Dienst an 0.0.0.0:9090 . Darauf kann von allen Netzwerkschnittstellen auf dem Server zugegriffen werden. Beschränken Sie es, indem Sie die IP-Adresse für die Schnittstelle angeben, die Sie verwenden möchten, 127.0.0.1 nur für den lokalen Zugriff.
  • Die angegebene Konfigurationsdatei ist /etc/prometheus/prometheus.yml . Als Nächstes erstellen wir eine grundlegende Konfigurationsdatei.

Prometheus-Konfigurationsdatei erstellen

Diese wird in /etc/prometheus/ abgelegt Verzeichnis.

# cat  /etc/prometheus/prometheus.yml
# Global config
global: 
 scrape_interval: 15s # Set the scrape interval to every 15 seconds.
 evaluation_interval: 15s # Evaluate rules every 15 seconds. 
 scrape_timeout: 15s # scrape_timeout is set to the global default (10s).

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

Weitere Konfigurationsoptionen finden Sie im offiziellen Prometheus-Konfigurationsleitfaden.

Verzeichnisberechtigungen auf Prometheus-Benutzer und -Gruppe ändern

Das Eigentum an Prometheus-Dateien und -Daten sollte sein Benutzer und seine Gruppe sein.

# chown -R prometheus:prometheus /etc/prometheus/  /var/lib/prometheus/
# chmod -R 775 /etc/prometheus/ /var/lib/prometheus/

Prometheus-Dienst starten und aktivieren

Starten und aktivieren Sie den Prometheus-Dienst, um beim Booten zu starten.

# systemctl start prometheus
# systemctl enable prometheus
Created symlink from /etc/systemd/system/multi-user.target.wants/prometheus.service to /etc/systemd/system/prometheus.service.

Status prüfen:

# systemctl status prometheus


Bestätigen Sie, dass Port 9090 lauscht.

# netstat -tunlp | grep 9090
tcp6 0 0 :::9090 :::* LISTEN 2140/prometheus

# telnet 127.0.0.1 9090
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
^]
If you have a firewall like ufw, Open port 9090 to be able to access it from a remote device.

# ufw allow 9090
Rule added
Rule added (v6)

Um ein bestimmtes Netzwerk zuzulassen, verwenden Sie:

# ufw allow from 192.168.10.0/24 to any port 9090
Rule added

# ufw status
Status: active

To Action From
-- ------ ----
9090 ALLOW Anywhere 
9090 ALLOW 192.168.10.0/24 
9090 (v6) ALLOW Anywhere (v6)

Öffnen Sie zum Abrufen der Webschnittstelle http://ip:9090

Das nächste, was Sie sich vielleicht ansehen sollten, ist die Konfiguration verschiedener Exporter für die Erfassung und Visualisierung von Metriken. Der beste Ausgangspunkt ist die Instrumentierungsseite für Exporteure.


Ubuntu
  1. So installieren Sie Odoo auf Ubuntu

  2. So installieren Sie Maven auf Ubuntu

  3. So installieren Sie R unter Ubuntu 16.04

  4. So installieren Sie Go unter Ubuntu 18.04

  5. So installieren Sie Prometheus unter Ubuntu 20.04

So installieren Sie das Prometheus-Überwachungstool unter Ubuntu 20.04

So installieren Sie qt unter Ubuntu 20.04

So installieren Sie Prometheus unter Ubuntu 16.04 LTS

So installieren Sie Prometheus unter Ubuntu 20.04 LTS

So installieren Sie Go in Ubuntu 20.04

So installieren Sie Go unter Ubuntu 22.04