控制 alloydbctl 和 Ansible 的编排器级诊断日志,以调整详细程度,用于问题排查或使自动化脚本的输出静音。这些日志对于诊断集群引导、管理或一般操作期间的问题至关重要。
收集并转储调试信息
您可以使用 Ansible 角色或调试转储工具来收集和转储调试信息。
使用 Ansible 收集调试信息
google.alloydbomni_orchechestrator.dump_debug Ansible 角色可自动执行部署规范中定义的所有 AlloyDB Omni 节点的收集流程。它会收集并整合以下信息:
- Systemd 状态:所有 AlloyDB Omni 服务的当前状态。
- 日志:系统日志,支持基于时间的过滤。
生成调试信息转储
在控制节点上创建 Ansible playbook(例如,
dump_debug.yml)。将以下内容添加到 playbook 中:- name: Collect AlloyDB Omni Debug Dump hosts: all # Or target specific host groups like primary_instance_nodes become: true gather_facts: true vars: ansible_user: ANSIBLE_USER ansible_ssh_private_key_file: PATH_TO_PRIVATE_SSH_KEY # Optional: Customize dump behavior dump_debug_binary_path: "BINARY_PATH" dump_debug_collection_type: "COLLECTION_TYPE" dump_debug_local_dest: ""ANSIBLE_DESTINATION"" dump_debug_tag: ""TAG_NAME"" dump_debug_journal_spec: "JOURNAL_SPEC" roles: - role: google.alloydbomni_orchestrator.dump_debug替换以下内容:
ANSIBLE_USER:用户登录 Ansible 的身份。PATH_TO_PRIVATE_SSH_KEY:SSH 私钥文件的路径。BINARY_PATH:可选。远程节点上二进制文件的路径。 默认值为/usr/local/bin。COLLECTION_TYPE:可选。集合类型(status、logs、config或all)。默认值为all。ANSIBLE_DESTINATION:可选。Ansible 控制节点上的目标位置。默认值为/tmp/debug_dump。TAG_NAME:可选。自定义标识符。如果标记存在,则添加后缀(例如_1)。默认为系统时间戳。JOURNAL_SPEC:可选。支持journalctl标志(例如"--since '1 hour ago'")。默认值为-n 1000。
使用
ansible-playbook命令运行 playbook,并将您的deployment_spec.yaml指定为清单。# standard execution ansible-playbook dump_debug.yml -i PATH_TO_DEPLOYMENT_SPEC或者,您也可以使用自定义代码和您选择的日志规范来运行 playbook。
ansible-playbook dump_debug.yml -i PATH_TO_DEPLOYMENT_SPEC \ -e 'dump_debug_tag=TAG_NAME' \ -e 'dump_debug_journal_spec: "JOURNAL_SPEC"'替换以下内容:
PATH_TO_DEPLOYMENT_SPEC:部署规范 YAML 文件的路径。TAG_NAME:可选。自定义标识符。如果标记存在,则添加后缀(例如_1)。默认为系统时间戳。JOURNAL_SPEC:可选。支持journalctl标志(例如"--since '1 hour ago'")。默认值为-n 1000。
使用调试转储工具收集调试信息
您可以使用 alloydbomni_dump 工具生成转储文件。此工具包含在 AlloyDB Omni 编排器软件包中。
生成转储文件
在要调试的 AlloyDB Omni 集群节点上运行以下脚本。
sudo /usr/local/bin/alloydbomni_dump \
-k SSH_KEY \
-u USER \
-d PATH_TO_DEPLOYMENT_SPEC \
-o OUTPUT_DIRECTORY \
[options]替换以下内容:
SSH_KEY:用户的 SSH 私钥的路径。USER:用于通过 SSH 访问集群节点的用户名。PATH_TO_DEPLOYMENT_SPEC:部署规范 YAML 文件的路径。OUTPUT_DIRECTORY:用于保存生成的转储文件的本地目录。
支持的命令
-k:必需的 SSH 私钥路径。-u:必需的服务账号用户名。-d:必需的部署规范 YAML 文件路径。-o:最终 tar 文件的必需输出目录。-t:可选的自定义代码标识符。-c:可选的集合类型(status、logs、config、all)。-s:可选的日志大小和时间规范(例如-s "--since \"30 minutes ago\"")。
执行示例
alloydbomni_dump -k /home/user/ssh-key \
-u sa_12345 -d /tmp/deployment_spec.yaml \
-o /tmp/debug_dump -s "--since \"2 hours ago\""获取编排器诊断日志
您可以获取由 alloydbctl 和 Ansible 编排器生成的诊断日志。这样一来,您就可以提高详细程度以进行问题排查,或者静默输出以用于自动化脚本。日志记录对于诊断集群在引导、管理或一般运行期间出现的问题至关重要。
获取 alloydbctl 调试日志
alloydbctl 工具支持使用命令行实参来控制日志级别和输出目的地。日志级别决定了要记录的消息的严重程度,而日志目的地则指定了这些日志的写入位置。
alloydbctl [command] ... [{-l|--log_level} <LEVEL>] [{-f|--log_file} <FILE>]日志级别(-l / --log_level)
您可以使用以下日志级别。日志级别不区分大小写(例如,DEBUG 和 debug 被视为相同)。
- NOTSET(默认):不记录日志。
- DEBUG:记录详细信息,通常仅在诊断问题时有用。记录 RPC 请求和响应。
- INFO:确认一切正常运行。
- 警告:表示发生了意外情况(例如“磁盘空间不足”),但软件仍在运行。
- ERROR:由于存在更严重的问题,软件无法执行某些功能。
- 严重:表示存在严重错误,程序本身可能无法继续运行。
日志目标位置 (-f / --log_file)
您可以选择以下日志目标位置:
- 文件路径:如果提供(例如
-f /tmp/alloydbctl.log),则日志会写入指定的文件。 - 标准输出:如果未提供,则将日志输出到控制台 (stdout)。
示例
以下示例使用 alloydbctl 应用部署和资源规范,同时启用 DEBUG 级日志记录。日志(包括详细信息和 RPC 请求/响应)会写入文件 /tmp/alloydbctl_debug.log,而不是标准输出。
alloydbctl apply -d deployment_spec.yaml -r resource_spec.yaml -l DEBUG -f /tmp/alloydbctl_debug.log获取 Ansible 调试日志
Ansible Orchestrator 会根据 Ansible 任务和 Ansible 模块生成日志。您可以传递标准 Ansible 命令行实参来更改任务和模块的日志记录行为。如需了解更多详细信息,请参阅 ansible-playbook 文档。
Ansible 模块的日志级别
默认情况下,日志会发送到 playbook 运行的控制台。
如需设置 log_level 配置设置,请运行以下命令:
ansible-playbook -i inventory.yaml bootstrap.yaml \
-e resource_spec=resource_spec.yaml \
-e log_level=DEBUG
您还可以使用以下标准 Ansible 详细程度标志来控制输出详细程度:
-v:基本详尽程度(信息级日志)。-vv或更高级别:提高详细程度(调试级别日志)。
例如:
ansible-playbook -i inventory.yaml bootstrap.yaml \
-e resource_spec=resource_spec.yaml \
-vv
Ansible 模块的日志路径
默认情况下,系统不会捕获日志,必须配置日志级别才能在日志文件中捕获日志。
如需将 Ansible 输出保存到日志文件,请运行以下命令来设置 log_path 配置:
ansible-playbook -i inventory.yaml bootstrap.yaml \
-e resource_spec=resource_spec.yaml \
-e log_file=/tmp/ansible-module.log