RDS Oracle에 대한 데이터베이스 모니터링 설정

데이터베이스 모니터링은 쿼리 샘플을 노출하여 다양한 워크로드를 프로파일링하고 문제를 진단함으로써 Oracle 데이터베이스에 대한 심층적인 가시성을 제공합니다.

Agent는 읽기 전용 사용자로 로그인하여 데이터베이스에서 직접 원격 분석을 수집합니다.

시작 전 참고 사항

지원되는 Oracle 버전
11g, 12c, 18c, 19c, 21c
지원되는 에이전트 버전
7.53.0 이상
성능에 미치는 영향
데이터베이스 모니터링에 대한 기본 Agent 설정은 변경하지 않는 것이 좋으나 수집 간격 및 쿼리 샘플링 속도와 같은 설정은 필요에 맞게 조정할 수 있습니다. 대부분의 워크로드에서 Agent는 데이터베이스에서 쿼리 실행 시간의 1% 미만, CPU의 1% 미만을 나타냅니다.

데이터베이스 모니터링은 기본 Agent 위에서 통합으로 실행됩니다(벤치마크 참조).
프록시프록시, 로드 밸런서 및 연결 풀러
Agent는 모니터링 중인 호스트에 직접 연결해야 합니다. Agent 는 프록시, 로드 밸런서 또는 연결 풀러를 통해 데이터베이스에 연결하면 안 됩니다. 각 Agent는 기본 호스트 이름을 알고 있어야 하며 장애 조치의 경우에도 수명 기간 동안 단일 호스트를 고수해야 합니다. Datadog Agent가 실행되는 동안 다른 호스트에 연결하면 메트릭 값이 올바르지 않게 됩니다.
데이터 보안 고려 사항
Agent가 데이터베이스에서 수집하는 데이터와 해당 데이터의 보안을 보장하는 방법에 대한 자세한 내용은 민감한 정보를 참조하세요.

설정

Oracle 데이터베이스에서 데이터베이스 모니터링을 활성화하려면 다음 단계를 완료하세요.

  1. Datadog 사용자 생성
  2. 사용자에게 데이터베이스 액세스 권한 부여
  3. Agent 설치
  4. Agent 설정
  5. Oracle 통합 설치 및 인증
  6. 설정 검증

Datadog 사용자 생성

레거시 Oracle 통합을 이미 설치했고 사용자가 이미 존재한다면 이 단계를 건너뛸 수 있습니다.

읽기 전용 로그인을 생성하여 서버에 연결하고 필요한 권한을 부여하세요.

CREATE USER datadog IDENTIFIED BY <YOUR_PASSWORD>;

사용자에게 데이터베이스에 대한 액세스 권한 부여

grant create session to datadog ;
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$SESSION','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATABASE','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$CONTAINERS','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$SQLSTATS','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$SQL','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$INSTANCE','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$SQL_PLAN_STATISTICS_ALL','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_FEATURE_USAGE_STATISTICS','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$PROCESS','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$CON_SYSMETRIC','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('CDB_TABLESPACE_USAGE_METRICS','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('CDB_TABLESPACES','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$SQLCOMMAND','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATAFILE','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$SGAINFO','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$SYSMETRIC','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$PDBS','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('CDB_SERVICES','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$OSSTAT','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$PARAMETER','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$SQL','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$PGASTAT','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ASM_DISKGROUP','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$RSRCMGRMETRIC','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATAGUARD_CONFIG','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATAGUARD_STATS','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$TRANSACTION','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOCKED_OBJECT','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('CDB_DATA_FILES','DATADOG','SELECT',p_grant_option => false);
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_DATA_FILES','DATADOG','SELECT',p_grant_option => false);

비밀번호를 안전하게 저장하기

Store your password using secret management software such as Vault. You can then reference this password as ENC[<SECRET_NAME>] in your Agent configuration files: for example, ENC[datadog_user_database_password]. See Secrets Management for more information.

The examples on this page use datadog_user_database_password to refer to the name of the secret where your password is stored. It is possible to reference your password in plain text, but this is not recommended.

에이전트 설치

Agent를 설치할 위치를 결정하려면 DBM 설치 아키텍처 문서를 참조하세요. Agent에는 외부 Oracle 클라이언트가 필요하지 않습니다.

설치 단계는 Agent 설치 지침을 참조하세요.

Agent 설정

Oracle Agent 구성 파일 /etc/datadog-agent/conf.d/oracle.d/conf.yaml을 생성합니다. 사용 가능한 모든 구성 옵션은 샘플 구성 파일을 참조하세요.

참고: 7.53.0 이하 Agent 릴리스의 설정 하위 디렉터리는 oracle-dbm.d입니다.

init_config:
instances:
  - server: '<RDS_INSTANCE_ENDPOINT_1>:<PORT>'
    service_name: "<SERVICE_NAME>" # Oracle CDB 서비스 이름
    username: 'datadog'
    password: 'ENC[datadog_user_database_password]'
    dbm: true
    tags:  # 선택 사항
      - 'service:<CUSTOM_SERVICE>'
      - 'env:<CUSTOM_ENV>'
  - server: '<RDS_INSTANCE_ENDPOINT_2>:<PORT>'
    service_name: "<SERVICE_NAME>" # Oracle CDB 서비스 이름
    username: 'datadog'
    password: 'ENC[datadog_user_database_password]'
    dbm: true
    tags:  # 선택 사항
      - 'service:<CUSTOM_SERVICE>'
      - 'env:<CUSTOM_ENV>'

모든 Agent 구성이 완료되면 Datadog Agent를 다시 시작합니다.

Oracle 통합 설치 또는 확인

최초 설치

Datadog의 통합 페이지에서 조직에 대한 Oracle 통합을 설치합니다. 그러면 Oracle 데이터베이스의 성능을 모니터링하는 데 사용할 수 있는 Oracle 대시보드가 계정에 설치됩니다.

기존 설치

기존 설치의 경우 설정이 conf.d/oracle-dbm.d/ 디렉토리에 있는지 확인하세요. conf.d/oracle.d/ 디렉토리에서 레거시 설정을 마이그레이션해야 할 수도 있습니다.

Oracle 통합을 레거시 통합에서 새 통합으로 마이그레이션하려면 다음 명령을 사용하세요.

cp /etc/datadog-agent/conf.d/oracle.d/conf.yaml /etc/datadog-agent/conf.d/oracle-dbm.d/conf.yaml

레거시 통합을 비활성화합니다.

mv /etc/datadog-agent/conf.d/oracle.d/conf.yaml /etc/datadog-agent/conf.d/oracle.d/conf.yaml.bak

레거시 통합을 비활성화하면 시스템 메트릭을 두 번 보내는 것을 방지할 수 있습니다.

Agent에는 외부 Oracle 클라이언트가 필요하지 않으므로 새 파라미터 파일 /etc/datadog-agent/conf.d/oracle-dbm.d/conf.yaml에서 jdbc_driver_path 설정 파라미터를 제거합니다 .

설정 확인

Agent의 상태 하위 명령을 실행하고 Checks 섹션에서 oracle을 찾습니다. 시작하려면 Datadog의 DashboardDatabases 페이지로 이동하세요.

커스텀 쿼리

데이터베이스 모니터링은 Oracle 데이터베이스에 대한 커스텀 쿼리를 지원합니다. 사용 가능한 구성 옵션에 대해 자세히 알아보려면 conf.yaml.example을 참조하세요.

커스텀 쿼리를 실행하면 Oracle에서 부과하는 추가 비용 또는 수수료가 발생할 수 있습니다.

참고 자료

추가 유용한 문서, 링크 및 기사: