Installera och Använd Grafana på Ubuntu: Komplett Guide

Mästare Grafana-inställningar för övervakning och visualisering

Sidinnehåll

Grafana är den ledande öppna källkodsplattformen för övervakning och observabilitet, som omvandlar mätvärden, loggar och spårningar till åtgärdbara insikter genom imponerande visualiseringar.

grafana Detta är en skärmdump från Grafana-websidan.

Vad är Grafana?

Grafana är en plattformsoberoende öppen källkod för analytik och interaktiv visualiseringswebbapplikation. Den tillhandahåller diagram, grafer och varningar för webb när den är ansluten till stödda datakällor. Grafana används flitigt inom DevOps för övervakning av infrastruktur, applikationer och tjänster.

Nyckelfunktioner:

  • Universellt instrumentpanel Skapa vackra, dynamiska instrumentpaneler med flexibel mallning
  • Flera datakällor Anslut till 150+ datakällor inklusive Prometheus, InfluxDB, Elasticsearch, MySQL, PostgreSQL och fler
  • Varningar Enhetligt varningssystem med meddelandekanaler (Slack, PagerDuty, e-post, webhooks)
  • Teamarbete Dela instrumentpaneler, skapa team och hantera användarrättigheter
  • Plugin-ekosystem Utöka funktionaliteten med paneler, datakällor och appar
  • Molnbaserad Perfekt för Kubernetes, Docker och molnmiljöer

Varför Grafana på Ubuntu?

Ubuntu LTS-versioner ger en stabil, säker grund för att värd för Grafana. Om du börjar från grunden eller behöver konfigurera en ny Ubuntu-miljö för din övervakningsinfrastruktur, kolla in vår omfattande guide om hur man installerar Ubuntu 24.04 med användbara verktyg för att få ditt system redo.

Fördelar inkluderar:

  • Långsiktigt stöd och säkerhetsuppdateringar
  • Stort community och omfattande dokumentation
  • Nativ APT-repository-stöd från Grafana Labs
  • Utmärkt Docker-kompatibilitet
  • Perfekt för både utveckling och produktionsmiljöer

Installationsmetoder

Metod 1: Installera via APT-repository (Rekommenderas)

Detta är den mest raka metoden, som ger automatiska uppdateringar genom Ubuntu:s pakethanterare. Om du är nybörjare med Ubuntu-terminalen eller vill öka din produktivitet, kan vår Ubuntu-tangentbordskort hjälpa dig att navigera i systemet mer effektivt.

Steg 1: Installera förutsättningar

sudo apt-get install -y apt-transport-https software-properties-common wget

Steg 2: Lägg till Grafana GPG-nyckel

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

Steg 3: Lägg till Grafana APT-repository

För stabila versioner:

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

Steg 4: Uppdatera och installera Grafana

sudo apt-get update
sudo apt-get install grafana

Steg 5: Starta och aktivera Grafana-tjänst

sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl enable grafana-server.service

Steg 6: Verifiera installation

sudo systemctl status grafana-server

Grafana kommer nu att köra på http://localhost:3000

Metod 2: Installera med Docker

Docker ger isolering och enklare hantering för containeriserade distributioner.

Steg 1: Installera Docker (om inte redan installerat)

sudo apt-get update
sudo apt-get install docker.io
sudo systemctl start docker
sudo systemctl enable docker

Steg 2: Köra Grafana-container

docker run -d \
  --name=grafana \
  -p 3000:3000 \
  -v grafana-storage:/var/lib/grafana \
  grafana/grafana-oss

För bestående med konfiguration:

docker run -d \
  --name=grafana \
  -p 3000:3000 \
  -v grafana-storage:/var/lib/grafana \
  -v $(pwd)/grafana.ini:/etc/grafana/grafana.ini \
  -e "GF_SERVER_ROOT_URL=http://your-domain.com" \
  -e "GF_SECURITY_ADMIN_PASSWORD=your-secure-password" \
  grafana/grafana-oss

Metod 3: Installera med Docker Compose

Skapa en docker-compose.yml fil:

version: '3.8'

services:
  grafana:
    image: grafana/grafana-oss:latest
    container_name: grafana
    restart: unless-stopped
    ports:
      - '3000:3000'
    volumes:
      - grafana-storage:/var/lib/grafana
      - ./grafana/provisioning:/etc/grafana/provisioning
    environment:
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=your-secure-password
      - GF_USERS_ALLOW_SIGN_UP=false
      - GF_SERVER_ROOT_URL=http://your-domain.com

volumes:
  grafana-storage:

Starta med:

docker-compose up -d

Initial konfiguration

Första inloggningen

  1. Gå till http://your-server-ip:3000
  2. Standarduppgifter:
    • Användarnamn: admin
    • Lösenord: admin
  3. Du kommer att uppmanas att ändra lösenordet omedelbart (högt rekommenderat!)

Konfigurera din första datakälla

Exempel: Lägg till Prometheus

  1. Klicka på Konfiguration (cog-icon) → Data Sources
  2. Klicka på Add data source
  3. Välj Prometheus
  4. Konfigurera:
    • Namn: Prometheus
    • URL: http://localhost:9090 (anpassa för din Prometheus-instans)
    • Åtkomst: Server (standard)
  5. Klicka på Save & Test

Exempel: Lägg till InfluxDB

  1. Välj InfluxDB som datakälla
  2. Konfigurera:
    • Frågespråk: Flux eller InfluxQL
    • URL: http://localhost:8086
    • Databas: your_database_name
    • Användarnamn/Lösenord: dina uppgifter
  3. Klicka på Save & Test

Skapa din första instrumentpanel

  1. Klicka på Create (+ icon) → Dashboard
  2. Klicka på Add new panel
  3. Välj din datakälla
  4. Skriv din fråga (exempel för Prometheus):
rate(http_requests_total[5m])
  1. Anpassa visualisering:
    • Välj panel typ (Graph, Gauge, Stat, Table, etc.)
    • Konfigurera legender, axlar, trösklar
    • Lägg till transformationer om det behövs
  2. Klicka på Apply för att spara panelen
  3. Klicka på Save dashboard (disk icon)

Avancerad konfiguration

Konfigurera Grafana-inställningar

Redigera huvudkonfigurationsfilen:

sudo nano /etc/grafana/grafana.ini

Viktiga inställningar:

[server]
# Protocol (http, https, h2, socket)
protocol = http
http_port = 3000
domain = your-domain.com
root_url = http://your-domain.com

[security]
admin_user = admin
admin_password = your-secure-password
secret_key = your-secret-key

[users]
# Disable user signup
allow_sign_up = false
allow_org_create = false

[auth.anonymous]
enabled = false

[smtp]
enabled = true
host = smtp.gmail.com:587
user = your-email@gmail.com
password = your-app-password
from_address = your-email@gmail.com
from_name = Grafana

Starta om efter ändringar:

sudo systemctl restart grafana-server

Konfigurera omdirigering (Nginx)

Installera Nginx:

sudo apt install nginx

Skapa Nginx-konfiguration:

sudo nano /etc/nginx/sites-available/grafana
server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://localhost:3000;
        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;
    }
}

Aktivera och starta om:

sudo ln -s /etc/nginx/sites-available/grafana /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

Aktivera HTTPS med Let’s Encrypt

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com

Konfigurera varningar

Steg 1: Konfigurera meddelandekanal

  1. Gå till AlertingContact points
  2. Klicka på New contact point
  3. Välj typ (Email, Slack, PagerDuty, Webhook, etc.)
  4. Konfigurera inställningar (t.ex. Slack webhook URL)
  5. Test och spara

Steg 2: Skapa varningsregel

  1. Redigera en panel i din instrumentpanel
  2. Klicka på Alert fliken
  3. Konfigurera villkor:
    • När: avg()
    • Av: query(A, 5m, now)
    • Är över: 80
  4. Ställ in utvärderingsintervall
  5. Lägg till meddelandekanal
  6. Spara

Populära användningsområden

Infrastrukturövervakning

Stack: Prometheus + Node Exporter + Grafana

Övervaka systemmätningar:

  • CPU, minne, diskanvändning
  • Nätverkstrafik
  • Systembelastning
  • Disk I/O

