중요합니다
Azure Cosmos DB for PostgreSQL은 더 이상 새 프로젝트에 지원되지 않습니다. 새 프로젝트에는 이 서비스를 사용하지 마세요. 대신 다음 두 서비스 중 하나를 사용합니다.
99.999% SLA(가용성 서비스 수준 약정), 인스턴트 자동 크기 조정 및 여러 지역에서 자동 장애 조치(failover)를 사용하는 대규모 시나리오용으로 설계된 분산 데이터베이스 솔루션에는 NoSQL용 Azure Cosmos DB를 사용합니다.
오픈 소스 Citus 확장을 사용하여 분할된 PostgreSQL용 Azure Database for PostgreSQL의 탄력적 클러스터 기능을 사용합니다.
Azure Cosmos DB for PostgreSQL의 데이터베이스 작업 감사 로깅은 PostgreSQL Audit 확장 pgAudit를 통해 사용할 수 있습니다. pgAudit은 자세한 세션 및/또는 개체 감사 로깅을 제공합니다.
컴퓨팅 및 스토리지 스케일링과 같은 작업에 대한 Azure 리소스 수준 로그를 원하는 경우 Azure 활동 로그를 참조하세요.
사용 시 고려 사항
기본적으로 pgAudit 로그 문은 Postgres의 표준 로깅 기능을 사용하여 일반 로그 문과 함께 내보내집니다. Azure Cosmos DB for PostgreSQL에서 나중에 Log Analytics에서 분석하기 위해 Azure Monitor 로그 저장소로 보낼 모든 로그를 구성할 수 있습니다.
pgAudit 설치
pgAudit를 설치하려면 서버의 공유 미리 로드 라이브러리에 포함시켜야 합니다.
shared_preload_libraries 매개 변수를 변경하려면 클러스터를 다시 시작해야 적용됩니다. 또한, pgAudit 설정은 클러스터의 노드별로 지정됩니다. 모든 노드에서 감사를 사용하도록 설정하려면 코디네이터 및 작업자 노드 설정 모두에 감사 설정을 적용해야 합니다.
Azure Portal 사용:
Azure Cosmos DB for PostgreSQL 클러스터를 선택합니다.
사이드바에서 코디네이터(또는 작업자 노드) 매개 변수를 선택합니다.
shared_preload_libraries매개 변수를 검색합니다.pgaudit를 선택하고 변경 내용을 저장합니다. Azure Cosmos DB for PostgreSQL 클러스터가 다시 시작됩니다.
psql에서 다음 쿼리를 실행하여 pgaudit가 shared_preload_libraries에 로드되었는지 확인할 수 있습니다.
show shared_preload_libraries;쿼리 결과에 pgaudit가 표시됩니다.
psql에 연결하여 citus 버전 11.0 이상에 대해 다음 쿼리를 실행합니다.
BEGIN; SET LOCAL citus.enable_metadata_sync = false; SELECT create_extension('pgaudit'); COMMIT;citus 11.0보다 이전 버전의 경우:
BEGIN; SET LOCAL citus.enable_object_propagation= false; SELECT create_extension('pgaudit'); COMMIT;
pgAudit 설정
pgAudit를 사용하면 세션 또는 개체 감사 로깅을 구성할 수 있습니다. 세션 감사 로깅은 실행된 문의 자세한 로그를 내보냅니다. 개체 감사 로깅은 특정 관계로 범위가 지정된 감사입니다. 하나 또는 두 가지 로깅 유형을 설정하도록 선택할 수 있습니다.
pgAudit를 사용하도록 설정한 후 해당 매개 변수를 구성하여 로깅을 시작할 수 있습니다. pgAudit를 구성하기 위해 아래 지침을 따를 수 있습니다. Azure Portal 사용:
Azure Cosmos DB for PostgreSQL 클러스터를 선택합니다.
사이드바에서 서버 매개 변수를 선택합니다.
pgaudit매개 변수를 검색합니다.편집할 적절한 설정 매개 변수를 선택합니다. 예를 들어 로깅을 시작하려면
pgaudit.log를WRITE로 설정합니다.
저장 단추를 선택하여 변경 내용을 저장합니다.
pgAudit 설명서는 각 매개 변수의 정의를 제공합니다. 먼저 매개 변수를 테스트하고 예상대로 동작하는지 확인합니다.
참고
pgaudit.log_client를 On으로 설정하면 로그를 파일에 기록하는 대신 psql과 같은 클라이언트 프로세스로 리디렉션합니다. 이 설정은 일반적으로 사용하지 않도록 설정해야 합니다.
pgaudit.log_level은 pgaudit.log_client가 on인 경우에만 사용하도록 설정됩니다.
참고
Azure Cosmos DB for PostgreSQL에서는 pgAudit 설명서에 설명된 대로 마이너스 기호를 사용하는 바로 가기를 통해 pgaudit.log를 설정할 수 없습니다. 모든 필수 명령어 클래스(READ, WRITE 등)는 개별적으로 지정해야 합니다.
감사 로그 형식
각 감사 항목은 로그 줄 시작 부분 근처의 AUDIT:로 표시됩니다. 항목 나머지 부분의 형식은 pgAudit 설명서에 자세히 설명되어 있습니다.
감사 로그 보기
로그에 액세스하는 방법은 선택한 엔드포인트에 따라 다릅니다. Azure Storage의 경우에는 로그 스토리지 계정 문서를 참조하세요. Event Hubs에 대해서는 Azure 로그 스트림 문서를 참조하세요.
Azure Monitor 로그의 경우 선택한 작업 영역으로 로그가 전송됩니다. Postgres 로그는 AzureDiagnostics 컬렉션 모드를 사용하므로, AzureDiagnostics 테이블에서 쿼리될 수 있습니다. 테이블의 필드는 아래에 설명되어 있습니다. 쿼리와 경고에 대한 자세한 정보는 Azure Monitor 로그 쿼리 개요에서 알아 보세요.
이 쿼리를 사용하여 시작할 수 있습니다. 쿼리를 기반으로 한 경고를 구성할 수 있습니다.
지난 하루 동안 특정 서버의 Postgres 로그에서 모든 pgAudit 항목을 검색합니다.
AzureDiagnostics
| where Resource == "myservername"
| where Category == "PostgreSQLlogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"