7 szybkich kroków aby zainstalować Grafana na Ubuntu

Wstęp

Panel Grafana

W tym artykule stawiam Grafana na Ubuntu i wystawiam ją przez Nginx z SSL.
Grafana to narzędzie do wizualizacji danych – głównie dashboardy, wykresy i metryki. W praktyce wiele osób lubi ją za to, że dashboardy są prostsze i czytelniejsze niż to, co często wychodzi w Kibanie 🙂

To jest drugi artykuł z mojej serii o Elasticu. W pierwszym instalowałem Elasticsearch i Kibanę. Teraz dokładam coś lżejszego, bardziej dashboardowego, bez zbędnej komplikacji.

Uprzedzając: to nie jest super-produkcyjne rozwiązanie. Ale do lokalnych testów, małych aplikacji, side-projektów albo prostego zbierania logów – sprawdza się bardzo dobrze 👍
Całość robię na tym samym Ubuntu, na którym działa już Kibana.


Instalacja

Zaczynam od oficjalnego repozytorium Grafany. To najprostsza i zalecana droga – aktualizacje działają normalnie i nie ma kombinowania.

Najpierw instalujemy wymagane paczki i dodaję repozytorium APT:

Bash
sudo apt-get install -y apt-transport-https software-properties-common wget
sudo mkdir -p /etc/apt/keyrings/
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install grafana

Po tym kroku Grafana jest zainstalowana, ale jeszcze nie jest poprawnie skonfigurowana ani wystawiona na świat.


Konfiguracja

Teraz przechodzę do podstawowej konfiguracji Grafany.
Otwieram główny plik konfiguracyjny:

Bash
nano /etc/grafana/grafana.ini

Najważniejsze rzeczy, które tu zmieniam:

  • ustawiam inny port (3030),
  • definiuję publiczny adres URL,
  • konfiguruję SMTP, żeby Grafana mogła wysyłać maile (alerty, reset hasła itd.).

Przykładowa konfiguracja:

Bash
http_port = 3030
root_url = https://grafana.domain.com/

[smtp]
enabled = true
host = smtp.domain.pl:587
user = [email protected]
password = """<PASS_HERE_IN_TRIPLE_QUOTES>"""
from_address = [email protected]
from_name = Grafana

Potrójne cudzysłowy przy haśle są ważne, jeśli masz znaki specjalne. Oszczędza to nerwów później 😅


[Inne] Certbot – przygotowanie

Zanim ruszę z Nginxem, upewniam się, że Certbot jest dostępny.
Na Ubuntu najprościej zrobić to przez Snap.

Bash
apt-get install snapd
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

Na tym etapie nie uruchamiam jeszcze Certbota. Najpierw muszę mieć gotowego Nginxa.


Instalacja Nginx

Grafana będzie działać lokalnie na porcie 3030, a Nginx zajmie się HTTPS i proxy.

Bash
sudo apt install nginx -y
sudo nano /etc/nginx/sites-available/grafana

Mój plik konfiguracyjny wygląda tak:

Nginx
# /etc/nginx/sites-available/grafana
server {
    listen 443 ssl http2;
    server_name grafana.domain.pl;

    # SSL certificate (self-signed for Cloudflare or temporary cert before Certbot)
    ssl_certificate /etc/ssl/certs/kibana-for-cloudflare.crt;
    ssl_certificate_key /etc/ssl/private/kibana-for-cloudflare.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    access_log /var/log/nginx/grafana-access.log;
    error_log  /var/log/nginx/grafana-error.log;

    location / {
        proxy_pass http://127.0.0.1:3030;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_cache_bypass $http_upgrade;
    }
}

Na koniec włączam konfigurację i sprawdzam, czy wszystko jest OK:

Bash
sudo ln -s /etc/nginx/sites-available/grafana /etc/nginx/sites-enabled/grafana
sudo nginx -t
sudo systemctl enable nginx
sudo systemctl start nginx

[Certbot] Ciąg dalszy

Teraz, gdy Nginx działa, mogę uruchomić Certbota:

Bash
sudo certbot --nginx

Certbot automatycznie podmieni tymczasowy certyfikat na Let’s Encrypt i ustawi auto-odnawianie.
Od tego momentu HTTPS mamy ogarnięte 🔐


Aktywacja Grafany

Czas faktycznie uruchomić Grafanę.

Bash
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable grafana-server
sudo /bin/systemctl start grafana-server

Po tej operacji Grafana powinna być dostępna pod skonfigurowaną domeną.


Jeśli używasz CrowdSec

Jeśli, tak jak ja, masz CrowdSec, warto dorzucić logi Grafany do analizy.

Edytujemy plik:

Bash
nano /etc/crowdsec/acquis.yaml

Dodajemy:

Bash
filenames:
  - /var/log/nginx/grafana-access.log
  - /var/log/nginx/grafana-error.log

I restartujemy usługę:

Bash
systemctl restart crowdsec

Gotowe – Grafana też jest objęta ochroną 🛡️


Finał

Na koniec wchodzimy w przeglądarce na Grafanę i logujemy się danymi:

  • login: admin
  • hasło: admin

Grafana od razu wymusza zmianę hasła – i bardzo dobrze.
Od tego momentu możesz dodawać źródła danych, dashboardy i alerty 📊


Podsumowanie

Postawiliśmy Grafanę na Ubuntu, wystawiłem ją przez Nginx z HTTPS, skonfigurowałem SMTP i podpiąłem pod CrowdSec.
To prosty i czysty setup – idealny do małych projektów i własnej infrastruktury 👍

Dołącz do newslettera

Subskrybuj po bonusowe treści. Nie przegap nowych artykułów.

    We won’t send you spam. Unsubscribe at any time.

    Zostaw komentarz

    Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

    Przewijanie do góry