
如何用 audit_webhook 和 auditlog-echo 在控制台实时查看 MinIO 审计日志【免费下载链接】minioMinIO is a high-performance, S3 compatible object store, open sourced under GNU AGPLv3 license.项目地址: https://gitcode.com/GitHub_Trending/mi/minio想要实时查看打到 MinIO 服务器上的每一次 API 请求——操作的桶和对象、返回状态、发起请求的 accessKey、耗时等——MinIO 官方仓库提供了可直接组合的两份材料MinIO 侧的audit_webhook审计目标把审计日志以 JSON 推送到任意 HTTP 端点以及仓库自带的 auditlog-echo.go 脚本一个把收到的审计日志打印到控制台的简易 HTTP 服务。docs/auditlog/auditlog-echo.md 给出了这条最短路径启动 echo 工具 → 把audit_webhook指向它 → 对 MinIO 发任意请求审计日志就会实时打印在工具的控制台上。开始前需要准备一个已启动的 MinIO 服务器且mc客户端已完成配置两份文档均假设mcis already configured命令中的myminio是示例别名替换成你自己的别名本机安装 Go用于go run运行 echo 脚本。auditlog-echo 是如何工作的auditlog-echo.go 是一个单文件 Go 程序只依赖标准库它注册了/路径的 HTTP 处理器对每个进来的请求依次做三件事——打印 请求方法 请求路径用json.Indent将请求体缩进格式化后打印到日志返回 HTTP 200。监听端口默认 8080可用-port参数修改。MinIO 侧的audit_webhook属于 Logging Quickstart 中“Audit Targets”的 HTTP 目标把审计日志以 JSON 格式发往通用 HTTP 端点默认处于关闭状态。两者接起来后MinIO 把每条审计日志推给 auditlog-echo后者负责展示。第一步启动 auditlog-echo 监听在 MinIO 仓库根目录运行go run docs/auditlog/auditlog-echo.go如需换端口加-port参数go run docs/auditlog/auditlog-echo.go -port 9090启动成功后控制台会打印Listening on :8080端口号与实际生效值一致此后保持该终端运行它就是一个只读展示端。第二步为 MinIO 配置 audit_webhook先看当前配置启用前enableoffmc admin config get myminio/ audit_webhook audit_webhook:name1 enableoff endpoint auth_token client_cert client_key启用并把 endpoint 指向本地 echo 工具若第一步换了端口endpoint 要同步修改mc admin config set myminio audit_webhook enableon endpointhttp://localhost:8080按 Logging 文档 的要求修改这类目标配置后需要重启服务使配置生效mc admin service restart myminio两点说明需要多个审计目标时可用命名形式audit_webhook:目标名逐项配置例如audit_webhook:name1 auth_token endpointhttp://endpoint:port/path其中 endpoint 需按你的实际地址替换该目标还支持auth_token、client_cert、client_key等字段当前本地演示场景用不到保持默认即可。第三步发起请求在控制台查看审计日志现在对 MinIO 发起任意请求即可文档原文Make any requests to MinIO。每产生一条审计日志auditlog-echo 的控制台就会先打印请求方法与路径再打印格式化后的完整 JSON 审计负载无需刷新或翻页。读懂审计日志里的字段Logging 文档 给出一条审计日志的文档示例以下为文档示例结果仅节选字段数值会随你的实际请求变化{ version: 1, deploymentid: 90e81272-45d9-4fe8-9c45-c9a7322bf4b5, time: 2024-05-09T07:38:10.449688982Z, trigger: incoming, api: { name: PutObject, bucket: testbucket, object: hosts, status: OK, statusCode: 200, rx: 401, tx: 0, timeToResponse: 13309747ns, timeToResponseInNS: 13309747 }, remotehost: 127.0.0.1, requestID: 17CDC1F4D7E69123, requestPath: /testbucket/hosts, requestHost: localhost:9000, accessKey: minioadmin }按文档给出的说明解读api本次调用的 API 名如PutObject、桶名、对象名、状态、字节量rx/tx与响应耗时timeToFirstByte与timeToResponse以纳秒为单位纠删码erasure coded部署下tags.objectLocation会额外给出该对象操作所在的 pool 编号、set 编号以及参与操作的 drive 列表完整日志还包含requestHeader、responseHeader、userAgent等请求/响应头信息文档示例中均有展示。可选用环境变量配置 audit_webhookLogging 文档 还提供环境变量方式它会覆盖 MinIO 服务器配置中的 endpoint 设置。设置这些变量后审计日志会自动启用并发送到 HTTP 目标export MINIO_AUDIT_WEBHOOK_ENABLE_target1on export MINIO_AUDIT_WEBHOOK_AUTH_TOKEN_target1token export MINIO_AUDIT_WEBHOOK_ENDPOINT_target1http://localhost:8080/minio/logs minio server /mnt/datatarget1是目标名后缀/mnt/data是文档示例中的数据存储目录按你的部署替换。此方式适合在启动 MinIO 前就固定好审计出口的场景若已用mc admin config set配置过两种方式冲突时环境变量优先。验证与边界配置是否生效mc admin config get myminio/ audit_webhook复查enableon与 endpoint 地址日志是否实时送达触发一次请求后echo 控制台应立即出现对应的行与 JSON这是文档给出的验证方式HTTP 审计目标默认关闭必须显式enableon或设置MINIO_AUDIT_WEBHOOK_ENABLE类变量才会发送日志MinIO 的 console 日志目标始终开启且不可关闭它与audit_webhook是相互独立的两个概念别混淆。如果你需要把审计日志接入 Kafka 而不是本地 HTTP 端点Logging 文档 的 “Kafka Target” 一节给出了audit_kafka的配置命令、参数表和对应的环境变量。【免费下载链接】minioMinIO is a high-performance, S3 compatible object store, open sourced under GNU AGPLv3 license.项目地址: https://gitcode.com/GitHub_Trending/mi/minio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考