将服务器或审计日志发布到外部服务
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
您可以配置 MinIO 发布到的新 HTTP Webhook 端点
minio server
使用环境变量 或 通过设置进行日志记录
运行时配置设置。
MinIO 支持指定 minio server
日志 HTTP webhook 端点
以及使用 环境变量
的相关配置设置
以下示例代码设置与相关的 所有 环境变量 配置日志 HTTP Webhook 端点。 最少 所需 变量 是:
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 的 URL Webhook 端点。请使用适当类型的身份验证令牌替换
TOKEN
。 对于不需要身份验证的端点,请省略此项。为了允许各种令牌类型,MinIO 使用 完全按照指定值 创建请求身份验证标头。 根据端点,您可能需要包含其他信息。
例如: 对于Bearer令牌,在其前面加上
Bearer
:export MINIO_LOGGER_WEBHOOK_AUTH_TOKEN_myendpoint="Bearer 1a2b3c4f5e"
根据端点要求修改该值。 自定义身份验证格式可能类似于以下内容:
export MINIO_LOGGER_WEBHOOK_AUTH_TOKEN_xyz="ServiceXYZ 1a2b3c4f5e"
有关更多详细信息,请参阅所需服务的文档。
重新启动 MinIO 服务器以应用新的配置设置。 你 必须指定相同的环境变量和设置 部署中的 所有 MinIO 服务器。
MinIO 支持在 MinIO 上添加或更新日志 HTTP webhook 端点
使用 mc admin config set
命令和 audit_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 的 URL
Webhook 端点。
请使用适用于该端点的身份验证令牌替换
TOKEN
。 不需要身份验证的端点请省略此步骤。为了允许多种令牌类型,MinIO 使用 完全按照指定 的值创建请求身份验证标头。 根据端点的不同,您可能需要包含其他信息。
例如: 对于不记名令牌,请在前面添加
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
您可以配置 MinIO 向其发布审计的新 HTTP Webhook 端点 使用环境变量 或 通过设置运行时配置来记录 设置:
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 端点。 对所有环境使用相同的<IDENTIFIER>
与新审核日志 HTTP Webhook 相关的变量。如果指定的
<IDENTIFIER>
与现有日志端点匹配, 新设置 覆盖 该端点的任何现有设置。 使用mc admin config get audit_webhook
查看当前配置的审核日志 HTTP Webhook 端点。Replace
https://webhook-1.example.net
with the URL of the HTTP webhook endpoint.请使用适用于该端点的身份验证令牌替换
TOKEN
。 不需要身份验证的端点请省略此步骤。为了允许多种令牌类型,MinIO 使用 完全按照指定 的值创建请求身份验证标头。 根据端点的不同,您可能需要包含其他信息。
例如: 对于不记名令牌,请在前面添加
Bearer
:根据端点要求修改该值。 自定义身份验证格式可能类似于以下内容:
export 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 端点。 对所有环境使用相同的``<IDENTIFIER>`` 与新审核日志 HTTP Webhook 相关的变量。如果指定的
<IDENTIFIER>
与现有日志端点匹配, 新设置 覆盖 该端点的任何现有设置。 Usemc admin config get audit_webhook
查看当前配置的审核日志 HTTP Webhook 端点。Replace
https://webhook-1.example.net
with the URL of the HTTP webhook endpoint.请使用适用于该端点的身份验证令牌替换
TOKEN
。 不需要身份验证的端点请省略此步骤。为了允许多种令牌类型,MinIO 使用 完全按照指定 的值创建请求身份验证标头。 根据端点的不同,您可能需要包含其他信息。
例如: 对于不记名令牌,请在前面添加
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"
}