
Wazuh 如何用 Docker Listener wodle 采集容器生命周期事件【免费下载链接】wazuhWazuh - The Open Source Security Platform. Unified XDR and SIEM protection for endpoints and cloud workloads.项目地址: https://gitcode.com/GitHub_Trending/wa/wazuh如果你的宿主机上运行着 Docker 容器希望把容器创建、启动、停止等生命周期事件纳入 Wazuh 的统一告警与分析流程可以使用 Wazuh 的 Docker Listener wodle。该模块由wazuh-modulesdManager 侧或wazuh-agentdAgent 侧加载连接到本机的 Docker daemon收集容器生命周期事件和元数据并把它们作为结构化事件转发给 Wazuh 的分析引擎。官方文档见 Docker Listener。准备条件运行该模块的宿主机上必须装有 Docker且 Docker 服务处于运行状态。模块通过 Docker daemon socket 连接本地 Docker 守护进程。Python 3 环境已安装docker库。DockerListener.py 启动时若导入失败会在标准错误输出中提示pip3 install docker并退出退出码 1。该 wodle 不支持 Windows脚本检测到sys.platform win32时会直接退出对应的 C 模块代码也以#ifndef WIN32包裹即只在 Linux 等类 Unix 环境生效。该模块的 C 实现会把 DockerListener.py 作为外部脚本执行脚本路径在 wm_docker.h 中定义为wodles/docker/DockerListener相对 Wazuh 安装根目录。在 wazuh.conf 中添加 docker-listener 配置块在 Wazuh 主配置文件Agent 侧为/var/ossec/etc/下的ossec.conf见 Agent 配置说明中加入如下配置块这是 Docker Listener 文档给出的示例wodle namedocker-listener disabledno/disabled attempts5/attempts run_on_startno/run_on_start interval60s/interval /wodle各配置项及其默认值文档表格与 wmodules-docker.c 的解析逻辑一致配置项默认值用途disabledno启用或禁用该 Docker listenerattempts5连接 Docker daemon / 运行 listener 的重试次数上限取值必须大于 0run_on_startno设为yes时模块启动后立即运行一次否则等待首个调度周期interval60s两次采集周期之间的时间支持s、m、h、d后缀保存配置并重启对应的 Wazuh 进程Manager 或 Agent使配置生效。模块的采集流程模块启动后按 wm_docker.c 与 DockerListener.py 实现的流程工作按interval进入调度循环run_on_start为yes时启动后立即执行。文档中对应描述为 On the first scheduled run (or immediately ifrun_on_startis set toyes)。Python 脚本通过docker.from_env()创建客户端并调用ping()检查 Docker 服务若服务未运行脚本每 5 秒重新检查一次直到连接成功。连接成功后脚本调用client.events()持续监听 Docker 事件把每个事件按1:Wazuh-Docker:消息头封装成如下 JSON经 Wazuh 的 Unix 队列 socket{Wazuh安装根目录}/queue/sockets/queue发送{integration: docker, docker: { ...原始 Docker 事件 JSON... }}C 侧模块按退出码处理脚本异常退出码 127 记为严重错误Cannot launch Docker integration. Please check the file其余非零退出码累计重试计数达到attempts上限后模块退出未达到时按文档描述在下次调度时间重试。脚本的标准错误输出会被模块按前缀分级写进 Wazuh 日志INFO前缀为信息级WARN前缀为警告级其余为错误级。需要注意文档与源码的一处细节差异docker.md 称连接失败时 retries up toattemptstimes (default 5) before giving up for that cycle而 wm_docker.c 中的逻辑是失败后在下一个调度时间重试累计达到attempts次后模块退出Maximum attempts reached to run the listener. Exiting...。配置时把attempts理解为允许的最大失败次数即可。验证采集是否生效Wazuh 模块日志位置见 Logging 模块文档Manager/var/wazuh-manager/logs/wazuh-manager.log或.jsonAgent/var/ossec/logs/ossec.log或.json在日志中按日志标签docker-listener检查以下条目日志文本来自模块源码Module docker-listener started.模块已启动。Starting to listening Docker events.一个采集周期开始。Docker service was started.脚本已成功连上 Docker 服务并开始监听由脚本INFO输出转入日志。容器事件本身经队列进入分析引擎在 Wazuh 侧以integration: docker字段的结构化事件呈现。失败时的排查点日志出现Cannot launch Docker integration. Please check the file ...脚本无法启动检查wodles/docker/DockerListener文件是否缺失或不可执行。日志出现Docker service is not running./Reconnecting...本机 Docker 服务未运行脚本会以 5 秒间隔持续重试直到 Docker 恢复。日志出现Wazuh must be running.脚本连不上 Wazuh 队列 socketerrno 111说明 Wazuh 主进程未运行脚本以退出码 11 结束。日志出现WARNING: Event size exceeds the maximum allowed limit of ...单个事件超过允许的最大字节数会被记录为警告。日志出现This wodle does not work on Windows.运行平台为 Windows该 wodle 仅支持类 Unix 系统。【免费下载链接】wazuhWazuh - The Open Source Security Platform. Unified XDR and SIEM protection for endpoints and cloud workloads.项目地址: https://gitcode.com/GitHub_Trending/wa/wazuh创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考