Agent 部署
EasyShell Agent 是一个轻量级 Go 二进制文件,运行在每台受管主机上。它负责脚本执行、指标收集和实时日志流传输。
- 单一二进制文件 —— 无运行时依赖,部署简单
- 跨平台 —— Linux(amd64、arm64)、macOS
- 低开销 —— 通常内存占用低于 20 MB
- 自动注册 —— Agent 首次启动时自动向 Server 注册
- 自愈能力 —— 网络中断时自动重连
自动部署(推荐)
Section titled “自动部署(推荐)”通过 EasyShell Web 界面部署 Agent 是最简单的方式:
- 进入 主机管理 → 添加主机
- 选择 自动部署
- 输入目标主机的 SSH 凭据(IP、端口、用户名、密码/密钥)
- Server 将自动 SSH 到目标主机,上传对应的二进制文件(amd64/arm64),并启动 Agent
从 Docker 镜像提取
Section titled “从 Docker 镜像提取”Agent 二进制文件已内置在 Server Docker 镜像中,可以直接提取:
# 提取 amd64 二进制文件docker cp $(docker create --rm laolupaojiao/easyshell-server:latest):/opt/easyshell/agent-binaries/easyshell-agent-linux-amd64 ./easyshell-agentchmod +x ./easyshell-agent预编译二进制文件(GitHub Releases)
Section titled “预编译二进制文件(GitHub Releases)”cd easyshell-agentGOOS=linux GOARCH=amd64 go build -o easyshell-agent-linux-amd64 ./cmd/agent需要 Go 1.24+。
Agent 通过环境变量或配置文件进行配置:
| 变量 | 默认值 | 说明 |
|---|---|---|
EASYSHELL_SERVER_URL | http://localhost:18080 | Server API 地址 |
EASYSHELL_AGENT_NAME | 主机名 | Agent 显示名称 |
EASYSHELL_HEARTBEAT_INTERVAL | 30s | 心跳频率 |
EASYSHELL_METRICS_INTERVAL | 60s | 指标上报频率 |
作为服务运行
Section titled “作为服务运行”为 Agent 创建 systemd 服务:
[Unit]Description=EasyShell AgentAfter=network-online.targetWants=network-online.target
[Service]Type=simpleExecStart=/usr/local/bin/easyshell-agentRestart=alwaysRestartSec=5Environment=EASYSHELL_SERVER_URL=https://easyshell.example.com
[Install]WantedBy=multi-user.targetsudo systemctl daemon-reloadsudo systemctl enable easyshell-agentsudo systemctl start easyshell-agentAgent 使用两种协议与 Server 通信:
- HTTP —— 注册、心跳(30 秒间隔)、指标上报(60 秒间隔)、配置轮询
- WebSocket —— 按需建立连接,用于脚本执行期间的实时日志流和交互式终端会话
验证 Agent 状态
Section titled “验证 Agent 状态”启动 Agent 后,在 EasyShell Web 界面中验证:
- 导航到 主机管理
- 新 Agent 应显示为绿色状态指示
- 点击主机查看实时指标
如果 Agent 未出现,检查 Agent 日志:
journalctl -u easyshell-agent -f