You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04环境下Docker容器操作监控与通知方案咨询

Ubuntu 22.04环境下Docker容器操作监控与通知方案咨询

当然有办法实现Docker容器操作的监控与通知啦!针对你想追踪docker exec、docker cp这类操作,同时记录操作人并触发告警的需求,我给你整理了几个在Ubuntu 22.04上可行的方案,你可以根据实际场景选择:

方案一:利用系统Audit日志监控Docker命令

Ubuntu 22.04默认集成了auditd工具,它能从系统层面监控二进制文件的执行,可靠性很高,很难被绕过:

  • 首先确保auditd已安装:
    sudo apt update && sudo apt install auditd -y
    
  • 添加临时审计规则(重启后失效,用于测试):
    sudo auditctl -w /usr/bin/docker -p x -k docker-commands
    
  • 配置永久规则,编辑/etc/audit/rules.d/docker.rules文件,添加一行:
    -w /usr/bin/docker -p x -k docker-commands
    
    保存后重启auditd服务:sudo systemctl restart auditd
  • 查看监控日志:
    ausearch -k docker-commands
    
    日志里会清晰记录执行docker命令的用户、时间、完整命令内容。你可以写个Shell/Python脚本,定期扫描这个日志或者实时监听,当匹配到exec、cp这类关键词时,通过邮件、企业微信机器人等方式发送通知。

方案二:解析Docker守护进程日志

Docker daemon本身会记录所有API操作日志,你可以直接解析这些日志来提取关键操作:

  • 查看Docker日志的方式有两种:
    1. 直接查看日志文件:tail -f /var/log/docker.log
    2. 通过systemd查看:journalctl -u docker.service -f
  • 日志中会包含exec_create、copy这类操作的记录,你可以用grep、jq(如果日志是JSON格式的话)来过滤信息。比如:
    journalctl -u docker.service | grep "exec_create"
    
  • 同样,你可以编写一个实时监控脚本,当检测到目标操作时触发通知逻辑。不过要注意,Docker日志的格式可能会因配置不同而变化,需要先确认你的日志格式是否为JSON(可以在/etc/docker/daemon.json里配置"log-driver": "json-file")。

方案三:自定义脚本拦截Docker命令

这个方案适合轻量场景,通过给docker命令设置别名,让所有用户的docker操作先经过自定义脚本记录:

  • 创建监控脚本/usr/local/bin/docker-monitor,内容如下:
    #!/bin/bash
    # 记录操作信息到日志文件
    LOG_FILE="/var/log/docker-monitor.log"
    echo "$(date '+%Y-%m-%d %H:%M:%S') - 操作用户: $(whoami) - 执行命令: docker $*" >> "$LOG_FILE"
    
    # 执行真实的Docker命令
    /usr/bin/docker "$@"
    
    # 可选:触发通知,比如发送邮件
    # echo "Docker操作告警: 用户$(whoami)执行了 'docker $*'" | mail -s "Docker操作通知" your-alert-email@example.com
    
  • 给脚本添加执行权限:
    sudo chmod +x /usr/local/bin/docker-monitor
    
  • 设置全局别名,编辑/etc/profile.d/docker-monitor.sh文件,添加:
    alias docker='/usr/local/bin/docker-monitor'
    
  • 让别名生效:source /etc/profile.d/docker-monitor.sh
  • 注意:如果用户直接调用/usr/bin/docker,这个拦截就会失效,所以建议配合方案一的audit日志一起使用,双重保障。

一些额外建议

  • 通知方式可以根据你的需求选择:邮件、Slack机器人、企业微信/钉钉机器人都是不错的选择,只需要在脚本里调用对应的API即可。
  • 确保监控日志文件的权限安全,比如设置为只有root用户可读:sudo chmod 600 /var/log/docker-monitor.log,避免普通用户篡改日志。
  • 如果是生产环境,优先考虑方案一的audit日志,它是系统级别的监控,覆盖范围最广,也最可靠。

备注:内容来源于stack exchange,提问作者Ravi Teja RVN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 07:49:33