将服务器或审计日志发布到外部服务
MinIO 将所有 minio server
操作发布到系统控制台。读取这些日志取决于服务器进程的管理方式。例如,如果服务器通过 systemd
脚本管理,则可以使用 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
日志发布到该端点。
MinIO 支持使用 环境变量 指定 minio server
日志 HTTP Webhook 端点和相关的配置设置。
以下示例代码设置了与配置日志 HTTP Webhook 端点相关的所有环境变量。最小 *必需* 变量为
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 Webhook 端点的唯一描述性字符串。对与新日志 HTTP Webhook 相关的所有环境变量使用相同的<IDENTIFIER>
。如果指定的
<IDENTIFIER>
与现有日志端点匹配,则新设置将 *覆盖* 该端点的任何现有设置。使用mc admin config get logger_webhook
检查当前配置的日志 HTTP Webhook 端点。将
https://webhook-1.example.net
替换为 HTTP Webhook 端点的 URL。将
TOKEN
替换为端点所需类型的身份验证令牌。对于不需要身份验证的端点,请省略。为了允许各种令牌类型,MinIO 将 *完全按照指定* 的值创建请求身份验证标头。根据端点的不同,您可能需要包含其他信息。
例如:对于 Bearer 令牌,请在前面加上
Bearer
set MINIO_LOGGER_WEBHOOK_AUTH_TOKEN_myendpoint="Bearer 1a2b3c4f5e"
根据端点要求修改值。自定义身份验证格式可能类似于以下内容
set MINIO_LOGGER_WEBHOOK_AUTH_TOKEN_xyz="ServiceXYZ 1a2b3c4f5e"
请参阅所需服务的文档以获取更多详细信息。
重新启动 MinIO 服务器以应用新的配置设置。您必须在部署中的 *所有* MinIO 服务器上指定相同的环境变量和设置。
MinIO 支持使用 mc admin config set
命令和 logger_webhook
配置键在 MinIO 部署上添加或更新日志 HTTP 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 端点的唯一描述性字符串。对与新日志 HTTP Webhook 相关的所有环境变量使用相同的<IDENTIFIER>
。如果指定的
<IDENTIFIER>
与现有日志端点匹配,则新设置将 *覆盖* 该端点的任何现有设置。使用mc admin config get logger_webhook
检查当前配置的日志 HTTP Webhook 端点。将
https://webhook-1.example.net
替换为 HTTP Webhook 端点的 URL。将
TOKEN
替换为端点所需类型的身份验证令牌。对于不需要身份验证的端点,请省略。为了允许各种令牌类型,MinIO 将 *完全按照指定* 的值创建请求身份验证标头。根据端点的不同,您可能需要包含其他信息。
例如:对于 Bearer 令牌,请在前面加上
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 将使用环境变量 *或* 通过设置运行时配置设置将审计日志发布到该端点。
MinIO 支持使用 环境变量 指定审计日志 HTTP Webhook 端点和关联的配置设置。
以下示例代码设置了与配置审计日志 HTTP Webhook 端点相关的所有环境变量。最小 *必需* 变量是
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 Webhook 端点的唯一描述性字符串。对与新的审计日志 HTTP Webhook 相关的所有环境变量使用相同的<IDENTIFIER>
。如果指定的
<IDENTIFIER>
与现有日志端点匹配,则新设置将 *覆盖* 该端点的任何现有设置。使用mc admin config get audit_webhook
查看当前配置的审计日志 HTTP Webhook 端点。将
https://webhook-1.example.net
替换为 HTTP Webhook 端点的 URL。将
TOKEN
替换为端点所需类型的身份验证令牌。对于不需要身份验证的端点,请省略。为了允许各种令牌类型,MinIO 将 *完全按照指定* 的值创建请求身份验证标头。根据端点的不同,您可能需要包含其他信息。
例如:对于 Bearer 令牌,请在前面加上
Bearer
set MINIO_AUDIT_WEBHOOK_AUTH_TOKEN_myendpoint="Bearer 1a2b3c4f5e"
根据端点要求修改值。自定义身份验证格式可能类似于以下内容
set MINIO_AUDIT_WEBHOOK_AUTH_TOKEN_xyz="ServiceXYZ 1a2b3c4f5e"
请参阅所需服务的文档以获取更多详细信息。
将
cert.pem
和cert.key
替换为要呈现给 HTTP Webhook 服务器的 x.509 TLS 证书的公钥和私钥。对于不需要客户端呈现 TLS 证书的端点,请省略。
重新启动 MinIO 服务器以应用新的配置设置。您必须在部署中的 *所有* MinIO 服务器上指定相同的环境变量和设置。
MinIO 支持使用 mc admin config set
命令和 audit_webhook
配置键在 MinIO 部署上添加或更新审计日志 HTTP 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 端点的唯一描述性字符串。对与新的审计日志 HTTP Webhook 相关的所有环境变量使用相同的<IDENTIFIER>
。如果指定的
<IDENTIFIER>
与现有日志端点匹配,则新设置将 *覆盖* 该端点的任何现有设置。使用mc admin config get audit_webhook
查看当前配置的审计日志 HTTP Webhook 端点。将
https://webhook-1.example.net
替换为 HTTP Webhook 端点的 URL。将
TOKEN
替换为端点所需类型的身份验证令牌。对于不需要身份验证的端点,请省略。为了允许各种令牌类型,MinIO 将 *完全按照指定* 的值创建请求身份验证标头。根据端点的不同,您可能需要包含其他信息。
例如:对于 Bearer 令牌,请在前面加上
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.pem
和cert.key
替换为要呈现给 HTTP Webhook 服务器的 x.509 TLS 证书的公钥和私钥。对于不需要客户端呈现 TLS 证书的端点,请省略。
审计日志结构
MinIO 审计日志类似于以下 JSON 文档
api.timeToFirstByte
和api.timeToResponse
字段以纳秒表示。对于 擦除编码设置,
tags.objectErasureMap
提供以下每个对象的详细信息
{
"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"
}