配置日志重定向
您可以将 AlloyDB Omni 中的控制平面和服务日志、内部日志、审核日志和备份日志 (pgBackRest) 重定向到集中式文件夹或观测磁盘。通过汇总分布在本地节点路径(例如 /var/log 或 /run/log)中的日志,您可以让生产监控工具识别系统错误、提高系统可观测性并简化问题排查流程。
集中式可观测性
AlloyDB Omni 堆栈包含多个组件,这些组件分为控制平面(例如集群管理器、节点管理器、etcd)和数据平面。日志重定向会将这些组件中的日志推送到集中式路径或观测磁盘 (ObsDisk)。然后,您可以将这些日志通过管道传输到可观测性工具中,以检测系统问题,而无需访问各个节点路径。
etcd 是集群管理器协调和管理状态所需的独立分布式配置存储。它可以自行在专用节点上运行,也可以与集群管理器节点共用节点。相比之下,节点管理器充当安装在数据平面节点(数据库节点和负载均衡器节点)上的本地代理,用于处理控制平面命令。
日志重定向涵盖以下组件:
- 控制平面组件服务日志
- 集群管理器节点上的集群管理器
- 所有节点上的节点管理器
etcd节点上的etcd
- 数据平面组件服务日志
- 主实例和读取池实例节点上的
alloydbomni - 主实例和读取池实例节点上的
alloydbomni监控器 - 主实例节点上的
pgBackRest - 主实例节点或负载均衡器节点上的
pgbouncer - 主实例节点或负载均衡器节点上的
keepalived - 负载均衡器节点上的
HAProxy
- 主实例和读取池实例节点上的
- AlloyDB Omni 内部日志和审核日志
限制
rsyslog和journal在全局限制和基于速率的限制方面存在限制。- 仅当您使用 Ansible 界面时,才支持
etcd日志重定向。 - 日志截断:
rsyslog没有内置的日志截断支持。 - Rsyslog 可观测性:直接监控
rsyslog守护程序状态可能需要进行额外设置。
准备工作
- 验证为日志重定向指定的路径是否存在于相关节点上,并且这些路径是目录。
配置日志重定向
如需在 AlloyDB Omni 中配置日志重定向,您必须为控制平面组件和数据平面组件指定目标目录。
重定向控制平面日志
请按照以下步骤为控制平面组件 cluster manager、node manager 和 etcd 配置日志重定向。
打开
deployment_spec.yaml文件。向
cluster_manager和etcd节添加参数,以指定目标目录。以下
deployment_spec.yaml提供了一个示例:alloydbomni: vars: cluster_manager: name: CM_CLUSTER logging: disk: path: "/obs" etcd: logging: disk: path: "/obs"您可以单独预配
etcd服务。如需捕获所有控制平面日志,您必须在deployment_spec.yaml文件中的cluster_manager和etcd节下定义logging路径。下表介绍了用于配置控制平面日志重定向的参数,您可以使用这些参数在部署规范中指定日志的目标路径:
参数 必需 说明 logging.disk否 用于将控制平面日志重定向到磁盘的子部分。 logging.disk.path基于条件 如果设置了 logging.disk,则为必需。rsyslog将服务日志重定向到的磁盘路径。必须存在于节点上,并且必须是目录。应用配置更改。
Ansible
Ansible 编排器会在安装或更新期间自动调用配置实用程序。如需使用 Ansible 编排器应用配置更新,请按以下步骤操作:
- 打开 Ansible 控制节点,即您在其中安装 Ansible 的管理机器或工作站。
创建一个名为
update.yml的文件,并添加以下内容:--- - hosts: all become: true vars: update_action: "update_logging" ansible_user: SSH_USER ansible_ssh_private_key_file: ~/path/to/private-key roles: - role: google.alloydbomni_orchestrator.update将
SSH_USER替换为您用于连接到部署节点的 SSH 用户名。运行剧本以应用配置更改。
ansible-playbook -i DEPLOYMENT_SPECIFICATION update.yml将
DEPLOYMENT_SPECIFICATION替换为您在 安装 AlloyDB Omni 组件 中创建的部署规范文件的路径,例如deployment_spec.yaml。
alloydbctl
在集群管理器节点上,运行以下命令:
/usr/local/bin/alloydbomni_cm_config apply -d deployment_spec.yaml在节点管理器节点(包括所有数据库节点和负载均衡器节点)上,运行以下命令:
/usr/local/bin/alloydbomni_nm_config apply -d deployment_spec.yaml在
etcd节点上,使用以下内容创建或更新etcdsystemd 替换文件/etc/systemd/system/etcd.service.d/logging.conf:[Service] SyslogIdentifier=etcd创建或更新
etcdrsyslog 文件/etc/rsyslog.d/etcd.conf:template(name="DailyLogProg_etcd" type="string" string="ETCD_LOG_REDIRECT_DIR/%$year%-%$month%-%$day%-journal.log") if $programname == 'etcd' then { action(type="omfile" dynaFile="DailyLogProg_etcd" FileCreateMode="0644") stop }将
ETCD_LOG_REDIRECT_DIR替换为您希望将etcd日志重定向到的目录的路径,例如/obs。重启
rsyslog服务:sudo systemctl restart rsyslog
重定向数据平面日志
如需为数据平面组件配置日志重定向,请按以下步骤操作:
打开
DBCluster资源规范。将观测磁盘 (
ObsDisk) 添加到磁盘列表中。以下示例展示了如何定义存储扩展程序、添加观测磁盘,以及指定必须在路径/obs中装载或访问该磁盘。DBCluster: metadata: name: "DBCLUSTER_NAME" spec: primarySpec: resources: disks: - name: ObsDisk path: /obs ```应用或引导
DBCluster资源。Ansible
创建一个名为
update.yml的文件,并添加以下内容:--- - hosts: all vars: update_action: "update_resource_spec" ansible_user: SSH_USER ansible_ssh_private_key_file: PRIVATE_KEY_PATH roles: - role: google.alloydbomni_orchestrator.update替换以下内容:
SSH_USER:用于连接到部署节点的 SSH 用户名。PRIVATE_KEY_PATH:Ansible 控制节点上 SSH 私钥文件的路径,例如~/path/to/private-key。
运行剧本以应用配置更改。
ansible-playbook -i DEPLOYMENT_SPECIFICATION update.yml -e "resource_spec=DBCLUSTER_SPECIFICATION"替换以下内容:
DEPLOYMENT_SPECIFICATION:您在安装 AlloyDB Omni 组件中创建的部署规范的路径。DBCLUSTER_SPECIFICATION:集群规范的路径。
alloydbctl
运行以下命令:
alloydbctl apply -d DEPLOYMENT_SPECIFICATION -r DBCLUSTER_SPECIFICATION替换以下内容:
DEPLOYMENT_SPECIFICATION:您在安装 AlloyDB Omni 组件中创建的部署规范的路径。DBCLUSTER_SPECIFICATION:集群规范的路径。
验证日志重定向
应用配置后,请查看控制平面和数据平面重定向路径,验证日志是否流式传输到指定的目录。
控制平面重定向路径
| 组件 | 重定向的日志路径 |
|---|---|
alloydbomni_cluster_manager |
LOGGING_DISK_PATH/CM_CLUSTER_NAME/alloydbomni_cluster_manager/YYYY-MM-DD-journal.log |
alloydbomni_node_manager |
LOGGING_DISK_PATH/CM_CLUSTER_NAME/alloydbomni_node_manager/YYYY-MM-DD-journal.log |
etcd |
LOGGING_DISK_PATH/CM_CLUSTER_NAME/etcd/YYYY-MM-DD-journal.log |
LOGGING_DISK_PATH:节点上控制平面服务日志重定向到的基本目录路径,例如/obs。CM_CLUSTER_NAME:deployment_spec.yaml文件中定义的控制平面集群的名称。
数据平面重定向路径
| 组件 | 重定向的日志路径 |
|---|---|
alloydbomni |
OBS_DISK_PATH/DB_CLUSTER_NAME/alloydbomniVERSION@SYSTEMD_INSTANCE_NAME/YYYY-MM-DD-journal.log |
alloydbomni_monitor |
OBS_DISK_PATH/DB_CLUSTER_NAME/alloydbomni_monitor@SYSTEMD_INSTANCE_NAME/YYYY-MM-DD-journal.log |
pgbouncer |
OBS_DISK_PATH/DB_CLUSTER_NAME/PgBouncer@SYSTEMD_INSTANCE_NAME/YYYY-MM-DD-journal.log |
keepalived |
OBS_DISK_PATH/DB_CLUSTER_NAME/keepalived@SYSTEMD_INSTANCE_NAME/YYYY-MM-DD-journal.log |
haproxy |
OBS_DISK_PATH/DB_CLUSTER_NAME/haproxy@SYSTEMD_INSTANCE_NAME/YYYY-MM-DD-journal.log |
pgbackrest |
OBS_DISK_PATH/DB_CLUSTER_NAME/pgbackrest/YYYY-MM-DD-*.log |
OBS_DISK_PATH:ObsDisk中指定的路径,例如/obs。DB_CLUSTER_NAME:数据库集群的名称。
日志记录配置参数
AlloyDB Omni 会根据您的配置自动设置标准 PostgreSQL 参数来管理日志生成。不过,您可以在用户定义的参数中替换 log_rotation_age 和 log_filename 等参数,以自定义日志轮换政策。
| GUC | 说明 | 不使用 OBS 磁盘 | 使用 OBS 磁盘 |
|---|---|---|---|
logging_collector |
启用日志记录收集器后台进程。 | 开启 | 开启 |
log_directory |
内部日志和审核日志的目录。 | DATA_DISK_PATH/VERSION/log |
OBS_DISK_PATH/DB_CLUSTER_NAME/alloydbomni/VERSION |
log_filename |
文件名模式 (strftime)。 |
postgresql-%H.log(每 24 小时截断一次) |
postgresql-%Y-%m-%d_%H%M%S.log |
log_file_mode |
文件权限。 | 0600 |
0600 |
log_rotation_age |
轮换前使用文件的最长时间。 | 60 分钟 | 60 分钟 |
log_rotation_size |
轮换前的文件大小上限。 | 0 | 0 |
log_truncate_on_rotation |
轮换时截断而不是追加。 | 开启 | 关闭 |