Installera och Använd Grafana på Ubuntu: Komplett Guide
Mästare Grafana-inställningar för övervakning och visualisering
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.
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
- Gå till
http://your-server-ip:3000 - Standarduppgifter:
- Användarnamn:
admin - Lösenord:
admin
- Användarnamn:
- Du kommer att uppmanas att ändra lösenordet omedelbart (högt rekommenderat!)
Konfigurera din första datakälla
Exempel: Lägg till Prometheus
- Klicka på Konfiguration (cog-icon) → Data Sources
- Klicka på Add data source
- Välj Prometheus
- Konfigurera:
- Namn: Prometheus
- URL:
http://localhost:9090(anpassa för din Prometheus-instans) - Åtkomst: Server (standard)
- Klicka på Save & Test
Exempel: Lägg till InfluxDB
- Välj InfluxDB som datakälla
- Konfigurera:
- Frågespråk: Flux eller InfluxQL
- URL:
http://localhost:8086 - Databas: your_database_name
- Användarnamn/Lösenord: dina uppgifter
- Klicka på Save & Test
Skapa din första instrumentpanel
- Klicka på Create (+ icon) → Dashboard
- Klicka på Add new panel
- Välj din datakälla
- Skriv din fråga (exempel för Prometheus):
rate(http_requests_total[5m])
- Anpassa visualisering:
- Välj panel typ (Graph, Gauge, Stat, Table, etc.)
- Konfigurera legender, axlar, trösklar
- Lägg till transformationer om det behövs
- Klicka på Apply för att spara panelen
- 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
- Gå till Alerting → Contact points
- Klicka på New contact point
- Välj typ (Email, Slack, PagerDuty, Webhook, etc.)
- Konfigurera inställningar (t.ex. Slack webhook URL)
- Test och spara
Steg 2: Skapa varningsregel
- Redigera en panel i din instrumentpanel
- Klicka på Alert fliken
- Konfigurera villkor:
- När: avg()
- Av: query(A, 5m, now)
- Är över: 80
- Ställ in utvärderingsintervall
- Lägg till meddelandekanal
- 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
- Organisera efter syfte: Skapa separata instrumentpaneler för olika team/tjänster
- Använd variabler: Skapa dynamiska instrumentpaneler med mallvariabler
- Ställ in lämpliga tidsintervall: Standard till meningsfulla tidsfönster
- Lägg till anteckningar: Markera distributioner och incidenter
- Använd mappar: Organisera instrumentpaneler logiskt
- Aktivera versionshantering: Spåra instrumentpaneländringar
- Ställ in uppdateringsintervall: Balansera realtidbehov med prestanda
- 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
- Ändra standardinloggning omedelbart
- Använd HTTPS med giltiga certifikat
- Konfigurera brandvägg:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable - Inaktivera anonym åtkomst
- Använd stark autentisering (LDAP, OAuth, SAML)
- Regelbundna uppdateringar Håll Grafana uppdaterad
- Begränsa användarbehörigheter Använd rollbaserad åtkomstkontroll
- Aktivera revisionsloggning
- Använd skrivskyddade datakällor där det är möjligt
- Implementera hastighetsbegränsning
Övervakning av Grafana Självt
Övervaka din Grafana-instans:
- Aktivera mätvärdspunkten i
grafana.ini:[metrics] enabled = true - Lägg till Grafana som Prometheus-mål
- 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
- Officiell Dokumentation
- Grafana GitHub
- Prometheus Dokumentation
- InfluxDB Dokumentation
- Hur man installerar Ubuntu 24.04 & användbara verktyg
- GPU-övervakningsprogram i Linux / Ubuntu
- Ubuntu Tangentbordskort: Komplett Cheatsheet
- Bash Cheat Sheet
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.