将服务器或审计日志发布到外部服务
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 端点。用 HTTP Webhook 端点的 URL 替换
https://webhook-1.example.net
。用适合该端点的身份验证令牌替换
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 端点。用 HTTP Webhook 端点的 URL 替换
https://webhook-1.example.net
。用适合该端点的身份验证令牌替换
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 端点。用 HTTP Webhook 端点的 URL 替换
https://webhook-1.example.net
。用适合该端点的身份验证令牌替换
TOKEN
。对于不需要身份验证的端点,请省略。为了允许各种令牌类型,MinIO 使用完全相同的指定值来创建请求身份验证头。根据端点的不同,您可能需要包含其他信息。
例如,对于 Bearer 令牌,请在前面加上
Bearer
set MINIO_AUDIT_WEBHOOK_AUTH_TOKEN_myendpoint="Bearer 1a2b3c4f5e"
根据端点要求修改值。自定义身份验证格式可能类似于以下内容
set MINIO_AUDIT_WEBHOOK_AUTH_TOKEN_xyz="ServiceXYZ 1a2b3c4f5e"
请参阅所需服务的文档以获取更多详细信息。
用 x.509 TLS 证书的公钥和私钥替换
cert.pem
和cert.key
,以呈现给 HTTP Webhook 服务器。对于不需要客户端提供 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 端点。用 HTTP Webhook 端点的 URL 替换
https://webhook-1.example.net
。用适合该端点的身份验证令牌替换
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"
请参阅所需服务的文档以获取更多详细信息。
用 x.509 TLS 证书的公钥和私钥替换
cert.pem
和cert.key
,以呈现给 HTTP Webhook 服务器。对于不需要客户端提供 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"
}