配置参考
服务端:/etc/fleetd/server.yaml
listen: ["127.0.0.1:8480"] # 监听地址
database: postgres://fleetd:pass@127.0.0.1:5432/fleetd
key_file: /etc/fleetd/server.key # 由 `fleetd-server keygen` 生成
trust_loopback_proxy: true # 本机的反向代理会设置 X-Forwarded-For / -Proto
release_key: <发布公钥> # 来自 `fleetd-release keygen`
internal_agent_url: ws://10.0.0.1:8480/agent/ws # 可选,内网接入地址
language: zh # en 或 zh,告警、邮件和接口错误提示的语言
smtp:
host: smtp.example.com # 留空则不发邮件
port: 587
username: alerts@example.com
password: change-me
from: alerts@example.com
to: [you@example.com]
alerts:
offline: 40s
cpu_percent: 90
mem_percent: 90
sustain: 5m
disk_percent: 90
inode_percent: 90
wg_handshake: 5m # 0 关闭
| 配置项 | 默认值 | 说明 |
|---|---|---|
listen | ["127.0.0.1:8480"] | 不要监听公网地址,用反向代理 |
database | — | 必填,启动时自动建表 |
key_file | /etc/fleetd/server.key | 客户端会固定对应的公钥 |
trust_loopback_proxy | false | 只信任来自 127.0.0.1 / ::1 的转发头 |
release_key | — | 一键安装和客户端更新需要;用其他密钥签名的上传会被拒绝 |
internal_agent_url | — | 安装命令里会多一个「走内网」选项 |
language | en | en 或 zh |
时长使用 Go 的写法:40s、5m、1h30m。
客户端:/etc/fleetd/agent.yaml
由安装脚本生成;改完后重启客户端生效。
server_url: wss://fleetd.example.com/agent/ws
server_key: <服务端公钥> # 固定:连到其他服务端会直接拒绝
release_key: <发布公钥> # 留空则不接受远程更新
permission: full # monitor | allowlist | full
trusted_signers:
- <管理员签名公钥>
allowlist: # 配合 permission: allowlist 使用
restart-nginx: [systemctl, restart, nginx]
key_file: /etc/fleetd/agent.key # 首次启动时生成
state_dir: /var/lib/fleetd # 防重放记录;OpenWrt 上是 /etc/fleetd
命令行
fleetd-server
fleetd-server [-config /etc/fleetd/server.yaml] <命令>
serve 运行服务端(默认)
keygen 没有密钥时生成服务端密钥,并输出公钥
admin-add [-totp] <用户> 创建管理员,或重设密码;-totp 同时开启两步验证
version
对已有用户执行 admin-add 会重设密码(加 -totp 时连两步验证密钥一起重设),并让这个用户的所有会话失效。
fleetd-agent
fleetd-agent [-config /etc/fleetd/agent.yaml] [run|fingerprint|version]
fleetd-release
fleetd-release keygen [-key release.key]
fleetd-release pubkey [-key release.key]
fleetd-release sign [-key release.key] -version X [-arch amd64] [-o out] <程序>
文件位置
| 路径 | 内容 |
|---|---|
/usr/local/bin/fleetd-server | 服务端程序 |
/etc/fleetd/server.yaml、server.key | 服务端配置和密钥(权限 640,root:fleetd) |
/usr/local/bin/fleetd-agent | 客户端程序(OpenWrt 上在 /usr/bin);.old 是上一个版本 |
/etc/fleetd/agent.yaml、agent.key | 客户端配置和密钥(权限 600) |
/var/lib/fleetd/seen.json | 已执行过的命令 ID(OpenWrt 上在 /etc/fleetd) |