PROMETHEUS (instalacja)
MONITORING infrastruktury IT

    PROMETHEUS z mitologii greckiej jeden z wielu tytanów potrafiący tworzyć i niszczyć, leczyć i zabijać. Choć jego otoczenie negowało czułość lecz wymagało być strasznym wybrał dla siebie drogę przez mękę. Zrobił to w imię nadziei na lepsze jutro nie dla siebie lecz dla innych. Jak się okazało zarówno najbliżsi (Epimeteusz - brat), jak i jego władcy (Zeus) nie wykazali się tą samą mądrością, czy odwagą co on.

    Oprogramowanie Open Source PROMETHEUS zbiera informacje o usługach, kontenerach i klastrach Kubernetes. I tak ja tytan Prometusz potrafił wiedzę przechowywać, przetwarzać i przekazać tak i to narzędzie monitoringu analgicznie działa wysyłajac przy okazji powiadomienia oferując deduplikację, grupowanie i przekierowywanie e-mail-y, PagerDuty, Slack.

    Instalację zaczynamy od przygotowania systemu dla rodziny RedHat-a:

  • sudo dnf update -y

lub Ubuntu:

  • sudo apt-get update; sudo apt-get upgrade -y; sudo apt autoremove; sudo autoclean

idąc na całość (backup całego systemu zalecam)

  • sudo apt full-upgrade; sudo apt dist-upgrade; sudo do-release-upgrade

Tworzymy dedykowanego użytkownika:

  • sudo groupadd --system prometheus
  • sudo useradd --no-create-home --shell /bin/false -g prometheus --system prometheus

Tworzymy katalogi (według standardowej konwencji) i nadajemy im właściciela :

  • sudo mkdir /etc/prometheus
  • sudo mkdir /etc/prometheus/console
  • sudo mkdir /etc/prometheus/console_libraries
  • sudo mkdir /var/lib/prometheus
  • sudo mkdir /var/log/prometheus
  • sudo chown -R prometheus:prometheus /etc/prometheus
  • sudo chown prometheus:prometheus /var/lib/prometheus
  • sudo chown prometheus:prometheus /var/log/prometheus

Ściągamy źródła PROMETHEUS:

Kopiujemy rozpakowany binarny plik systemowy do folderu /usr/local/bin i nadajemy mu właściciela:

  • sudo cp prometheus promtool /usr/local/bin/
  • sudo chown prometheus:prometheus /usr/local/bin/prometheus
  • sudo chown prometheus:prometheus /usr/local/bin/promtool

Analogicznie czynimy z plikiem konfiguracyjnym Prometusza, który kopiujemy do /etc/prometheus:

  • sudo cp prometheus.yml /etc/prometheus/prometheus.yml
  • sudo chown -R prometheus:prometheus /etc/prometheus

Praktycznie już w tym momencie możemy testowo uruchomić PROMETHEUS-a komendą:

  • /usr/local/bin/prometheus --config.file=/etc/prometheus/prometheus.yml

i sprawdzić choćby pod adresem:

Powinna nam otworzyć się strona zbliżona do poniższej:


Idąc za tym sukcesem sprawdźmy samy siebie, czy Prometheush zarejestrował nasze zapytanie protokołem http wpisując w górnym wierszu, w miejsce tekstu ">_ Enter expression (press Shift+Enter for newlines)" następujący tekst:

  • promhttp_metric_handler_requests_total

i zatwierdziwszy go, np. klawiszem "ENTER" ukarze się naszym oczom następujący widok:


oraz wybierając drugą zakładkę "Graph" uzyskamy ten sam wynik, ale w postaci, jak się nie trudno domysleć graficznej:


Tym małym przerywnikiem chciałem połączyć przyjemne z pożytecznym, czyli nie tylko zamknąć pewien etap instalacji, ale zamiast we wstępie rozwodzić się tysiącami słów nad senesem istnienia takiego narzędzia, jal Prometheus to te trzy zrzuty ekranowe wyręczyły mnie w tej ciezkiej pracy. :-) W następnej kolejności należy usankcjonować na stałe uruchamianie aplikacji wraz z systemem operacyjnym. Czynimy to tworząc usługę prometheus w Systemd poprzez wygenerowanie pliku:

  •  sudo touch /etc/systemd/system/prometheus.service

i otwierając go w dowolnym edytorze ( nano /etc/systemd/system/prometheus.service ) wypełniamy następującym tekstem:

oraz restarujemy, aktywujemy, uruchamiamy i sprawdzamy samą usługę poniższymi komendami:

  • sudo systemctl daemon-reload
  • sudo systemctl enable prometheus
  • sudo systemctl start prometheus
  • sudo systemctl status prometheus

Jeśli gdzieś nie daliśmy ciała to powiniśmy ujrzeć w konsoli coś podobnego do poniższego zrzutu ekranowego, jeśli nie to będzie napisany komunikat błędu i w zależności ..:


Na sam koniec musimy wykonać lukę w zaporze ogoniowej (standardowo port 9090 i protikół TCP) komendą dla RedHat-a:

  • sudo firewall-cmd --permanent --add-port=9090/tcp
  • sudo firewall-cmd --reload

oraz dla klonów Debian-a:

  • sudo ufw allow 9090/tcp

    By postawić kropkę nad i proponuję zrestarrtować system i odświeżyć stronę Prometheusa. Ujrzymy na wykresie nie tylko restart usługi:


Jeśli zechcemy się wysilić i wykonamy powyższe zapytanie delikatnie zmodyfikowane:

  • rate(promhttp_metric_handler_requests_total[1m])

to ujrzymy przetworzone dane w postaci trendu:



Oracowane na podstawie:



PROXMOX -> błędnie wyświetlany adres ip w konsoli -> konfiguracja ustawień sieciowych
Login screen displays wrong ip address