发布服务器或审计日志到外部服务
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.pem和cert.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.pem和cert.key使用 x.509 TLS 证书的公钥和私钥向 HTTP webhook 服务器进行身份验证。对于不需要客户端提供 TLS 证书的端点,请省略此配置。
审计日志结构
MinIO 审计日志类似于以下 JSON 文档:
The
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"
}