17.6.1 Grafana安装与基础配置

Grafana安装与基础配置#

0. 原理草图:Grafana与Prometheus的关系#

文章图片

1. 版本选择与前置条件#

  • 选择与Prometheus生态兼容的稳定版本(建议LTS或最新稳定版)
  • 服务器要求:2C/4G起步,生产建议4C/8G+,SSD磁盘
  • 开放端口:默认3000;规划反向代理时考虑80/443
  • 时间同步:确保与Prometheus及各节点NTP一致

检查时钟与端口

timedatectl status | sed -n '1,5p'
ss -lntp | grep -E '(:3000|:80|:443)'

2. 安装方式(含示例)#

2.1 YUM安装(CentOS/RHEL)

cat >/etc/yum.repos.d/grafana.repo <<'EOF'
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
EOF

yum makecache
yum -y install grafana
systemctl enable --now grafana-server

2.2 APT安装(Ubuntu/Debian)

apt-get update && apt-get -y install apt-transport-https
wget -q -O - https://packages.grafana.com/gpg.key | apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" >/etc/apt/sources.list.d/grafana.list

apt-get update
apt-get -y install grafana
systemctl enable --now grafana-server

2.3 Docker安装(快速回滚)

docker run -d --name grafana \
  -p 3000:3000 \
  -v /opt/grafana/data:/var/lib/grafana \
  -e GF_SECURITY_ADMIN_PASSWORD='StrongPassw0rd!' \
  grafana/grafana:latest

docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"

3. 基础配置文件与目录(含命令)#

  • 配置文件:/etc/grafana/grafana.ini
  • 数据目录:/var/lib/grafana
  • 日志目录:/var/log/grafana
  • 插件目录:/var/lib/grafana/plugins

查看默认配置与目录权限

grep -nE '^\[server\]|\[security\]|\[database\]|\[log\]' /etc/grafana/grafana.ini | head -n 20
ls -ld /var/lib/grafana /var/log/grafana /var/lib/grafana/plugins

4. 服务启动与自启动(含排错命令)#

systemctl status grafana-server --no-pager
journalctl -u grafana-server -n 50 --no-pager

关键日志位置

tail -n 50 /var/log/grafana/grafana.log

5. 初始账号与安全设置(含命令解释)#

  • 默认管理员:admin/admin,首次登录强制修改
  • 建议设置强密码并禁止匿名

通过配置文件设置管理员密码

# /etc/grafana/grafana.ini
[security]
admin_password = StrongPassw0rd!
disable_gravatar = true
cookie_secure = true

命令行重置管理员密码

grafana-cli admin reset-admin-password 'StrongPassw0rd!'

预期效果:重置后用新密码登录,旧密码失效。

6. 关键基础配置项(含完整示例)#

最小可用配置示例

# /etc/grafana/grafana.ini
[server]
http_addr = 0.0.0.0
http_port = 3000
domain = grafana.example.com
root_url = %(protocol)s://%(domain)s/

[security]
admin_user = admin
admin_password = StrongPassw0rd!
cookie_secure = false
disable_gravatar = true

[database]
type = sqlite3
path = /var/lib/grafana/grafana.db

[log]
mode = file
level = info

解释
- root_url:反向代理或域名部署时必须匹配访问地址
- database:生产可切换MySQL/PostgreSQL以提升稳定性
- log.level:排障可临时调高到debug

7. 反向代理与HTTPS(含Nginx示例)#

Nginx反向代理

server {
    listen 80;
    server_name grafana.example.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Grafana对应配置

[server]
domain = grafana.example.com
root_url = http://grafana.example.com/

HTTPS(示意)

server {
    listen 443 ssl;
    server_name grafana.example.com;
    ssl_certificate     /etc/nginx/ssl/grafana.crt;
    ssl_certificate_key /etc/nginx/ssl/grafana.key;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header Host $host;
    }
}

8. 插件与主题基础管理(含命令)#

# 列出已安装插件
grafana-cli plugins ls

# 安装面板插件(示例)
grafana-cli plugins install grafana-piechart-panel

# 重启生效
systemctl restart grafana-server

预期效果:在Grafana UI中可新增对应可视化面板。

9. 运行验证清单(含验证命令)#

curl -sI http://127.0.0.1:3000/login | head -n 1
curl -s http://127.0.0.1:3000/api/health | jq
  • Web页面可访问,登录正常
  • 修改密码成功,权限生效
  • 系统状态面板无告警
  • 日志无ERROR级异常

10. 常见问题与排障(含命令与解决)#

10.1 端口被占用

ss -lntp | grep :3000
  • 解决:修改http_port或停止占用进程

10.2 登录失败/白屏

grep -n "root_url" /etc/grafana/grafana.ini
journalctl -u grafana-server -n 100 --no-pager
  • 解决:root_url与代理地址一致;检查反代头设置

10.3 插件异常

grafana-cli plugins ls
ls -l /var/lib/grafana/plugins
  • 解决:插件版本与Grafana主版本匹配;权限为grafana用户

11. 练习与自测#

  1. 使用YUM或APT安装Grafana并启动,访问/login页面截图确认。
  2. 修改grafana.ini将端口改为3100,重启后验证端口可达。
  3. 安装一个面板插件并在UI中创建测试面板。
  4. 配置Nginx反向代理后,确认root_url正确并能通过域名访问。