文档基于2025-10-10日社区最终版构建     
切换到英文版    进入演示系统    进入交流社区

MinIO Documentation

发布服务器或审计日志到外部服务

MinIO publishes allminio serveroperations to the system console. Reading these logs depends on how the server process is managed. For example, if the server is managed through asystemdscript, 你可以使用以下方式读取日志:journalctl -u SERVICENAME.service. 替换SERVICENAME使用 MinIO 服务的名称。

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

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

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

MinIO 以 JSON 文档格式发布日志作为PUT对每个已配置的端点发送请求。端点服务器负责处理每个JSON文档。 MinIO要求显式配置每个webhook端点且不默认将日志发布到 webhook。

发布服务器日志到HTTP Webhook

您可以配置一个新的HTTP webhook端点,MinIO将向该端点发布事件minio server使用环境变量的日志记录or通过设置 运行时配置设置。

MinIO 支持指定minio server记录 HTTP webhook 端点 及关联配置设置环境变量.

以下示例代码设置全部与配置日志 HTTP webhook 端点相关的环境变量。最低必需variables are:

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

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

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

  • 替换TOKEN对于需要身份验证的端点,请提供相应类型的身份验证令牌。 对于不需要身份验证的端点,请省略此项。

    为了支持多种令牌类型,MinIO 使用该值创建请求认证标头严格按照指定要求根据端点不同,您可能需要包含额外信息。

    例如:对于 Bearer token,在前面添加Bearer:

    export MINIO_LOGGER_WEBHOOK_AUTH_TOKEN_myendpoint="Bearer 1a2b3c4f5e"
    

    根据端点要求修改该值。 自定义身份验证格式可能类似于以下形式:

    export MINIO_LOGGER_WEBHOOK_AUTH_TOKEN_xyz="ServiceXYZ 1a2b3c4f5e"
    

    有关更多详细信息,请查阅所需服务的文档。

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

MinIO supports adding or updating log HTTP webhook endpoints on a MinIO deployment using themc admin config set命令和logger_webhook配置键。您必须重启 MinIO 部署才能应用任何新的或更新的配置设置。

以下示例代码设置全部与配置日志HTTP webhook端点相关的设置。最低必需设置是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>匹配现有日志端点的新设置覆盖该端点的任何现有设置。 使用mc admin config get logger_webhook查看当前配置的日志 HTTP Webhook 端点。

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

  • 替换TOKEN对于需要身份验证的端点,请提供相应类型的身份验证令牌。 对于不需要身份验证的端点,请省略此项。

    为了支持多种令牌类型,MinIO 使用该值创建请求认证标头严格按照指定要求根据端点不同,您可能需要包含额外信息。

    例如:对于 Bearer token,在前面添加Bearer:

     mc admin config set ALIAS/ logger_webhook    \
        endpoint="https://webhook-1.example.net"  \
        auth_token="Bearer 1a2b3c4f5e"
    

    根据端点要求修改该值。 自定义身份验证格式可能类似于以下形式:

    mc admin config set ALIAS/ logger_webhook    \
       endpoint="https://webhook-1.example.net"  \
       auth_token="ServiceXYZ 1a2b3c4f5e"
    

    有关更多详细信息,请查阅所需服务的文档。

发布审计日志到 HTTP Webhook

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

MinIO支持通过指定审计日志HTTP webhook端点及 相关配置设置来使用环境变量.

以下示例代码设置全部与配置审计日志 HTTP webhook 端点相关的环境变量。最低必需variables are:

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

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

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

  • 替换TOKEN对于需要身份验证的端点,请提供相应类型的身份验证令牌。 对于不需要身份验证的端点,请省略此项。

    为了支持多种令牌类型,MinIO 使用该值创建请求认证标头严格按照指定要求根据端点不同,您可能需要包含额外信息。

    例如:对于 Bearer token,在前面添加Bearer:

    export MINIO_AUDIT_WEBHOOK_AUTH_TOKEN_myendpoint="Bearer 1a2b3c4f5e"
    

    根据端点要求修改该值。 自定义身份验证格式可能类似于以下形式:

    export MINIO_AUDIT_WEBHOOK_AUTH_TOKEN_xyz="ServiceXYZ 1a2b3c4f5e"
    

    有关更多详细信息,请查阅所需服务的文档。

  • 替换cert.pemcert.key使用 x.509 TLS 证书的公钥和私钥向 HTTP webhook 服务器进行身份验证。对于不需要客户端提供 TLS 证书的端点,请省略此配置。

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

MinIO 支持通过使用以下方式在 MinIO 部署中添加或更新审计日志 HTTP webhook 端点mc admin config set命令和audit_webhook配置键。您必须重启 MinIO 部署才能使任何新的或更新的配置设置生效。

