第 9 章 监控和日志记录
您可以将指标发送到 Google Cloud Platform 监控系统,以便在 Google Cloud Platform UI 中视觉化。默认情况下,来自 GCP Marketplace 指标和日志记录的 Ansible Automation Platform 会被禁用,因为将这些指标发送到 GCP 的成本。如需更多信息,请参阅云监控和云日志记录。
您可以设置 GCP 监控和日志记录:
- 在部署时,在部署时读取设置监控和日志记录,或者
- 部署后
9.1. 部署后设置监控和日志记录 复制链接链接已复制到粘贴板!
您可以使用 registry.redhat.com 提供的 gcp_setup_logging_monitoring playbook 在部署后启动或停止日志和监控。
9.1.1. 所需权限 复制链接链接已复制到粘贴板!
您必须具有以下 GCP IAM 权限来设置日志记录和监控:
9.1.2. 拉取 ansible-on-clouds-ops 容器镜像 复制链接链接已复制到粘贴板!
在云操作容器上拉取 Ansible 的 Docker 镜像,与基础部署的版本保持一致。如果您不确定您部署的版本,请参阅 Command Generator 和 playbook gcp_get_aoc_version 以了解有关 Clouds 部署的当前版本的更多信息。
在拉取 docker 镜像前,请确保使用 docker 登录到 registry.redhat.io。使用以下命令登录到 registry.redhat.io。
docker login registry.redhat.io
$ docker login registry.redhat.io
有关 registry 登录的更多信息,请参阅 Registry 身份验证
例如,如果您的基础部署版本为 2.4.20240215-00,则必须使用标签 2.4.20240215 拉取操作镜像。
使用以下命令:
export IMAGE=registry.redhat.io/ansible-on-clouds/ansible-on-clouds-ops-rhel9:2.4.20240215 docker pull $IMAGE --platform=linux/amd64
$ export IMAGE=registry.redhat.io/ansible-on-clouds/ansible-on-clouds-ops-rhel9:2.4.20240215
$ docker pull $IMAGE --platform=linux/amd64
如果您的基础部署版本不是 2.4.20240215-00,请参阅 Clouds version 列中的 Released 版本页面上的 表。在 IMAGE 环境变量的 Ansible-on-clouds-ops 容器镜像列中找到要使用的相应操作镜像。
9.1.3. 运行 ansible-on-clouds-ops 容器来生成数据文件 复制链接链接已复制到粘贴板!
以下命令生成所需的数据文件。这些命令会创建一个目录,并使用填充时的空数据模板来生成 playbook。
流程
创建用于存放配置文件的文件夹。
mkdir command_generator_data
$ mkdir command_generator_dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用配置文件模板填充
command_generator_data文件夹。注意在 Linux 上,命令生成器创建的任何文件或目录默认归
root:root所有。要更改文件和目录的所有权,您可以在创建文件后运行sudo chmod命令。如需更多信息,请阅读 命令生成器 - 由 root 拥有的 Linux 文件。docker run --rm -v $(pwd)/command_generator_data:/data $IMAGE \ command_generator_vars gcp_setup_logging_monitoring \ --output-data-file /data/logging-monitoring.yml
$ docker run --rm -v $(pwd)/command_generator_data:/data $IMAGE \ command_generator_vars gcp_setup_logging_monitoring \ --output-data-file /data/logging-monitoring.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行这些命令时,会创建一个
command_generator_data/logging-monitoring.yml模板文件。注意在以下示例中,
ansible_config_path是可选的。此模板文件类似于以下内容:-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.1.4. 更新数据文件 复制链接链接已复制到粘贴板!
如果不需要参数,请从配置文件中删除该参数。
流程
-
编辑
command_generator_data/logging-monitoring.yml文件并设置以下参数: -
ansible_config_path默认用作ansible-on-cloud 产品的标准配置,但如果您的环境中有额外的要求,则可以自行指定。 -
cloud_credentials_path是您的凭证的绝对路径。这必须是绝对路径。 -
deployment_name是部署的名称。 -
组件(可选)您要在其上执行设置的组件类型。默认为 [ "controller", "hub" ],这意味着在自动化控制器和自动化中心上都启用了日志记录监控。 -
monitoring_enabled(可选)设置为true以启用监控,否则为false。默认为false。 -
logging_enabled(可选)设置为true以启用日志记录,否则为false。默认为false。 default_collector_interval(可选)是监控数据必须发送到 Google Cloud 的频率。默认为 59s。注意此服务的 Google 成本取决于该定期性,因此收集器间隔的值越高,其成本越低。
不要设置小于 59 秒的值。
注意如果禁用了监控和日志记录,则 'default_collector_interval' 的值会自动设置为
0。
填充数据文件后,它应类似于以下内容:
以下示例提供了以下值:
本节中描述的可选参数在下面的数据文件示例中被忽略。playbook 使用从数据文件忽略的任何可选参数的默认值。如果要覆盖可选参数的默认值,则必须将其包含在数据文件中并分配一个值。
gcp_setup_logging_monitoring: cloud_credentials_path: ~/secrets/GCP-secrets.json deployment_name: AnsibleAutomationPlatform extra_vars:
gcp_setup_logging_monitoring:
cloud_credentials_path: ~/secrets/GCP-secrets.json
deployment_name: AnsibleAutomationPlatform
extra_vars:
9.1.5. 生成 playbook 复制链接链接已复制到粘贴板!
若要生成 playbook,请运行命令生成器来生成 CLI 命令。
docker run --rm -v $(pwd)/command_generator_data:/data $IMAGE command_generator gcp_setup_logging_monitoring \ --data-file /data/logging-monitoring.yml
docker run --rm -v $(pwd)/command_generator_data:/data $IMAGE command_generator gcp_setup_logging_monitoring \
--data-file /data/logging-monitoring.yml
提供以下命令:
docker run --rm --env PLATFORM=GCP -v </path/to/gcp/service-account.json>:/home/runner/.gcp/credentials:ro \ --env ANSIBLE_CONFIG=../gcp-ansible.cfg --env DEPLOYMENT_NAME=<deployment_name> --env GENERATE_INVENTORY=true \ $IMAGE redhat.ansible_on_clouds.gcp_setup_logging_monitoring -e 'gcp_deployment_name=<deployment_name> \ gcp_service_account_credentials_json_path=/home/runner/.gcp/credentials monitoring_enabled=<monitoring_enabled> \ logging_enabled=<logging_enabled> default_collector_interval=<interval>'
docker run --rm --env PLATFORM=GCP -v </path/to/gcp/service-account.json>:/home/runner/.gcp/credentials:ro \
--env ANSIBLE_CONFIG=../gcp-ansible.cfg --env DEPLOYMENT_NAME=<deployment_name> --env GENERATE_INVENTORY=true \
$IMAGE redhat.ansible_on_clouds.gcp_setup_logging_monitoring -e 'gcp_deployment_name=<deployment_name> \
gcp_service_account_credentials_json_path=/home/runner/.gcp/credentials monitoring_enabled=<monitoring_enabled> \
logging_enabled=<logging_enabled> default_collector_interval=<interval>'
运行提供的命令以运行 playbook。
此过程可能需要一些时间,并提供类似如下的输出: