Grafana

Installation

Ubuntu/Debian

# Update package manager
sudo apt update
 
# Install dependencies
sudo apt install -y software-properties-common
 
# Add Grafana repository
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
 
# Import Grafana GPG key
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
 
# Update package manager
sudo apt update
 
# Install Grafana
sudo apt install grafana -y
 
# Start and enable Grafana
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
 
# Verify installation
sudo systemctl status grafana-server

CentOS/RHEL

# Add Grafana repository
sudo nano /etc/yum.repos.d/grafana.repo
 
# Add repository content
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
 
# Install Grafana
sudo yum install grafana -y
 
# Start and enable Grafana
sudo systemctl start grafana-server
sudo systemctl enable grafana-server

Docker Installation

# Pull Grafana image
docker pull grafana/grafana:latest
 
# Run container
docker run -d --name grafana \
  -p 3000:3000 \
  -e GF_SECURITY_ADMIN_PASSWORD=admin \
  -v grafana_storage:/var/lib/grafana \
  grafana/grafana:latest

Service Management

# Start Grafana
sudo systemctl start grafana-server
 
# Stop Grafana
sudo systemctl stop grafana-server
 
# Restart Grafana
sudo systemctl restart grafana-server
 
# Check status
sudo systemctl status grafana-server
 
# View logs
sudo tail -f /var/log/grafana/grafana.log

Web Interface Access

# Access Grafana
http://server-ip:3000
 
# Default credentials
# username: admin
# password: admin
 
# Change password on first login (recommended)

Configuration

Grafana Configuration File

# Main configuration
sudo nano /etc/grafana/grafana.ini

Important Settings

# Server settings
[server]
http_addr = 0.0.0.0
http_port = 3000
domain = your_domain.com
 
# Database
[database]
type = sqlite3
path = /var/lib/grafana/grafana.db
 
# Security
[security]
admin_user = admin
admin_password = secure_password
 
# Users
[users]
allow_sign_up = false

Apply Configuration Changes

# Edit configuration
sudo nano /etc/grafana/grafana.ini
 
# Restart Grafana
sudo systemctl restart grafana-server

Firewall Configuration

# UFW (Ubuntu)
sudo ufw allow 3000
 
# Firewalld (CentOS)
sudo firewall-cmd --permanent --add-port=3000/tcp
sudo firewall-cmd --reload

User Management

# Access Grafana web interface
http://server-ip:3000
 
# Create new user
1. Navigate to: Configuration > Users
2. Click "New User"
3. Fill in username, email, password
4. Assign role (Viewer, Editor, Admin)
5. Save
 
# Change user password
1. Navigate to: User Profile (top right avatar)
2. Select "Change Password"
3. Enter current and new password
4. Update
 
# Reset admin password
sudo grafana-cli admin reset-admin-password newpassword

Data Source Configuration

# Add data source via API
curl -X POST http://localhost:3000/api/datasources \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Prometheus",
    "type": "prometheus",
    "url": "http://prometheus:9090",
    "access": "proxy",
    "isDefault": true
  }'
 
# Or via web interface
1. Navigate to: Configuration > Data Sources
2. Click "Add data source"
3. Select type (Prometheus, Elasticsearch, etc.)
4. Enter URL and settings
5. Save & Test

Dashboard Management

# Export dashboard
1. Navigate to dashboard
2. Click dashboard name (top left)
3. Select "Export"
4. Download JSON
 
# Import dashboard
1. Navigate to: Dashboards > Import
2. Upload JSON file or paste dashboard ID
3. Select data source
4. Import
 
# Popular Dashboard IDs
# - Prometheus: 3662
# - Node Exporter: 1860
# - Docker: 893

Backup & Restore

# Backup Grafana database
sudo cp /var/lib/grafana/grafana.db /backup/grafana.db
 
# Backup Grafana configuration
sudo cp -r /etc/grafana /backup/grafana.conf
 
# Restore from backup
sudo cp /backup/grafana.db /var/lib/grafana/grafana.db
sudo systemctl restart grafana-server

Alerting Configuration

# Configure notification channel
1. Navigate to: Alerting > Notification channels
2. Click "New channel"
3. Select type (Email, Slack, PagerDuty, etc.)
4. Enter settings
5. Save
 
# Create alert rule
1. Navigate to: Alerting > Alert rules
2. Click "New alert rule"
3. Configure condition and threshold
4. Select notification channel
5. Save

Uninstall

Ubuntu/Debian

# Stop Grafana
sudo systemctl stop grafana-server
 
# Remove Grafana
sudo apt remove grafana -y
sudo apt autoremove -y
 
# Remove data
sudo rm -rf /var/lib/grafana
sudo rm -rf /var/log/grafana
sudo rm -rf /etc/grafana

CentOS/RHEL

# Stop Grafana
sudo systemctl stop grafana-server
 
# Remove Grafana
sudo yum remove grafana -y
 
# Remove data
sudo rm -rf /var/lib/grafana
sudo rm -rf /var/log/grafana