使用日志进行故障排除
了解如何使用 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 日志记录用于 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 控制台启用日志记录
-
在部署页上,选择要为其启用日志记录的部署。
-
在 Deployment details 页面上,选择 Monitoring 。
-
在“Monitoring(监视)”页面上,向下滚动到“Logs(日志)”。
-
在日志表中,在其中一个日志的操作菜单中,选择启用日志。
-
在启用日志面板的“区间”下拉列表中,选择一个区间。
-
对于日志组,您可以:
-
从下拉列表中选择组
-
创建新组
-
将其留空,并自动分配默认组
-
-
对于日志名称,请输入名称。
-
对于日志保留,请从下拉列表中选择月数。
-
选择启用日志。
等待状态变为“Active(有效)”。处于活动状态后,将为进程和错误日志启用“诊断日志”功能。流程和错误日志在技术上是“服务日志”,因为它们来自 OCI GoldenGate 等 Oracle Cloud Infrastructure 原生服务。
使用 CLI 启用 OCI 日志记录
-
创建日志文件组
请求
oci --profile <profile_name> logging log-group create --compartment-id <compartment_ocid> --display-name <display_name>响应
{ "opc-work-request-id": "<log-workrequest-ocid>" } -
获取日志组 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" } } -
创建/启用日志对象
请求
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_fileJSON 请求有效负载
{ "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>" } -
禁用 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>" } -
搜索 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 } } } -
获取日志状态
请求
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" } -
删除日志
请求
oci --profile <profile_name> logging log delete --log-group-id <log-group-ocid> --log-id <log-ocid>响应
{ "opc-work-request-id": "<log-workrequest-ocid>" } -
删除日志分组
请求
oci --profile GGSTEST logging log-group delete --log-group-id <log-group-ocid>响应
{ "opc-work-request-id": "<log-workrequest-ocid>" }
在 OCI 日志记录服务中为 OCI GoldenGate 启用日志记录
创建日志组并在日志记录服务中配置服务日志(如果您还没有):
-
打开导航菜单,然后选择可观察性和管理。在 Logging Analytics 下,选择 Administration 。
-
在“管理概览”页的资源下,选择日志组。
-
选择您有权使用的区间,然后选择创建日志组。
此时将显示 Create Log Group 面板。
-
请完成以下任务:
-
区间:要在其中创建日志组的区间的。此字段将根据您选择的区间进行预填充。
-
名称:此日志组的名称。日志组名的第一个字符必须是字母。有关更多信息,请参见 Log and Log Group Names 。请避免输入机密信息。
-
说明:友好说明。
-
(可选)输入标记信息。
-
-
选择创建。
此时将显示日志组详细信息页。
-
选择 Logs 。
-
选择启用服务日志。
-
在选择资源下:
-
对于资源区间,选择资源的区间。
-
对于服务,从下拉列表中选择 GoldenGate 。
-
对于资源,从下拉列表中选择部署。
-
-
在配置日志下:
-
对于日志类别,从下拉列表中选择一个值。
-
对于日志名称,输入名称。
-
-
选择显示高级选项,然后在日志位置下方:
-
对于区间,选择要保存日志的区间。
-
对于日志组,从下拉列表中选择一个日志组或创建新组。
-
-
对于日志保留,选择要保留日志的月数。
-
选择启用日志。
部署备份日志
您可以手动将 OCI GoldenGate 部署备份到 Oracle 对象存储,然后在本地下载备份。然后,您可以找到部署日志以排除运行状况问题。
要了解如何创建手动备份,请参阅管理部署备份。
手动部署备份包含完整的 GoldenGate 部署目录结构和文件,包括日志和线索文件。有助于进行故障排除的目录和文件包括:
-
/etc:配置
- /etc/ogg:参数文件
-
/var:日志文件、检查点、线索文件等
-
/var/checkpt:检查点
-
/var/data:线索文件
-
/var/report:报告文件
-
/var/log:日志文件
-
ER- 事件日志
-
ggserr.log
-
restapi.log
-
管理员日志
-
pmsrvr.log
-
distsrvr-stdout.log
-
recsrvr-stdout.log
-
分发服务器日志
-
recvsrvr.log
-
提取日志
-
Replicat.log
-
-
收集诊断数据
收集诊断信息以分析或共享有关 OCI GoldenGate 部署的信息。如果遇到任何问题,可以与 My Oracle Support 共享收集的信息。
注:此功能仅适用于数据复制部署。
在收集诊断信息之前,请确保创建 Oracle 对象存储桶。
要收集部署诊断,请执行以下操作:
-
在“Deployments(部署)”页面上,选择要为其收集诊断信息的部署。
-
在部署的“详细信息”页上,从“操作”菜单中选择收集诊断。
-
在 "Collect diagnostics" 面板中,填写以下字段,然后选择 Collect diagnostics :
-
从 Bucket(存储桶)下拉列表中,选择要保存诊断文件的存储桶。如果要选择其他区间中的存储桶,请选择更改区间。
-
对于 Diagnostics name prefix(诊断名称前缀),输入一个短名称或几个字符来为诊断文件名添加前缀。
-
(可选)选择要从中收集系统日志的开始日期。
-
(可选)选择要收集系统日志的结束日期。
注:为 OCI GoldenGate 部署收集的诊断包含整个部署生命周期的 GoldenGate 日志,并且与所选的开始和结束日期无关。
-
选择 "Collect" 诊断后,将在部署信息卡的 GoldenGate 部分下显示名为 Diagnostics 的新字段。诊断 zip 文件可能需要几分钟才能可供下载。可用时,将显示 Download(下载)链接。
下载完成后,解压缩文件并查看其内容:
-
/etc/ogg:包含参数文件 -
/var/report:包含报告和放弃文件 -
/var/log:包含日志文件 -
ER-events.log:包含提取和复制事件 -
ggserr.log:包含 OCI GoldenGate 错误 -
restapi.log:包含 REST API 日志 -
adminsrvr.log:包含管理服务日志 -
pmsrvr.log:包含性能度量服务日志 -
distsrvr.log:包含分发服务日志 -
recvsrvr.log:包含接收方服务日志 -
extract.log:包含提取进程日志 -
replicat.log:包含复制进程日志