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文件,添加一行:
保存后重启auditd服务:-w /usr/bin/docker -p x -k docker-commandssudo systemctl restart auditd - 查看监控日志:
日志里会清晰记录执行docker命令的用户、时间、完整命令内容。你可以写个Shell/Python脚本,定期扫描这个日志或者实时监听,当匹配到ausearch -k docker-commandsexec、cp这类关键词时,通过邮件、企业微信机器人等方式发送通知。
方案二:解析Docker守护进程日志
Docker daemon本身会记录所有API操作日志,你可以直接解析这些日志来提取关键操作:
- 查看Docker日志的方式有两种:
- 直接查看日志文件:
tail -f /var/log/docker.log - 通过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
相关产品推荐
相关产品推荐

