使用日志进行故障排除

了解如何使用部署备份中的 OCI 日志记录和日志来排除常见问题,以及从 OCI GoldenGate 部署中收集诊断信息。

进程和错误日志

您可以将 OCI Logging 与 OCI GoldenGate 集成,以启用、管理和搜索 GoldenGate 流程和错误日志。与日志记录服务的集成是可选的。

  • 错误日志:包含 ggserr.log 文件中记录处理 GoldenGate 生成的事件、消息、错误和警告的内容。
  • 处理日志:包含管理服务、分发服务、性能度量服务、接收方服务和提取/复制事件的多个日志文件中的内容。

在开始使用 OCI 日志记录之前:

  • 熟悉 OCI Logging 服务中使用的基本概念和术语。请参阅 OCI Logging 文档中的 Logging Overview
  • 创建一个组以管理对日志组和日志内容的访问。请参阅 OCI IAM 文档中的使用组
  • 添加策略以启用 OCI GoldenGate 的公共日志记录。

注意:

您可以管理日志的生命周期,包括 OCI GoldenGate 自动为您创建的日志。删除作业和作业运行时不会删除日志。了解有关观测和管理定价的更多信息。

添加策略以通过 OCI GoldenGate 使用 OCI 日志记录

要启用服务日志,必须向用户授予对日志组的管理访问权限以及对资源的访问权限。日志和日志组使用 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. 单击启用日志

等待状态变为“Active(有效)”。处于活动状态后,将为进程和错误日志启用“诊断日志”功能。流程和错误日志在技术上是“服务日志”,因为它们来自 OCI GoldenGate 等 Oracle Cloud Infrastructure 原生服务。

使用 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. 选择您有权使用的区间,然后单击创建日志组

    此时将显示 Create Log Group 面板。

  4. 请完成以下任务:
    • 区间:要在其中创建日志组的区间的。此字段将根据您选择的区间进行预填充。
    • 名称:此日志组的名称。日志组名的第一个字符必须是字母。有关更多信息,请参见 Log and Log Group Names 。请避免输入机密信息。
    • 说明:友好说明。
    • (可选)输入标记信息。
  5. 单击创建

    此时将显示日志组详细信息页。

  6. 单击日志
  7. 单击启用服务日志
  8. 选择资源下:
    1. 对于资源区间,选择资源的区间。
    2. 对于服务,请从下拉列表中选择 GoldenGate
    3. 对于资源,请从下拉列表中选择部署。
  9. 配置日志下:
    1. 对于日志类别,请从下拉列表中选择一个值。
    2. 对于日志名称,请输入名称。
  10. 选择显示高级选项,然后在日志位置下:
    1. 对于区间,选择要保存日志的区间。
    2. 对于日志组,请从下拉列表中选择一个日志组或创建新组。
  11. 对于日志保留,请选择要保留日志的月数。
  12. 单击启用日志

部署备份日志

您可以手动将 OCI GoldenGate 部署备份到 Oracle 对象存储,然后在本地下载备份。然后,您可以找到部署日志以排除运行状况问题。

要了解如何创建手动备份,请参阅管理部署备份

手动部署备份包含完整的 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. 在“Deployments(部署)”页面上,选择要为其收集诊断信息的部署。
  2. 在部署的“详细信息”页上,从“操作”菜单中选择收集诊断
  3. 在 "Collect diagnostics" 面板中,填写以下字段,然后单击 Collect diagnostics
    1. Bucket(存储桶)下拉列表中,选择要保存诊断文件的存储桶。如果要选择其他区间中的存储桶,请单击更改区间
    2. 对于 Diagnostics name prefix(诊断名称前缀),请输入一个简称或几个字符来为诊断文件名添加前缀。
    3. (可选)选择要从中收集系统日志的开始日期。
    4. (可选)选择要收集系统日志的结束日期。

      注意:

      OCI GoldenGate 部署收集的诊断包含整个部署生命周期的 GoldenGate 日志,并且与所选的开始和结束日期无关。
单击 "Collect" 诊断后,部署信息卡的 GoldenGate 部分下会显示一个名为 Diagnostics 的新字段。诊断 zip 文件可能需要几分钟才能可供下载。可用时,将显示 Download(下载)链接。