Azure Database for PostgreSQL을 사용하면 Postgres의 표준 로그를 구성하고 액세스할 수 있습니다. 해당 로그는 구성 오류 및 최적이 아닌 성능 문제를 식별하고, 문제를 해결하고, 복구하는 데 사용될 수 있습니다. 구성 및 액세스할 수 있는 로깅 정보에는 오류, 쿼리 정보, autovacuum 레코드, 연결 및 검사점이 있습니다. (트랜잭션 로그에 대한 액세스는 사용할 수 없습니다).
감사 로깅은 pgaudit Postgres 확장을 통해 가능합니다. 자세히 알아보려면 감사 개념 문서를 참조하세요.
로깅 구성
로깅 서버 매개 변수를 사용하면 서버에서 로깅을 구성할 수 있습니다. Postgres 로그 매개 변수에 대한 자세한 내용을 알아보려면 Postgres 설명서의 로그할 시기 및 로그할 항목 섹션을 참조하세요. 전부는 아니지만 대부분의 Postgres 로깅 매개 변수는 Azure Database for PostgreSQL에서 구성할 수 있습니다.
Azure Database for PostgreSQL에서 매개 변수를 구성하는 방법을 알아보려면 포털 설명서 또는 CLI 설명서를 참조하세요.
참고
많은 양의 로그를 구성하려면 상당한 성능 오버헤드를 추가할 수 있습니다. 예를 들어, 로그 기록은 성능에 영향을 미칠 수 있습니다.
액세스 로그
Azure Database for PostgreSQL은 Azure Monitor 진단 설정과 통합됩니다. 진단 설정을 사용하면 분석 및 경고를 위해 JSON 형식의 PostgreSQL 로그를 Azure Monitor 로그로 보낼 수 있습니다. Event Hubs로 스트리밍하거나 Azure Storage에 보관할 수도 있습니다.
로그에 대한 액세스 제어
서버 로그에 대한 액세스는 Azure Role-Based RBAC(Access Control)를 통해 제어됩니다. 서버에 대한 읽기 액세스를 제공하는 모든 역할은 로그를 다운로드할 수도 있습니다. 여기에는 다음과 같은 기본 제공 역할이 포함됩니다.
- 판독기
- 모니터링 리더기
- Log Analytics 판독기
- 또는 동등한 사용자 지정 역할
경고
로그에는 로깅 구성에 따라 자격 증명과 같은 중요한 정보가 포함될 수 있습니다.
데이터 보존 정책 및 가격 책정
Event Hubs 또는 Storage 계정으로 전송된 로그의 경우 일정 기간 후에 데이터를 자동으로 삭제하도록 보존 정책을 설정할 수 있습니다. Log Analytics 비용은 다음 두 가지 요인에 따라 달라집니다.
- 데이터 수집: 요금은 작업 영역에 수집되는 데이터 볼륨을 기반으로 합니다.
- 데이터 보존: Log Analytics 작업 영역에 저장된 로그는 처음 31일 동안 무료로 유지됩니다. 이 무료 보존 기간 외에는 매달 보존되는 데이터 양(GB)을 기준으로 일일 pro-rata 기준으로 계산된 데이터 저장에 대한 요금이 부과됩니다.
데이터 수집 및 보존과 관련된 비용을 분석하려면 Azure Monitor 가격 책정 페이지를 방문하세요.
로그 형식
다음 표에서는 PostgreSQLLogs 형식의 필드를 설명합니다. 선택한 출력 엔드포인트에 따라 포함된 필드와 표시되는 순서가 다를 수 있습니다.
| 필드 | 설명 |
|---|---|
| TenantId | 테넌트 ID |
| SourceSystem | Azure |
| 생성 시간 [UTC] | UTC에 로그가 기록된 때의 타임스탬프 |
| Type | 로그의 형식 항상 AzureDiagnostics |
| SubscriptionId | 서버가 속한 구독의 GUID |
| ResourceGroup | 서버가 속한 리소스 그룹의 이름 |
| ResourceProvider | 리소스 공급자의 이름. 항상 MICROSOFT.DBFORPOSTGRESQL |
| ResourceType | FlexibleServers |
| ResourceId | 리소스 URI |
| 리소스 | 서버의 이름 |
| 범주 | PostgreSQLLogs |
| OperationName | LogEvent |
| errorLevel_s | 로깅 수준(예: LOG, ERROR, NOTICE) |
| processId_d | PostgreSQL 백 엔드의 프로세스 ID |
| sqlerrcode_s | SQLSTATE 코드에 대한 SQL 표준 규칙을 따르는 PostgreSQL 오류 코드 |
| 메시지 | 기본 로그 메시지 |
| 세부 정보 | 보조 로그 메시지(해당하는 경우) |
| ColumnName | 열 이름(해당하는 경우) |
| SchemaName | 스키마 이름(해당하는 경우) |
| DatatypeName | 데이터 형식 이름(해당하는 경우) |
| _ResourceId | 리소스 URI |
알려진 제한 사항
- 로그 이벤트 크기: 65KB보다 큰 쿼리 계획 또는 로그 메시지는 Azure Monitor 로그에 캡처되지 않습니다. 플랫폼 전체 Azure Monitor 제한입니다. 따라서 복잡한 쿼리(예: 중첩 뷰와 관련된 쿼리)는 서버 로그에서 불완전하거나 누락된 쿼리 계획 출력을 생성할 수 있습니다.
- 기타 제약 조건: 경고 규칙 할당량 및 쿼리 결과 크기와 같은 다른 플랫폼 전체 제한이 Azure Monitor 로그에 적용됩니다. 전체 목록을 보려면 Azure Monitor 서비스 제한 설명서를 참조하여 자세한 내용을 확인하세요.