购买新的 VPS 后,如果已有哪吒监控 V0 服务端,通常只需要在新服务器上部署 Agent,并将其连接到现有面板即可。

本文记录 Linux 环境下手动部署 哪吒监控 V0 Agent v0.20.5 的完整流程,包括下载程序、配置运行参数、使用 systemd 实现后台运行和开机自启,以及常用的状态检查与故障排查。

本文采用手动部署方式,不使用一键安装脚本,方便了解每个步骤的具体作用。

版本说明: 本文针对哪吒监控 V0 Agent v0.20.5。哪吒监控不同版本之间的配置方式可能存在差异,请勿直接将本文命令套用于新版 Agent。

一、准备工作

开始之前,请确认:

  • 已经部署并正常运行哪吒监控 V0 服务端。
  • 已获取服务端连接地址、端口和对应的密钥。
  • 服务器能够访问 GitHub 下载地址。
  • 当前使用的 Linux 系统支持 systemd,例如 Debian、Ubuntu 等常见发行版。

本文以 Linux x86_64(AMD64)架构为例。

可以先检查系统架构和 systemd:

uname -m
systemctl --version

如果 uname -m 输出 x86_64,即可使用本文中的 linux_amd64 安装包。

二、下载并安装 Agent

1. 安装必要工具

Debian / Ubuntu 系统可以执行:

apt update
apt install -y wget unzip

2. 下载指定版本

进入临时目录并下载 Agent v0.20.5:

cd /tmp

wget -O nezha-agent_linux_amd64.zip \
  https://github.com/nezhahq/agent/releases/download/v0.20.5/nezha-agent_linux_amd64.zip

这里固定使用 v0.20.5,便于复现原文中的部署环境。

生产环境中,建议使用经过确认的版本,不要在没有测试的情况下随意切换版本或启用自动更新。

3. 解压并检查文件

unzip nezha-agent_linux_amd64.zip

检查解压后的文件:

ls -lh ./nezha-agent
file ./nezha-agent

确认文件存在且架构正确后,将程序安装到统一的可执行文件目录:

install -m 755 ./nezha-agent /usr/local/bin/nezha-agent

验证安装结果:

/usr/local/bin/nezha-agent --help

如果能够正常显示帮助信息,说明程序基本可以运行。

三、配置 Agent 连接参数

哪吒监控 Agent 需要知道服务端地址、端口和认证密钥,才能将监控数据上报至面板。

本文使用以下示例变量:

参数说明
SERVER_ADDR未经过 CDN 代理的面板服务端地址和端口
SECRET服务端对应的 Agent 连接密钥

请将示例值替换为你自己的真实配置。

1. 确认服务端连接地址

例如:

monitor.example.com:8008

这里仅为格式示例。实际地址应使用服务端 Agent 监听的端口,并确认该端口可从客户端服务器直接访问。

如果面板域名使用 Cloudflare 等 CDN 或代理服务,需要根据哪吒 V0 的网络配置,确认 Agent 连接地址是否支持相应代理方式。原文采用的是未接入 CDN 的面板服务器地址。

2. 准备服务端密钥

请从现有哪吒监控 V0 服务端获取对应的 Agent 密钥。

密钥属于敏感配置,不要将真实密钥发布在博客、公开代码仓库或截图中。

四、使用 systemd 实现后台运行和开机自启

相比直接使用 nohup,使用 systemd 更适合长期运行的服务器程序,因为它可以统一管理服务状态、开机启动、日志和异常退出后的重启行为。

1. 创建环境配置文件

先创建配置文件:

vim /etc/default/nezha-agent

填写以下内容,并替换成实际的服务端地址和密钥:

SERVER_ADDR="monitor.example.com:8008"
SECRET="替换为服务端的真实密钥"

保存后限制文件权限:

chmod 600 /etc/default/nezha-agent

这样可以避免普通用户直接读取配置文件中的密钥。不过,服务启动参数仍可能在进程信息中暴露密钥,因此应限制服务器上的普通账户权限,并避免在不可信环境中共享进程信息。

2. 创建 systemd 服务

执行:

vim /etc/systemd/system/nezha-agent.service

写入以下内容:

[Unit]
Description=Nezha Agent V0
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
EnvironmentFile=/etc/default/nezha-agent
ExecStart=/usr/local/bin/nezha-agent --disable-auto-update --disable-command-execute -s ${SERVER_ADDR} -p ${SECRET}
Restart=on-failure
RestartSec=5
User=root
WorkingDirectory=/usr/local/bin

