將伺服器或稽核日誌發布到外部服務
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
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
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
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
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"
}