使用日誌進行疑難排解

瞭解如何使用部署備份中的 OCI 日誌記錄和日誌疑難排解常見問題,以及從 OCI GoldenGate 部署收集診斷。

處理與錯誤日誌

您可以將 OCI 日誌記錄與 OCI GoldenGate 整合,以啟用、管理及搜尋 GoldenGate 處理作業和錯誤日誌。與日誌記錄服務整合是選擇性的。

  • 錯誤日誌:包含來自 ggserr.log 檔案的內容,這些檔案會記錄 GoldenGate 所產生的處理事件、訊息、錯誤和警告。
  • 處理日誌:包含多個日誌檔的內容,包括「管理服務」、「分送服務」、「效能測量結果服務」、「接收者服務」以及「擷取 / 複製事件」。

開始使用 OCI 日誌記錄之前:

  • 熟悉 OCI 日誌記錄服務中使用的基本概念和術語。請參閱 OCI 日誌記錄文件中的日誌記錄總覽
  • 建立群組以管理日誌群組和日誌內容的存取權。請參閱 OCI IAM 文件中的使用群組
  • 新增啟用 OCI GoldenGate 公用記錄日誌的原則。

附註:

您可以管理日誌的生命週期,包括 OCI GoldenGate 為您自動建立的日誌。刪除工作與工作執行時,不會刪除日誌。深入瞭解可觀測性與管理價格

新增使用 OCI 日誌記錄與 OCI GoldenGate 的原則

若要啟用服務日誌,您必須授予使用者對日誌群組的管理存取權,以及對資源的存取權。日誌和日誌群組使用 log-group 資源類型,但若要搜尋日誌內容,您必須使用 log-content 資源類型。新增下列原則:

allow group <group-name> to manage log-groups in compartment <compartment-name>
allow group <group-name> to manage log-content in compartment <compartment-name>

進一步瞭解原則

使用 Oracle Cloud 主控台啟用日誌記錄

  1. 在「建置」頁上,選取要啟用記錄日誌的建置。
  2. 在「建置詳細資訊」頁上,選擇「監督」。
  3. 在「監督 (Monitoring)」頁面上,向下捲動至「日誌 (Logs)」。
  4. 日誌表格的其中一個日誌的動作功能表中,選取啟用日誌
  5. 啟用日誌面板的區間下拉式清單中,選取一個區間。
  6. 對於「日誌」群組,您可以:
    • 從下拉式清單選取群組
    • 建立新群組
    • 將它保留空白,並自動指派預設群組
  7. 對於「日誌」名稱,請輸入名稱。
  8. 若要保留日誌,請從下拉式清單中選取月數。
  9. 按一下啟用日誌

等待狀態變成「有效」。作用中之後,便會開啟處理作業和錯誤日誌的「診斷日誌」功能。流程和錯誤日誌在技術上是來自 Oracle Cloud Infrastructure 原生服務 (例如 OCI GoldenGate) 的「服務日誌」。

