9장. 모니터링 및 로깅
Google Cloud Platform UI에서 시각화할 수 있는 Google Cloud Platform 모니터링 시스템으로 메트릭을 보낼 수 있습니다. GCP Marketplace 지표 및 로깅의 Ansible Automation Platform은 이러한 메트릭을 GCP로 보내는 비용이 있기 때문에 기본적으로 비활성화되어 있습니다. 자세한 내용은 Cloud Monitoring 및 Cloud Logging 을 각각 참조하십시오.
GCP 모니터링 및 로깅을 설정할 수 있습니다.
- 배포 시 배포 시 모니터링 및 로깅 설정을 참조하십시오.
- 배포 후
9.1. 배포 후 모니터링 및 로깅 설정
registry.redhat.com에서 사용할 수 있는 gcp_setup_logging_monitoring 플레이북을 사용하여 배포 후 로깅 및 모니터링을 시작하거나 중지할 수 있습니다.
9.1.1. 필요한 권한
로깅 및 모니터링을 설정하려면 다음과 같은 GCP IAM 권한이 있어야 합니다.
required-roles: Service Account User Compute Instance Admin (v1) required-permissions: cloudsql.instances.connect cloudsql.instances.get cloudsql.instances.login cloudsql.users.update compute.addresses.get compute.addresses.list compute.instances.delete compute.instances.get compute.instances.list compute.instances.setLabels compute.zoneOperations.get deploymentmanager.deployments.list deploymentmanager.manifests.get deploymentmanager.manifests.list file.instances.get file.instances.list file.instances.update file.operations.get iap.tunnelInstances.accessViaIAP logging.logEntries.create monitoring.timeSeries.create resourcemanager.projects.get runtimeconfig.variables.create runtimeconfig.variables.get runtimeconfig.variables.list runtimeconfig.variables.update secretmanager.secrets.create secretmanager.secrets.delete secretmanager.secrets.get secretmanager.versions.add secretmanager.versions.get secretmanager.versions.list servicenetworking.operations.get servicenetworking.services.addPeering serviceusage.services.list
9.1.2. ansible-on-clouds-ops 컨테이너 이미지 가져오기
Clouds 운영 컨테이너에서 Ansible의 Docker 이미지를 가져와 기반 배포 버전에 맞게 조정합니다.
docker 이미지를 가져오기 전에 docker를 사용하여 registry.redhat.io에 로그인했는지 확인합니다. 다음 명령을 사용하여 registry.redhat.io에 로그인합니다.
$ docker login registry.redhat.io
레지스트리 로그인에 대한 자세한 내용은 레지스트리 인증을 참조하십시오.
예를 들어 기본 배포 버전이 2.4.20230630-00인 경우 태그 2.4.20230630을 사용하여 운영 이미지를 가져와야 합니다.
다음 명령을 사용합니다.
$ export IMAGE=registry.redhat.io/ansible-on-clouds/ansible-on-clouds-ops-rhel9:2.4.20230630 $ docker pull $IMAGE --platform=linux/amd64
9.1.3. ansible-on-clouds-ops 컨테이너를 실행하여 데이터 파일 생성
다음 명령은 필요한 데이터 파일을 생성합니다. 이러한 명령은 디렉터리를 생성하고, 채워지면 플레이북을 생성하는 데 사용되는 빈 데이터 템플릿을 생성합니다.
절차
구성 파일을 저장할 폴더를 생성합니다.
$ mkdir command_generator_data
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
이러한 명령을 실행하면
command_generator_data/logging-monitoring.yml템플릿 파일이 생성됩니다.참고다음 예제 파일에서
ansible_config_path는 선택 사항입니다.이 템플릿 파일은 다음과 유사합니다.
gcp_setup_logging_monitoring: ansible_config_path: cloud_credentials_path: deployment_name: extra_vars: components: default_collector_interval: logging_enabled: monitoring_enabled:
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으로 설정됩니다.
데이터 파일을 채우면 다음과 같아야 합니다.
다음 값은 예제로 제공됩니다.
섹션에 설명된 선택적 매개 변수는 아래 데이터 파일 예제에서 생략됩니다. 플레이북은 데이터 파일에서 발생하는 선택적 매개 변수에 기본값을 사용합니다. 선택적 매개변수의 기본값을 재정의하려면 데이터 파일에 포함되고 값을 할당해야 합니다.
gcp_setup_logging_monitoring: cloud_credentials_path: ~/secrets/GCP-secrets.json deployment_name: AnsibleAutomationPlatform extra_vars:
9.1.5. 플레이북 생성
플레이북을 생성하려면 명령 생성기를 실행하여 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 --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/credentials:/home/runner/.gcp/credentials:ro \ --env ANSIBLE_CONFIG=../gcp-ansible.cfg --env DEPLOYMENT_NAME=mu-deployment \ --env GENERATE_INVENTORY=true $IMAGE redhat.ansible_on_clouds.gcp_setup_logging_monitoring \ -e 'gcp_deployment_name=mu-deployment \ gcp_service_account_credentials_json_path=/home/runner/.gcp/credentials components=["hubs","controllers"]\ monitoring_enabled=True logging_enabled=True default_collector_interval=60s'
프로세스는 시간이 걸릴 수 있으며 다음과 유사한 출력을 제공합니다.
TASK [redhat.ansible_on_clouds.setup_logging_monitoring : Update runtime variable logging_enabled] *** changed: [<user_name> -> localhost] TASK [redhat.ansible_on_clouds.setup_logging_monitoring : Update runtime variable monitoring_enabled] *** changed: [<user_name> -> localhost] PLAY RECAP ********************************************************************* <user_name> : ok=20 changed=6 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0