文件

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

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"
    

    有關更多詳細資訊,請參閱所需服務的文件。

  • 使用 x.509 TLS 憑證的公開和私密金鑰,將 cert.pemcert.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 端點。

  • 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"
    

    有關更多詳細資訊,請參閱所需服務的文件。

  • 使用 x.509 TLS 憑證的公開和私密金鑰,將 cert.pemcert.key 替換為要呈現給 HTTP Webhook 伺服器的憑證。對於不需要用戶端呈現 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"
}