För specifik övervakning av NVIDIA GPU kan du vilja utforska specialiserade GPU-övervakningsprogram för Linux/Ubuntu som integreras väl med Grafana.

Importera instrumentpanel ID: 1860 (Node Exporter Full)

Kubernetes-övervakning

Stack: Prometheus + kube-state-metrics + Grafana

Övervaka K8s-kluster:

  • Pod och container-mätningar
  • Klusterresursanvändning
  • Distributionsstatus
  • Ingress/tjänstövervakning

Importera instrumentpanel ID: 15757 (Kubernetes Cluster Monitoring)

Applikationsprestandaövervakning

Stack: Loki + Promtail + Grafana

Övervaka applikationsloggar och mätningar:

  • Förfrågningshastigheter och latenser
  • Felhastigheter
  • Loggaggregering och filtrering
  • Distribuerad spårning

Databasövervakning

Övervaka MySQL, PostgreSQL, MongoDB:

  • Frågeprestanda
  • Anslutningspooler
  • Långsamma frågor
  • Replikationsstatus

Instrumentpanel bästa praxis

  1. Organisera efter syfte: Skapa separata instrumentpaneler för olika team/tjänster
  2. Använd variabler: Skapa dynamiska instrumentpaneler med mallvariabler
  3. Ställ in lämpliga tidsintervall: Standard till meningsfulla tidsfönster
  4. Lägg till anteckningar: Markera distributioner och incidenter
  5. Använd mappar: Organisera instrumentpaneler logiskt
  6. Aktivera versionshantering: Spåra instrumentpaneländringar
  7. Ställ in uppdateringsintervall: Balansera realtidbehov med prestanda
  8. Lägg till dokumentation: Använd textpaneler för att förklara mätningar

Felsökning av vanliga problem

Grafana-tjänst startar inte

# Kolla loggar
sudo journalctl -u grafana-server -f

# Kolla konfiguration
sudo grafana-cli admin reset-admin-password newpassword

Datakällans anslutningsproblem

  • Verifiera nätverksanslutning: telnet datasource-host port
  • Kolla brandväggsregler
  • Verifiera uppgifter
  • Kolla datakällans tjänstloggar

Prestandaproblem

  • Minska frågetidsintervall
  • Optimera datakällfrågor
  • Öka serverresurser
  • Använd caching där det är möjligt
  • Överväg frågesvarscaching

Instrumentpanel laddar inte

  • Rensa webbläsarcache
  • Kolla webbläsarkonsol för fel
  • Verifiera att instrumentpanel JSON inte är korrumperad
  • Kolla Grafana-serverloggar

Backup och Underhåll

Backup Grafana Databas

# Stopp Grafana
sudo systemctl stop grafana-server

# Backup SQLite databas
sudo cp /var/lib/grafana/grafana.db /backup/grafana-$(date +%Y%m%d).db

# Backup konfiguration
sudo cp /etc/grafana/grafana.ini /backup/grafana-ini-$(date +%Y%m%d).bak

# Starta Grafana
sudo systemctl start grafana-server

Automatiserad Backup Skript

Här är ett bash-skript för att automatisera dina Grafana-backuper. Om du behöver en snabb referens för bash-skriptsyntax och kommandon, kolla in vårt Bash cheat sheet för användbara tips och exempel.

#!/bin/bash
BACKUP_DIR="/backup/grafana"
mkdir -p $BACKUP_DIR
DATE=$(date +%Y%m%d_%H%M%S)

# Backup databas
sudo cp /var/lib/grafana/grafana.db $BACKUP_DIR/grafana-$DATE.db

# Backup dashboards via API
curl -H "Authorization: Bearer YOUR_API_KEY" \
  http://localhost:3000/api/search?type=dash-db | \
  jq -r '.[] | .uid' | \
  xargs -I{} curl -H "Authorization: Bearer YOUR_API_KEY" \
  http://localhost:3000/api/dashboards/uid/{} > $BACKUP_DIR/dashboards-$DATE.json

# Bevara endast de senaste 30 dagarna
find $BACKUP_DIR -mtime +30 -delete

Uppdatera Grafana

