Skip to content

Agent 启动/上线问题自检流程

如果 Agent 启动后无法正常上线,可按照以下步骤逐步排查问题:


1. 检查网络连通性

使用以下命令检查本机是否能够连接到面板服务器的通讯端口:

bash
nc -v <域名/IP> <通讯端>
# 或者
telnet <域名/IP> <通讯端>

注意事项:

  • 如果本机与面板服务器之间无法通信:
    • 检查本地和面板服务器的入站/出站防火墙规则。
    • 可使用 https://port.ping.pe/ 提供的端口检查工具,确认端口是否对外开放。

2. 检查 SELinux 状态

如果网络检测正常,但 Agent 仍无法上线,请尝试关闭 SELinux:

关闭 SELinux 的操作:

  • 查看当前 SELinux 状态:
    bash
    sestatus
  • 临时关闭 SELinux(无需重启):
    bash
    sudo setenforce 0
  • 永久关闭 SELinux: 编辑 /etc/selinux/config 文件,将 SELINUX=enforcing 修改为:
    bash
    SELINUX=disabled
    然后重启系统。

如何关闭 SELinux?


3. 查看 Agent 运行日志

在配置文件中启用 debug 模式,使用以下命令查看 Agent 的运行状态和日志:

bash
systemctl status nezha-agent-*

检查日志中的错误信息,定位问题的具体原因。


4. 检查 gRPC 服务通信

验证 Agent 是否能够正常连接到 gRPC 服务:

使用以下命令检查 gRPC 服务路径:

bash
curl http://<你的IP或域>:<>/proto.NezhaService/ -H "Content-Type:application/grpc" -X POST -v

正常响应示例:

plain
< HTTP/2 200
< content-type: application/grpc
<
< grpc-message: unknown method  for service proto.NezhaService
< grpc-status: 12

关键信息:

  1. content-type 是否为 application/grpc
    • 如果不正确,表示无法正常连接到 gRPC 服务。
  2. 是否有 grpc-message 相关的报错信息
    • 正常情况下应出现 unknown method for service proto.NezhaService

若检查失败:

  • 检查反向代理配置和流量路径是否正确,确保 gRPC 请求能够成功到达面板服务器。