欢迎来到即将发布的 MinIO 文档版本! 此页面上的内容正在积极开发中 可能随时更改。 如果找不到您要找的内容,请查看我们的 历史文档。 感谢您的耐心等待。 我们期待您贡献自己强大的力量,帮助更多的中国技术开发者![翻译]

日志记录

MinIO 发布所有 minio server 操作到系统控制台。 读取这些日志取决于服务器进程的管理方式。 例如,如果服务器是通过 “systemd” 脚本管理的, 您可以使用 “journalctl -u SERVICENAME.service” 读取日志。 代替 SERVICENAME 带有 MinIO 服务的名称。

MinIO 还支持将服务器日志和审计日志发布到 HTTP webhook。

  • Server logs 包含相同的 minio server 操作记录到系统控制台。 服务器日志 支持对操作进行一般监控和故障排除。

  • Audit logs 更细粒度 MinIO 部署上的每个操作的描述。 审计日志 支持需要详细跟踪的安全标准和法规 的操作。

MinIO 将日志作为 JSON 文档发布为每个配置的 “PUT” 请求 端点。 端点服务器负责处理每个 JSON 文档。 MinIO 需要对每个 webhook 端点进行显式配置,并且 not 默认情况下将日志发布到 webhook。

将服务器日志发布到 HTTP Webhook

您可以配置 MinIO 发布到的新 HTTP webhook 端点 minio server 使用环境变量 or 通过设置记录 运行时配置设置。

MinIO 支持指定 minio server 记录 HTTP webhook 端点 和相关的配置设置使用 environment variables.

以下示例代码设置了 all 相关的环境变量 配置日志 HTTP webhook 端点。 最小 required 变量 是:

set MINIO_LOGGER_WEBHOOK_ENABLE_<IDENTIFIER>="on"
set MINIO_LOGGER_WEBHOOK_ENDPOINT_<IDENTIFIER>="https://webhook-1.example.net"
set MINIO_LOGGER_WEBHOOK_AUTH_TOKEN_<IDENTIFIER>="TOKEN"
  • <IDENTIFIER> 替换为唯一的描述性字符串 HTTP 网络钩子端点。 对所有环境使用相同的``<IDENTIFIER>`` 与新日志 HTTP webhook 相关的变量。

    如果指定的 <IDENTIFIER> 匹配现有的日志端点, 新设置 override 该端点的任何现有设置。 用 mc admin config get logger_webhook 查看当前配置的日志 HTTP webhook 端点。

  • 用 HTTP webhook 端点的 URL 替换 https://webhook-1.example.net

  • 用 JSON Web Token (JWT) 替换 TOKEN 以用于身份验证 到 webhook 端点。 省略不需要的端点验证。

重新启动 MinIO 服务器以应用新的配置设置。 你 必须指定相同的环境变量和设置 部署中的 all MinIO 服务器。

MinIO 支持在 MinIO 上添加或更新日志 HTTP webhook 端点 部署使用 mc admin config set 命令和 logger_webhook 配置键。 您必须重新启动 MinIO 部署以应用任何新的或更新的配置设置。

以下示例代码设置了与配置相关的 all 设置 一个日志 HTTP webhook 端点。 最小 required 设置是 logger_webhook endpoint:

mc admin config set ALIAS/ logger_webhook:IDENTIFIER \
   endpoint="https://webhook-1.example.net" \
   auth_token="TOKEN"
  • <IDENTIFIER> 替换为唯一的描述性字符串 HTTP webhook 端点。 对所有环境使用相同的 <IDENTIFIER> 与新日志 HTTP webhook 相关的变量。

    如果指定的``<IDENTIFIER>`` 匹配现有的日志端点, 新设置 override 该端点的任何现有设置。 用 mc admin config get logger_webhook 查看当前配置的日志 HTTP webhook 端点。

  • 用 HTTP webhook 端点的 URL 替换 https://webhook-1.example.net

  • 用 JSON Web Token (JWT) 替换 TOKEN 以用于身份验证 到 webhook 端点。 省略不需要的端点 验证。

将审计日志发布到 HTTP Webhook

您可以配置一个新的 HTTP webhook 端点,MinIO 将审计发布到该端点 使用环境变量 or 通过设置运行时配置来记录日志 设置:

MinIO 支持指定审计日志 HTTP webhook 端点和 相关的配置设置使用 environment variables.

以下示例代码设置了 all 相关的环境变量 配置审计日志 HTTP webhook 端点。 最低 required 变量是:

set MINIO_AUDIT_WEBHOOK_ENABLE_<IDENTIFIER>="on"
set MINIO_AUDIT_WEBHOOK_ENDPOINT_<IDENTIFIER>="https://webhook-1.example.net"
set MINIO_AUDIT_WEBHOOK_AUTH_TOKEN_<IDENTIFIER>="TOKEN"
set MINIO_AUDIT_WEBHOOK_CLIENT_CERT_<IDENTIFIER>="cert.pem"
set MINIO_AUDIT_WEBHOOK_CLIENT_KEY_<IDENTIFIER>="cert.key"
  • <IDENTIFIER> 替换为唯一的描述性字符串 HTTP 网络钩子端点。 对所有环境使用相同的``<IDENTIFIER>`` 与新审计日志 HTTP webhook 相关的变量。

    如果指定的 <IDENTIFIER> 匹配现有的日志端点, 新设置 override 该端点的任何现有设置。 用 mc admin config get audit_webhook 查看当前配置的审计日志 HTTP webhook 端点。

  • 用 HTTP webhook 端点的 URL 替换 https://webhook-1.example.net

  • 用 JSON Web Token (JWT) 替换 TOKEN 以用于身份验证 到 webhook 端点。 省略不需要的端点 验证。

  • 将 cert.pem 和 cert.key 替换为公钥和私钥 提供给 HTTP webhook 服务器的 x.509 TLS 证书。 省略不需要客户端提供 TLS 的端点 证书。

重新启动 MinIO 服务器以应用新的配置设置。 你 必须指定相同的环境变量和设置 部署中的 all MinIO 服务器。

MinIO 支持添加或更新审计日志 HTTP webhook 端点 MinIO 部署使用 mc admin config set 命令和 audit_webhook 配置键。 您必须重新启动 MinIO 部署以应用任何新的或更新的配置设置。

以下示例代码设置了与配置相关的 all 设置 审计日志 HTTP webhook 端点。 最小 required 设置是 audit_webhook endpoint:

mc admin config set ALIAS/ audit_webhook:IDENTIFIER \
   endpoint="https://webhook-1.example.net" \
   auth_token="TOKEN" \
   client_cert="cert.pem" \
   client_key="cert.key"
  • <IDENTIFIER> 替换为唯一的描述性字符串 HTTP 网络钩子端点。 对所有环境使用相同的 <IDENTIFIER> 与新审计日志 HTTP webhook 相关的变量

    如果指定的 <IDENTIFIER> 匹配现有的日志端点, 新设置 override 该端点的任何现有设置。 用 mc admin config get audit_webhook 查看当前配置的审计日志 HTTP webhook 端点。

  • 用 HTTP webhook 端点的 URL 替换 https://webhook-1.example.net

  • 用 JSON Web Token (JWT) 替换 TOKEN 以用于身份验证 到 webhook 端点。 省略不需要的端点验证。

  • 将 cert.pem 和 cert.key 替换为公钥和私钥 提供给 HTTP webhook 服务器的 x.509 TLS 证书。 省略不需要客户端提供 TLS 的端点 证书。

审计日志结构

MinIO 审计日志类似于以下 JSON 文档:

  • api.timeToFirstBiteapi.timeToResponse 字段表示

    以纳秒为单位。

  • For erasure coded setups tags.objectErasureMap 提供以下每个对象的详细信息:

    • The Server Pool 在哪个对象上 进行了操作。

    • The erasure set 在哪个对象上 进行了操作。

    • 参与擦除的擦除集中的磁盘列表对象操作。

{
   "version": "1",
   "deploymentid": "bc0e4d1e-bacc-42eb-91ad-2d7f3eacfa8d",
   "time": "2019-08-12T21:34:37.187817748Z",
   "api": {
      "name": "PutObject",
      "bucket": "testbucket",
      "object": "hosts",
      "status": "OK",
      "statusCode": 200,
      "timeToFirstByte": "366333ns",
      "timeToResponse": "16438202ns"
   },
   "remotehost": "127.0.0.1",
   "requestID": "15BA4A72C0C70AFC",
   "userAgent": "MinIO (linux; amd64) minio-go/v6.0.32 mc/2019-08-12T18:27:13Z",
   "requestHeader": {
      "Authorization": "AWS4-HMAC-SHA256 Credential=minio/20190812/us-east-1/s3/aws4_request,SignedHeaders=host;x-amz-content-sha256;x-amz-date;x-amz-decoded-content-length,Signature=d3f02a6aeddeb29b06e1773b6a8422112890981269f2463a26f307b60423177c",
      "Content-Length": "686",
      "Content-Type": "application/octet-stream",
      "User-Agent": "MinIO (linux; amd64) minio-go/v6.0.32 mc/2019-08-12T18:27:13Z",
      "X-Amz-Content-Sha256": "STREAMING-AWS4-HMAC-SHA256-PAYLOAD",
      "X-Amz-Date": "20190812T213437Z",
      "X-Amz-Decoded-Content-Length": "512"
   },
   "responseHeader": {
      "Accept-Ranges": "bytes",
      "Content-Length": "0",
      "Content-Security-Policy": "block-all-mixed-content",
      "ETag": "a414c889dc276457bd7175f974332cb0-1",
      "Server": "MinIO/DEVELOPMENT.2019-08-12T21-28-07Z",
      "Vary": "Origin",
      "X-Amz-Request-Id": "15BA4A72C0C70AFC",
      "X-Xss-Protection": "1; mode=block"
   },
   "tags": {
      "objectErasureMap": {
         "object": {
            "poolId": 1,
            "setId": 10,
            "disks": [
               "http://server01/mnt/pool1/disk01",
               "http://server02/mnt/pool1/disk02",
               "http://server03/mnt/pool1/disk03",
               "http://server04/mnt/pool1/disk04"
            ]
         }
      }
   }
}