使用 CLI 啟用 OCI 日誌記錄

  1. 建立記錄群組

    要求

    oci --profile <profile_name> logging log-group create --compartment-id <compartment_ocid>
          --display-name <display_name>

    回應

    { "opc-work-request-id": "<log-workrequest-ocid>" }
  2. 取得日誌群組 ID

    要求

    oci --profile <profile_name> logging work-request get --work-request-id
          <log-workrequest-ocid>

    回應

    {  
        "data": {    
        "compartment-id": "<compartment_ocid>",    
        "id": "<log-workrequest-ocid>",    
        "operation-type": "CREATE_LOG_GROUP",    
        "percent-complete": 100.0,    
        "resources": [      
            {        
                "action-type": "CREATED",        
                "entity-type": "loggroup",        
                "entity-uri": "/logGroups/<log-group-ocid>",        
                "identifier": "<log-group-ocid>"      
            }    
        ],    "
        status": "SUCCEEDED",    
        "time-accepted": "2023-05-09T05:57:09.641000+00:00",    
        "time-finished": "2023-05-09T05:57:09.641000+00:00",    
        "time-started": "2023-05-09T05:57:09.641000+00:00"  
        }
    }
  3. 建立 / 啟用日誌物件

    要求

    oci --profile <profile-name> logging log create --display-name <display-name> --log-group-id
          <log-group-ocid> --log-type SERVICE/CUSTOM --is-enabled true  --configuration file://path_to_json_file

    JSON 要求有效負載

    {  
        "compartment-id": "<compartment-ocid>",     
        "source":    
            {        
                "resource": "<GoldenGate-deployment-ocid>",            
                "service": "goldengate",            
                "source-type": "OCISERVICE",            
                "category": "error_logs/process_logs"      
            }    
    }

    回應

    Response 
    {  
        "opc-work-request-id": "<log-workrequest-ocid>"
    }
  4. 停用 OCI 日誌記錄

    要求

    oci --profile <profile_name> logging log update --is-enabled false --log-group-id <log-group-ocid> --log-id <log-ocid>

    回應

    {  
        "opc-work-request-id": "<log-workrequest-ocid>"
    }
  5. 搜尋 OCI 日誌

    要求

    oci --profile <profile_name> logging-search search-logs
          --search-query "search \"<compartment_ocid>/<log-group-ocid>/<log-ocid>\"" --time-start '2023-05-09 09:54' --time-end '2023-05-09 09:55'

    回應

    {  
        "data": {    
            "fields": null,    
            "results": [      
                {        
                    "data": {          
                    "datetime": 1683626095205,          
                    "logContent": {            
                        "data": {              
                            "level": "INFO",              
                            "message": "Executing command '{\n    \"name\": \"report\",\n    \"reportType\": \"lag\",\n    \"thresholds\": [\n        {\n            \"type\": \"info\",\n            \"units\": \"seconds\",\n           \"value\": 0\n        }\n    ]\n}'",              
                            "processName": "adminsrvr",              
                            "resourceId": "<GoldenGate-deployment-ocid>"            
                        },            
                        "id": "20230509095455.2051683626095",            
                        "oracle": {              
                            "compartmentid": "<compartment-ocid>",              
                            "ingestedtime": "2023-05-09T09:55:05.889Z",              
                            "loggroupid": "<log-group-ocid>",              
                            "logid": "<log-ocid>",              
                            "tenantid": "<tenant-ocid>"            
                        },            
                        "source": "<GoldenGate-deployment-ocid>",            
                        "specversion": "1.0",            
                        "time": "2023-05-09T09:54:55.205Z",            
                        "type": "com.oraclecloud.goldengate.deployment.process_logs"          
                    }        
                }      
            } ],    
            "summary": {      
                "field-count": null,      
                "result-count": 1    
            }  
        }
    }
  6. 取得日誌狀態

    要求

    oci --profile <profile_name> logging log get --log-group-id <log-group-ocid> --log-id
          <log-ocid>

    回應

    {  
        "data": {    
            "compartment-id": "<compartment-ocid>",    
            "configuration": {      
                "archiving": {        
                    "is-enabled": false      
                },      
                "compartment-id": "<compartment-ocid>",      
                "source": {        
                    "category": "process_logs",        
                    "parameters": {},        
                    "resource": "<GoldenGate-deployment-ocid>",        
                    "service": "goldengate",        
                    "source-type": "OCISERVICE"      
                }    
            },    
            "defined-tags": {      
                "Oracle-Tags": {        
                    "CreatedBy": "<creater_email_id>",        
                    "CreatedOn": "2023-05-09T06:24:30.279Z"      
                }    
            },    
            "display-name": "<display_name>",    
            "freeform-tags": {},    
            "id": "<log-ocid>",    
            "is-enabled": false,    "
            lifecycle-state": "INACTIVE",    
            "log-group-id": "<log-group-ocid>",    
            "log-type": "SERVICE",    
            "retention-duration": 30,    
            "tenancy-id": "<tenancy-ocid>",    
            "time-created": "2023-05-09T06:24:30.452000+00:00",    
            "time-last-modified": "2023-05-09T06:30:17.345000+00:00"  
        },  
        "etag": "cb5bb295-9954-4949-b33f-67d6da50f83f"
    }
  7. 刪除日誌

    要求

    oci --profile <profile_name> logging log delete --log-group-id <log-group-ocid> --log-id <log-ocid>

    回應

    {  
        "opc-work-request-id": "<log-workrequest-ocid>"
    }
  8. 刪除記錄群組

    要求

    oci --profile GGSTEST logging log-group delete --log-group-id <log-group-ocid>

    回應

    {  
        "opc-work-request-id": "<log-workrequest-ocid>"
    }

