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. 练习与自测#
- 使用YUM或APT安装Grafana并启动,访问
/login页面截图确认。 - 修改
grafana.ini将端口改为3100,重启后验证端口可达。 - 安装一个面板插件并在UI中创建测试面板。
- 配置Nginx反向代理后,确认
root_url正确并能通过域名访问。