RDS Oracle에 대한 데이터베이스 모니터링 설정
Database Monitoring provides deep visibility into your Oracle databases by exposing query samples to profile your different workloads and diagnose issues.
Agent는 읽기 전용 사용자로 로그인하여 데이터베이스에서 직접 원격 분석을 수집합니다.
시작 전 참고 사항
- Supported Oracle versions
- 11g, 12c, 18c, 19c, 21c
- Supported Agent version
- 7.53.0+
- 성능에 미치는 영향
- 데이터베이스 모니터링에 대한 기본 Agent 설정은 변경하지 않는 것이 좋으나 수집 간격 및 쿼리 샘플링 속도와 같은 설정은 필요에 맞게 조정할 수 있습니다. 대부분의 워크로드에서 Agent는 데이터베이스에서 쿼리 실행 시간의 1% 미만, CPU의 1% 미만을 나타냅니다.
데이터베이스 모니터링은 기본 Agent 위에서 통합으로 실행됩니다(벤치마크 참조). - 프록시프록시, 로드 밸런서 및 연결 풀러
- Agent는 모니터링 중인 호스트에 직접 연결해야 합니다. Agent 는 프록시, 로드 밸런서 또는 연결 풀러를 통해 데이터베이스에 연결하면 안 됩니다. 각 Agent는 기본 호스트 이름을 알고 있어야 하며 장애 조치의 경우에도 수명 기간 동안 단일 호스트를 고수해야 합니다. Datadog Agent가 실행되는 동안 다른 호스트에 연결하면 메트릭 값이 올바르지 않게 됩니다.
- 데이터 보안 고려 사항
- Agent가 데이터베이스에서 수집하는 데이터와 해당 데이터의 보안을 보장하는 방법에 대한 자세한 내용은 민감한 정보를 참조하세요.
설정
Oracle 데이터베이스에서 데이터베이스 모니터링을 활성화하려면 다음 단계를 완료하세요.
- Datadog 사용자 생성
- 사용자에게 데이터베이스 액세스 권한 부여
- Agent 설치
- Agent 설정
- Oracle 통합 설치 및 인증
- 설정 검증
Datadog 사용자 생성
If you already have the legacy Oracle integration installed, the user already exists, and you can skip this step.
Create a read-only login to connect to your server and grant the required permissions:
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
レガシーインテグレーションを非アクティブにすると、システムメトリクスが 2 回送信されなくなります。
Datadog Agent は外部の Oracle クライアントを必要としないので、新しいパラメーターファイル /etc/datadog-agent/conf.d/oracle-dbm.d/conf.yaml
から jdbc_driver_path
構成パラメーターを削除します。
설정 확인
Agent의 상태 하위 명령을 실행하고 Checks 섹션에서 oracle
을 찾습니다. 시작하려면 Datadog의 Dashboard 및 Databases 페이지로 이동하세요.
커스텀 쿼리
데이터베이스 모니터링은 Oracle 데이터베이스에 대한 커스텀 쿼리를 지원합니다. 사용 가능한 구성 옵션에 대해 자세히 알아보려면 conf.yaml.example을 참조하세요.
커스텀 쿼리를 실행하면 Oracle에서 부과하는 추가 비용 또는 수수료가 발생할 수 있습니다.
참고 자료