啟用 OCI 日誌記錄服務中 OCI GoldenGate 的日誌記錄

如果您還沒有日誌記錄服務,請建立日誌群組並在日誌記錄服務中設定服務日誌

  1. 開啟導覽功能表,然後按一下可觀測性與管理。在記錄日誌分析 (Logging Analytics) 下,按一下管理 (Administration)
  2. 在「管理總覽」頁面的資源底下,按一下日誌群組
  3. 選擇您有權使用的區間,然後按一下建立日誌群組

    隨即顯示建立日誌群組面板。

  4. 完成下列各個欄位:
    • 區間:要在其中建立日誌群組的區間。此欄位會根據您區間的選擇預先填入。
    • 名稱:此日誌群組的名稱。日誌群組名稱的第一個字元必須是字母。如需詳細資訊,請參閱日誌與日誌群組名稱。請避免輸入機密資訊。
    • 描述:易記描述。
    • (選用) 輸入標記資訊。
  5. 按一下建立

    然後會顯示日誌群組詳細資訊頁面。

  6. 按一下日誌
  7. 按一下「啟用服務日誌」。
  8. 選取資源下:
    1. 如果是資源區間,請選取資源的區間。
    2. 若為服務,請從下拉式清單中選取 GoldenGate
    3. 若為資源,請從下拉式清單中選取一個建置。
  9. 設定日誌下:
    1. 若為日誌類別,請從下拉式清單中選取一個值。
    2. 日誌名稱中輸入名稱。
  10. 選取顯示進階選項,然後在日誌位置下:
    1. 區間中,選取要儲存日誌的區間。
    2. 若為日誌群組,請從下拉式清單中選取日誌群組或建立新群組。
  11. 在「記錄保留」中,選擇保留記錄的月數。
  12. 按一下啟用日誌

部署備份日誌

您可以手動將 OCI GoldenGate 部署備份至 Oracle Object Storage,然後將備份下載到本機。接著,您可以尋找部署日誌來疑難排解狀況問題。

若要瞭解如何建立手動備份,請參閱管理建置備份

手動部署備份包含完整的 GoldenGate 部署目錄結構和檔案,包括日誌和歷程檔。對於疑難排解很有幫助的目錄與檔案包括:

  • /etc:配置
    • /etc/ogg:參數檔
  • /var:記錄檔、檢查點、歷程檔等等
    • /var/checkpt:檢查點
    • /var/data:歷程檔
    • /var/report:報表檔案
    • /var/log:記錄檔
      • ER-events.log
      • ggserr.log
      • restapi.log
      • adminsrvr.log
      • pmsrvr.log
      • distsrvr-stdout.log
      • recsrvr-stdout.log
      • distsrvr.log
      • recvsrvr.log
      • extract.log
      • replicat.log

收集診斷

收集診斷以分析或共用您 OCI GoldenGate 部署的相關資訊。如果發生任何問題,收集的資訊可以與 My Oracle Support 共用。

附註:

此功能僅適用於資料複製部署。
收集診斷之前,請先確定您已建立 OCI Object Storage 貯體
收集部署診斷:
  1. 在「建置」頁面上,選取要收集診斷的建置。
  2. 在建置的「詳細資訊」頁面上,從「動作」功能表選取收集診斷
  3. 在「收集診斷」面板中,完成下列欄位,然後按一下收集診斷
    1. 儲存設定 (Bucket) 下拉式清單中,選取要儲存診斷檔案的儲存設定。若要在其他區間中選取一個儲存桶,請按一下變更區間
    2. 診斷名稱前置碼中,輸入簡短名稱或幾個字元,以在診斷檔案名稱前面加上前置碼。
    3. (可選) 選取收集系統記錄的開始日期。
    4. (選用) 選取要收集系統記錄檔的「結束日期」。

      附註:

      針對 OCI GoldenGate 部署收集的診斷包含整個部署生命週期的 GoldenGate 日誌,且與選取的開始和結束日期無關。
按一下「收集診斷」後,名為診斷的新欄位就會顯示在「部署」資訊卡的 GoldenGate 區段底下。診斷壓縮檔可能需要數分鐘的時間才能下載。當可用時,會顯示下載連結。