如何在 Linux 系统后台运行 Grafana 服务并设置开机自启?

文章导读
在大多数现代 Linux 发行版上,最稳妥的方式是通过包管理器安装 Grafana,并利用 systemd 管理服务来实现后台运行和开机自启。
📋 目录
  1. A 命令速用版
  2. B 为什么会这样
  3. C 分步处理
  4. D 怎么验证是否生效
  5. E 常见坑
  6. F 参考来源
A A

在大多数现代 Linux 发行版上,最稳妥的方式是通过包管理器安装 Grafana,并利用 systemd 管理服务来实现后台运行和开机自启。

先说结论:推荐使用系统自带的 systemd 管理 Grafana 进程,避免手动使用 nohup 或 screen 带来的维护麻烦。

  • 适合:CentOS 7+、Ubuntu 16.04+、Debian 8+ 等使用 systemd 的系统
  • 先准备:确保拥有 sudo 权限,且 3000 端口未被占用
  • 验收:服务状态显示 active (running) 且浏览器能访问登录页

命令速用版

sudo systemctl enable `--now` grafana-server

这条命令会同时完成“设置开机自启”和“立即启动服务”两个动作。如果之前已经安装过 Grafana 但服务未运行,执行即可生效。

为什么会这样

Linux 系统后台运行服务的核心在于“守护进程”。早期我们常用 nohup 或 screen 挂起进程,但这种方式在服务器重启后需要人工干预才能恢复。systemd 是现代 Linux 的标准初始化系统,它能监控服务状态,进程意外退出时自动重启,并在系统启动时按依赖顺序拉起服务。Grafana 官方安装包默认会注册 systemd 服务单元,因此直接调用 systemctl 是最规范的做法。

分步处理

1. 安装 Grafana(如未安装)

不同发行版命令不同,以 Ubuntu/Debian 为例,需先添加依赖并安装:

sudo apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/oss/release/grafana_10.0.0_amd64.deb
sudo dpkg -i grafana_10.0.0_amd64.deb

注:下载链接中的版本号请根据实际需求替换,建议查看官网最新稳定版。

CentOS/RHEL 系统建议配置官方源后安装:

sudo yum install -y yum-utils
sudo yum-config-manager `--add-repo` https://packages.grafana.com/oss/rpm/grafana.repo
sudo yum install -y grafana

安装包会自动创建 grafana 用户和服务文件。

2. 启用并启动服务

执行以下命令设置开机自启并立即运行:

sudo systemctl daemon-reload
sudo systemctl enable `--now` grafana-server

daemon-reload 用于确保 systemd 读取了最新的服务配置文件,尤其在刚安装完后建议执行。

3. 配置防火墙(如需外网访问)

Grafana 默认监听 3000 端口。如果服务器开启了防火墙,需放行该端口:

Ubuntu/Debian (UFW):

sudo ufw allow 3000/tcp

CentOS/RHEL (Firewalld):

如何在 Linux 系统后台运行 Grafana 服务并设置开机自启?
sudo firewall-cmd `--permanent` `--add-port`=3000/tcp
sudo firewall-cmd `--reload`

或者在云服务商的安全组规则中添加入站规则。

怎么验证是否生效

1. 检查服务状态

运行以下命令,观察 Active 状态:

systemctl status grafana-server

正常应显示active (running),且绿色圆点亮起。如果显示 failed 或 inactive,需查看下方日志。

2. 检查端口监听

确认进程是否绑定了预期端口:

sudo ss -tlnp | grep 3000

应能看到 grafana-server 进程监听在 0.0.0.0:3000 或具体 IP 上。

3. 浏览器访问

在本地浏览器输入http://服务器 IP:3000,能看到 Grafana 登录页面即表示服务正常。

常见坑

1. 端口被占用

如果 3000 端口已被其他程序占用,Grafana 会启动失败。可通过ss -tlnp | grep 3000排查,并在/etc/grafana/grafana.ini中修改http_port配置。

2. 配置文件权限

手动修改过/etc/grafana/grafana.ini后,确保文件所有者正确。Grafana 服务通常以grafana用户运行,如果配置文件权限 restrict 过高,可能导致无法读取配置而启动失败。

3. 重启后未自启

如果重启服务器后服务没起来,检查是否执行了enable命令。仅执行start只会当前运行,不会写入开机启动项。

参考来源

  • Grafana Labs, "Install Grafana on Debian/Ubuntu", https://grafana.com/docs/grafana/latest/setup-grafana/installation/debian/
  • Grafana Labs, "Install Grafana on RHEL/CentOS", https://grafana.com/docs/grafana/latest/setup-grafana/installation/rhel/