# APT-metod
sudo apt update
sudo apt upgrade grafana

# Docker-metod
docker pull grafana/grafana-oss:latest
docker-compose down
docker-compose up -d

Säkerhetshärdning

  1. Ändra standardinloggning omedelbart
  2. Använd HTTPS med giltiga certifikat
  3. Konfigurera brandvägg:
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
    sudo ufw enable
    
  4. Inaktivera anonym åtkomst
  5. Använd stark autentisering (LDAP, OAuth, SAML)
  6. Regelbundna uppdateringar Håll Grafana uppdaterad
  7. Begränsa användarbehörigheter Använd rollbaserad åtkomstkontroll
  8. Aktivera revisionsloggning
  9. Använd skrivskyddade datakällor där det är möjligt
  10. Implementera hastighetsbegränsning

Övervakning av Grafana Självt

Övervaka din Grafana-instans:

  1. Aktivera mätvärdspunkten i grafana.ini:
    [metrics]
    enabled = true
    
  2. Lägg till Grafana som Prometheus-mål
  3. Importera Grafana-mätvärdesinstrumentpanel

Användbara Plugins

Installera plugins via CLI:

sudo grafana-cli plugins install <plugin-id>
sudo systemctl restart grafana-server

Rekommenderade Plugins:

  • grafana-piechart-panel: Förbättrade cirkeldiagram
  • grafana-worldmap-panel: Geografisk datavisualisering
  • grafana-clock-panel: Visa tid och datum
  • grafana-simple-json-datasource: Anslut till anpassade JSON-API:er
  • alexanderzobnin-zabbix-app: Zabbix-integration

Integrationsexempel

Grafana + Prometheus + Node Exporter

Komplett övervakningsstack-uppsättning:

# Installera Node Exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
tar xvfz node_exporter-1.7.0.linux-amd64.tar.gz
sudo cp node_exporter-1.7.0.linux-amd64/node_exporter /usr/local/bin/
sudo useradd -rs /bin/false node_exporter

# Skapa systemd-tjänst
sudo tee /etc/systemd/system/node_exporter.service << EOF
[Unit]
Description=Node Exporter
After=network.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl start node_exporter
sudo systemctl enable node_exporter

Grafana med InfluxDB och Telegraf

Tidsbaserad övervakningsuppsättning:

# Installera InfluxDB
wget -q https://repos.influxdata.com/influxdata-archive_compat.key
echo '393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key' | sha256sum -c && cat influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null
echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list
sudo apt update && sudo apt install influxdb
sudo systemctl start influxdb
sudo systemctl enable influxdb

# Installera Telegraf
sudo apt install telegraf
sudo systemctl start telegraf
sudo systemctl enable telegraf

Prestandaoptimering

Förfråganoptimering

  • Använd lämpliga tidsintervall
  • Begränsa antalet returdata
  • Använd cachestrategier
  • Aggregera data vid källan när det är möjligt
  • Använd registreringsregler i Prometheus

Serveroptimering

[database]
# Öka max anslutningar
max_open_conn = 300
max_idle_conn = 100

[dataproxy]
# Timeout-inställningar
timeout = 30
keep_alive_seconds = 30

[rendering]
# Aktivera samtidig rendergräns
concurrent_render_limit = 10

Användbara Länkar

Slutsats

Grafana på Ubuntu erbjuder en kraftfull, flexibel plattform för övervakning och observabilitet. Oavsett om du övervakar en enda server eller ett massivt Kubernetes-kluster, erbjuder Grafanas rika visualiseringsmöjligheter, omfattande datakällstöd och aktiva community en utmärkt lösning för DevOps-team.

Börja med en enkel uppsättning med APT-repositoriemetoden, anslut din första datakälla och utöka gradvis dina övervakningsmöjligheter. Kom ihåg att prioritera säkerhet, regelbundna backuper och prestandaoptimering när din Grafana-uppsättning växer.

Med rätt konfiguration och bästa praxis blir Grafana ett oundgängligt verktyg i din observabilitetsstack, som ger åtgärdbara insikter som hjälper till att upprätthålla pålitliga, prestandafulla system.