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 email nie zostanie opublikowany. Wymagane pola są oznaczone *

    Przewijanie do góry