Systemd 服务
Beszel 提供 systemd 服务的基本概览,显示其状态、CPU 使用率、内存消耗和其他指标。这提供了对系统服务健康状况和资源使用的可见性。
显示内容
代理收集至少运行过一次的 systemd 服务的数据(包括失败或退出的服务),包括:
- 服务状态(活动、不活动、失败等)
- CPU 和内存使用率
- 重启计数
- 单元文件状态和描述
- 生命周期(变为活动、变为不活动等)
说明:
- 峰值内存使用率涵盖服务的整个生命周期(如果 systemd 提供)。否则,它是监控期间的最大内存使用率。
- 服务在首次连接时将显示 0% CPU 使用率。这是正常行为 - CPU 使用率将在下一次更新周期正确填充。
二进制代理
当以二进制方式运行代理时,通常不需要额外的 systemd 监控配置。代理以足够的权限运行来访问 systemd 服务信息。
如果服务没有出现在系统页面上,请检查代理日志中的权限相关错误。
Docker 代理
挂载系统 D-Bus 套接字以允许代理与 systemd 通信:
yaml
services:
beszel-agent:
volumes:
- /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket:ro如果日志显示 AppArmor 错误,请添加以下安全选项:
yaml
services:
beszel-agent:
security_opt:
- apparmor:unconfined如果服务仍然没有出现,请尝试同时挂载 systemd 私有套接字:
yaml
services:
beszel-agent:
volumes:
- /var/run/systemd/private:/var/run/systemd/private:ro作为最后的手段,您可以使用特权访问运行容器。这对于测试很有用,但不建议用于生产环境。
yaml
services:
beszel-agent:
privileged: true故障排除
服务未出现
检查代理日志以查找权限或连接错误
验证 systemd 可访问性:
bashdbus-send --system --dest=org.freedesktop.systemd1 --type=method_call --print-reply /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager.ListUnits检查 systemd 版本兼容性(需要 systemd 243+ 才能获得
ListUnitsByPatterns方法支持):bashsystemctl --version验证代理权限以访问 systemd 服务
常见错误
常见错误消息和解决方案:
An AppArmor policy prevents this sender from sending this message to this recipient
将以下内容添加到您的 docker-compose.yml:
yaml
services:
beszel-agent:
security_opt:
- apparmor:unconfinedUnknown method 'ListUnitsByPatterns'
systemd < 243 不支持此方法。升级到 systemd 243 或更高版本。
兼容性
Systemd 版本:需要 systemd 243+ 才能获得 ListUnitsByPatterns 方法支持