最近想把哪吒监控换成komari,目前装好komari还没卸载哪吒,哪吒就爆出安全漏洞。漏洞可以让攻击者通过控制台不经鉴权获取配置文件和数据库文件进而得到控制台和小鸡完整权限,再通过webssh登录agent机器种下木马.
好在我更新docker镜像比较勤快没有中招, 从nginx日志里没看到对配置文件和数据库文件的请求, 监控资源参数也正常。我是把家里的NAS挂上了探针, 如果真的被攻击了那真是一场灾难了.
在卸载哪吒后,又想部署komari又想要安全, 所以我准备把komari-agent部署到docker容器里, 我没在网上搜到komari-agent的docker部署教程, 就把gpt指导我的最终docker-compose分享给大家.
关于参数, 虽然komari-agent镜像支持ENV配置, 但实际只配置env后启动会报缺少命令, 最后使用的command的方式来配置参数。使用command也有个优点, 复制的一键安装agent命令把后边的参数复制过来就能用,记得把自己其他的参数加上。
我在一台服务器上同时启动了宿主机部署的agent和docker部署的agent,对比数据基本相同,数据应该是准确的。也欢迎大家指正有误的地方,一起来交流。
services:
komari-agent:
image: ghcr.io/komari-monitor/komari-agent:1.2.13
container_name: komari-agent
restart: unless-stopped
network_mode: host # 使用宿主机网络命名空间,便于监控宿主机网卡/流量
pid: host # 使用宿主机 PID 命名空间,便于读取宿主机进程信息
# user: "65532:65532" # 非 root 用户运行更安全,但在当前环境下会导致 ICMP ping 权限不足
read_only: true # 容器根文件系统只读
cap_drop:
- ALL # 移除所有 Linux capabilities
cap_add:
- NET_RAW # 只加回 ICMP ping 所需的 raw socket 权限
security_opt:
- no-new-privileges:true # 禁止进程获得新的额外权限
pids_limit: 128 # 限制进程/线程数量
mem_limit: 128m # 限制内存
cpus: 0.25 # 限制 CPU
volumes:
- /proc:/host/proc:ro # 只读暴露宿主机 proc 信息
- /etc/os-release:/etc/os-release:ro # 让 Agent 读取宿主机系统版本
environment:
TZ: Asia/Shanghai
HOST_PROC: /host/proc # 指定 Agent 使用宿主机 /proc
command:
- -e
- https://komari.example.com # komari地址
- -t
- abc123456 # token
- --disable-web-ssh # 关闭web ssh登录
- --disable-auto-update # 关闭自动更新
komari-agent容器支持的env配置如下
https://github.com/komari-monitor/komari-agent/blob/main/cmd/flags/flag.go