[Install]
WantedBy=multi-user.target

参数说明:

  • --disable-auto-update:禁用 Agent 自动更新,便于固定版本并控制升级时机。
  • --disable-command-execute:禁用通过面板执行命令的功能,减少远程命令执行带来的风险。
  • -s:指定服务端连接地址和端口。
  • -p:指定服务端密钥。
  • Restart=on-failure:程序异常退出时自动尝试重启。
  • RestartSec=5:重启前等待 5 秒。
  • User=root:以 root 身份运行 Agent。

关于 root 权限: 本文沿用原始部署方式,以保证旧版本及相关功能的兼容性。但如果不需要特权操作,建议评估使用专用低权限用户运行。即使禁用了面板命令执行功能,也不应将 Agent 视为完全可信的程序。

另外,EnvironmentFile 的变量展开方式依赖 systemd 的支持情况。如果服务启动失败,应优先检查日志及当前 systemd 版本,并确认 ExecStart 中的变量能够正确解析。

3. 启动并设置开机自启

执行:

systemctl daemon-reload
systemctl enable --now nezha-agent

这两条命令分别用于重新加载 systemd 服务配置,以及立即启动 Agent 并设置开机自启。

五、检查 Agent 是否正常运行

1. 查看服务状态

systemctl status nezha-agent --no-pager

如果显示:

Active: active (running)

说明服务进程当前正在运行。

但进程处于运行状态并不代表已经成功连接服务端,还需要结合日志和面板状态进行确认。

2. 查看运行日志

journalctl -u nezha-agent -n 100 --no-pager

实时查看日志:

journalctl -u nezha-agent -f

如果服务没有正常运行,可以重点检查:

  • 服务端地址和端口是否正确。
  • 服务端密钥是否填写正确。
  • 网络、防火墙和安全组是否允许连接。
  • 服务端是否正在运行并监听对应端口。
  • Agent 版本和服务端版本是否兼容。

3. 确认开机自启状态

执行:

systemctl is-enabled nezha-agent

如果返回:

enabled

说明已设置开机自启。

最后,进入哪吒监控面板,确认新服务器已经上线,并且 CPU、内存、磁盘等监控数据能够正常更新。

六、常用服务管理命令

日常运维时,可以使用以下命令管理 Agent。

查看状态:

systemctl status nezha-agent

启动服务:

systemctl start nezha-agent

停止服务:

systemctl stop nezha-agent

重启服务:

systemctl restart nezha-agent

取消开机自启,但保留服务文件:

systemctl disable nezha-agent

取消开机自启并立即停止:

systemctl disable --now nezha-agent

修改服务配置后,需要重新加载:

systemctl daemon-reload
systemctl restart nezha-agent

七、卸载 Agent

如果不再需要监控这台服务器,可以按以下步骤卸载。

1. 停止服务并取消开机自启

systemctl disable --now nezha-agent

2. 删除 systemd 服务文件

rm -f /etc/systemd/system/nezha-agent.service
systemctl daemon-reload
systemctl reset-failed nezha-agent

3. 删除程序和配置

rm -f /usr/local/bin/nezha-agent
rm -f /etc/default/nezha-agent

注意:以上操作会删除本机的 Agent 程序及连接配置,不会自动删除服务端面板中已经存在的服务器记录。若希望清理面板中的记录,还需要在服务端单独处理。

八、补充:使用 nohup 临时运行

如果只是临时测试,也可以不创建 systemd 服务,而是使用 nohup 在后台运行:

nohup /usr/local/bin/nezha-agent \
  --disable-auto-update \
  --disable-command-execute \
  -s "monitor.example.com:8008" \
  -p "替换为服务端的真实密钥" \
  >/dev/null 2>&1 &

这种方式的不足是:

  • 不会自动配置开机启动。
  • 进程异常退出后不会自动重启。
  • 缺少 systemd 统一管理的服务状态与日志机制。

因此,对于需要长期运行的 VPS,更推荐使用 systemd 管理 Agent。

九、总结

手动部署哪吒监控 V0 Agent v0.20.5 的核心流程如下:

  1. 下载并解压对应架构的 Agent 程序。
  2. 将程序安装到固定目录。
  3. 配置服务端连接地址和密钥。
  4. 创建 systemd 服务并设置开机自启。
  5. 检查服务状态、运行日志和面板在线状态。

对于长期运行的服务器,建议固定经过验证的版本、关闭不需要的远程命令执行功能,并在每次升级前做好测试和回滚准备。


完结,撒花。