以下示例代码设置全部与配置审计日志 HTTP webhook 端点相关的设置。最低必需设置是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 webhook端点。使用相同的<IDENTIFIER>所有与新审计日志 HTTP webhook 相关的环境变量。

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

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

  • 替换TOKEN对于需要身份验证的端点,请提供相应类型的身份验证令牌。 对于不需要身份验证的端点,请省略此项。

    为了支持多种令牌类型,MinIO 使用该值创建请求认证标头严格按照指定要求根据端点不同,您可能需要包含额外信息。

    例如:对于 Bearer token,在前面添加Bearer:

     mc admin config set ALIAS/ audit_webhook     \
        endpoint="https://webhook-1.example.net"  \
        auth_token="Bearer 1a2b3c4f5e"
    

    根据端点要求修改该值。 自定义身份验证格式可能类似于以下形式:

    mc admin config set ALIAS/ audit_webhook     \
       endpoint="https://webhook-1.example.net"  \
       auth_token="ServiceXYZ 1a2b3c4f5e"
    

    有关更多详细信息,请查阅所需服务的文档。

  • 替换cert.pemcert.key使用 x.509 TLS 证书的公钥和私钥向 HTTP webhook 服务器进行身份验证。对于不需要客户端提供 TLS 证书的端点,请省略此配置。

审计日志结构

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

  • Theapi.timeToFirstByteapi.timeToResponse字段以纳秒为单位表示。

  • 对于纠删码设置 tags.objectErasureMap提供以下每个对象的详细信息:

    • The服务器池执行对象操作的对象。

    • The擦除集执行对象操作的对象。

    • 参与对象操作的擦除集中驱动器列表。

{
   "version": "1",
   "deploymentid": "8ca2b7ad-20cf-4d07-9efb-28b2f519f4a5",
   "time": "2024-02-29T19:39:25.744431903Z",
   "event": "",
   "trigger": "incoming",
   "api": {
      "name": "CompleteMultipartUpload",
      "bucket": "data",
      "object": "test-data.csv",
      "status": "OK",
      "statusCode": 200,
      "rx": 267,
      "tx": 358,
      "txHeaders": 387,
      "timeToFirstByte": "2096989ns",
      "timeToFirstByteInNS": "2096989",
      "timeToResponse": "2111986ns",
      "timeToResponseInNS": "2111986"
   },
   "remotehost": "127.0.0.1",
   "requestID": "17B86CB0ED88EBE9",
   "userAgent": "MinIO (linux; amd64) minio-go/v7.0.67 mc/RELEASE.2024-02-24T01-33-20Z",
   "requestPath": "/data/test-data.csv",
   "requestHost": "minio.example.net:9000",
   "requestQuery": {
      "uploadId": "OGNhMmI3YWQtMjBjZi00ZDA3LTllZmItMjhiMmY1MTlmNGE1LmU3MjNlNWI4LTNiYWYtNDYyNy1hNzI3LWMyNDE3NTVjMmMzNw"
   },
   "requestHeader": {
      "Accept-Encoding": "zstd,gzip",
      "Authorization": "AWS4-HMAC-SHA256 Credential=minioadmin/20240229/us-east-1/s3/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=ccb3acdc1763509a88a7e4a3d7fe431ef0ee5ca3f66ccb430d5a09326e87e893",
      "Content-Length": "267",
      "Content-Type": "application/octet-stream",
      "User-Agent": "MinIO (linux; amd64) minio-go/v7.0.67 mc/RELEASE.2024-02-24T01-33-20Z",
      "X-Amz-Content-Sha256": "d61969719ee94f43c4e87044229b7a13b54cab320131e9a77259ad0c9344f6d3",
      "X-Amz-Date": "20240229T193925Z"
   },
   "responseHeader": {
      "Accept-Ranges": "bytes",
      "Content-Length": "358",
      "Content-Type": "application/xml",
      "ETag": "1d9fdc88af5e74f5eac0a3dd750ce58e-2",
      "Server": "MinIO",
      "Strict-Transport-Security": "max-age=31536000; includeSubDomains",
      "Vary": "Origin,Accept-Encoding",
      "X-Amz-Id-2": "dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8",
      "X-Amz-Request-Id": "17B86CB0ED88EBE9",
      "X-Content-Type-Options": "nosniff",
      "X-Xss-Protection": "1; mode=block"
   },
   "tags": {
      "objectLocation": {
            "name": "Mousepad Template-v03final.jpg",
            "poolId": 1,
            "setId": 1,
            "disks": [
               "/mnt/drive-1",
               "/mnt/drive-2",
               "/mnt/drive-3",
               "/mnt/drive-4"
            ]
      }
   },
   "accessKey": "minioadmin"
}