在银河麒麟v10服务器上安装grafana需避开/usr/local路径冲突和glibc版本兼容问题,严格按架构选包、创建专用用户、使用/data目录、显式指定配置路径并正确设置权限,方可成功启动服务。

在银河麒麟V10服务器上安装Grafana,必须避开系统默认的/usr/local路径冲突和glibc版本兼容陷阱,否则服务无法启动或浏览器访问时出现SSL ERROR RX RECORD TOO LONG错误。
下载并解压适配版Grafana
先确认系统架构:执行uname -m,输出x86_64则用amd64包,aarch64则必须换ARM64包。银河麒麟V10 SP1+对Go二进制兼容性较好,但SP0用户务必跳过7.0以上版本——实测7.2.0在SP0上因GLIBC 2.28缺失会静默崩溃。
执行下载命令:wget https://dl.grafana.com/oss/release/grafana-7.2.0.linux-amd64.tar.gz(仅限x86_64 SP1及以上)。
解压到/opt目录:tar -zxvf grafana-7.2.0.linux-amd64.tar.gz -C /opt && mv /opt/grafana-7.2.0.linux-amd64 /opt/grafana。这一步不能解压到/usr/local——麒麟系统该路径被安全加固策略锁定,后续chown会失败。
创建专用用户与数据目录
运行Grafana必须使用非root用户,否则systemd服务会因权限过高被内核拦截:
执行useradd -r -s /sbin/nologin -M grafana创建无家目录、无登录权限的系统用户。
新建独立数据目录:mkdir -p /data/grafana/{data,logs,plugins,provisioning}。注意:必须用/data而非/var/lib——麒麟V10的SELinux策略对/var路径有额外审计规则,会导致grafana-server启动时卡在“loading plugins”阶段。
【关键权限】执行chown -R grafana:grafana /data/grafana /opt/grafana,漏掉/opt/grafana的属组会导致bin/grafana-server无法读取conf/defaults.ini。
配置Grafana服务文件
编辑/etc/systemd/system/grafana-server.service,内容如下:
[Unit]
Description=Grafana Service
After=network.target
[Service]
Type=simple
User=grafana
Group=grafana
ExecStart=/opt/grafana/bin/grafana-server \
--homepath=/opt/grafana \
--config=/opt/grafana/conf/defaults.ini \
--packaging=deb
Restart=on-failure
RestartSec=30
[Install]
WantedBy=multi-user.target
特别注意:ExecStart中必须显式指定--config路径,否则grafana会 fallback 到/etc/grafana/grafana.ini(该路径在麒麟上默认不存在,导致服务反复重启)。
修改配置文件指向自定义路径
打开/opt/grafana/conf/defaults.ini,找到[paths]段落,将以下四行取消注释并修改:
data = /data/grafana/data
logs = /data/grafana/logs
plugins = /data/grafana/plugins
provisioning = /data/grafana/provisioning
这一步不可跳过——默认配置会尝试写入/opt/grafana/data,而麒麟系统对/opt下子目录的写权限受umask 022严格限制,导致首次启动时data目录创建失败,后续所有指标存储中断。
启动并验证服务
执行以下命令序列:
systemctl daemon-reload → systemctl start grafana-server → systemctl enable grafana-server
检查状态:systemctl status grafana-server,确认Active状态为"active (running)"且Process ID不为0。
立即验证端口监听:sudo ss -tlnp | grep :3000,输出中必须包含grafana-server进程名。若只看到node或nginx,说明3000端口被其他服务抢占,需先执行sudo ss -tulnp | grep 3000查杀冲突进程。
浏览器访问http://localhost:3000,输入默认凭证admin/admin完成初始化。此时页面加载成功即表示安装闭环完成。











