Es ist ja nun schon etwas länger her, dass ich hier auf dem Blog etwas zum Thema Monitoring geschrieben habe. Da ich ich nun dem Thema wieder etwas widmen kann, will ich mir mal Prometheus als alternative zu Icinga 2 etwas genauer anschauen.
Generell wird Prometheus als Docker Image zur Verfügung gestellt. Ich möchte aber in diesem Artikel darauf eingehen, wie man die Software auch ohne Docker installieren kann. Das liegt unter anderem daran, dass nicht in jeder Firma Docker eingesetzt wird.
Als Betriebssystem werde ich hier ein CentOS verwenden.
Download und entpacken von Prometheus
Um Prometheus zu installieren, muss man als erstes das entsprechende Archive von der Herstellerseite herunterladen. Auf der Seite kann man dann den Link zur aktuellen Version kopieren und dann anschließend im wget verwenden.
1 | wget https://github.com/prometheus/prometheus/releases/download/v2.25.0/prometheus-2.25.0.linux-amd64.tar.gz |
Anschließend wird das Archive entpackt.
1 | tar xvfz prometheus-*.tar.gz |
Nach dem entpacken des Archives wird der Ordner nach /opt/prometheus kopiert.
1 | mv prometheus-2.25.0.linux-amd64 /opt/prometheus |
Konfiguration und Starten des Systems
Im entpackten Archive ist direkt eine Konfigurationsdatei enthalten. Diese findet man unter /opt/prometheus und nennt sich prometheus.yml. Der Inhalt sollte hier wie folgt aussehen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | # 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'] |
Für den Anfang ist der letzte Eintrag am wichtigsten. Unter diesem können wir nach dem Start das Webfrontend aufrufen.
Die Konfigurationsdatei wird beim Starten von Prometheus mit angegeben. Der Startbefehl sieht dann wie folgt aus:
1 | ./prometheus --config.file=prometheus.yml |
Nachdem der Server gestartet ist, kann man diesen über das Webfrontend erreichen. Dafür verwendet man die IP Adresse und den in der Konfigurationsdatei angegebenen Port. In meinem Fall gebe ich in den Browser http://192.168.10.135:9090/ ein. Das ganze sieht dann wie folgt aus:
Somit ist die Installation von Prometheus abgeschlossen. In den nächsten Artikel werde ich mich dem Alert Manager zum Alarmieren von Ereignissen und Grafana zur Visualisierung widmen.
[…] diesem Artikel einmal die Installation von Grafana zeigen, da ich die Software in Kombination mit Prometheus einsetzten will. Um es aber flexibel zu halten, gibt es für die reine Installation einen eigenen […]