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
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
关键信息:
content-type
是否为application/grpc
:- 如果不正确,表示无法正常连接到 gRPC 服务。
- 是否有
grpc-message
相关的报错信息:- 正常情况下应出现
unknown method for service proto.NezhaService
。
- 正常情况下应出现
若检查失败:
- 检查反向代理配置和流量路径是否正确,确保 gRPC 请求能够成功到达面板服务器。