文件

將伺服器或稽核日誌發佈到外部服務

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.pemcert.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.pemcert.key 替換為要呈現給 HTTP Webhook 伺服器的 x.509 TLS 憑證的公鑰和私鑰。對於不需要用戶端呈現 TLS 憑證的端點,請省略此項。

稽核日誌結構

MinIO 稽核日誌類似於下列 JSON 文件

  • api.timeToFirstByteapi.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"
}