다음을 통해 공유


PGSQLServerLogs 테이블에 대한 쿼리

Azure Portal에서 이러한 쿼리를 사용하는 방법에 대한 자세한 내용은 Log Analytics 자습서를 참조하세요. REST API는 쿼리를 참조 하세요.

오류 메시지

PostgreSQL 로그의 모든 오류 메시지를 표시합니다.

// To create an alert for this query, click '+ New alert rule'
PGSQLServerLogs
| where ErrorLevel =~ "ERROR"
| order by TimeGenerated desc 
| take 100

치명적인 메시지

PostgreSQL 로그의 모든 심각한 메시지를 표시합니다.

// To create an alert for this query, click '+ New alert rule'
PGSQLServerLogs
| where ErrorLevel =~ "FATAL"
| order by TimeGenerated desc 
| take 100

교착 상태 검색

PostgreSQL 로그에서 교착 상태 이벤트를 검색합니다.

// To create an alert for this query, click '+ New alert rule'
PGSQLServerLogs
| where Message has "deadlock detected"
| order by TimeGenerated desc 
| take 100

서버를 다시 시작합니다.

PostgreSQL 로그에서 서버 종료 및 서버 준비 이벤트를 검색합니다.

// To create an alert for this query, click '+ New alert rule'
PGSQLServerLogs
| where Message has "database system was shut down" or Message has "database system is ready to accept"
| order by TimeGenerated asc
| take 100

수신된 연결

PostgreSQL 로그에서 수신된 연결 메시지를 검색합니다.

// To create an alert for this query, click '+ New alert rule'
PGSQLServerLogs
| where Message has "connection received"
| extend allmatches=extract_all(@'host=(.+)port=(.+)', Message)
| project TimeGenerated, host=allmatches[0][0], port=allmatches[0][1], Message,ProcessId,ErrorLevel, SqlErrorCode
| order by TimeGenerated desc 
| take 100

권한이 부여된 연결

PostgreSQL 로그에서 권한 있는 연결 메시지를 검색합니다.

// To create an alert for this query, click '+ New alert rule'
PGSQLServerLogs
| where Message has "connection authorized"
| extend allmatches=extract_all(@'user=(.+)database=(.\S+)', Message)
| project TimeGenerated, user=trim(@" ",tostring(allmatches[0][0])), database=allmatches[0][1], Message,ProcessId,ErrorLevel, SqlErrorCode
| where  ['user'] !='azuresu' //exclude Azure managed superuser
| order by TimeGenerated desc 
| take 100

연결 실패

PostgreSQL 로그에서 권한 없는(실패한) 연결을 검색합니다.

// To create an alert for this query, click '+ New alert rule'
PGSQLServerLogs
| where Message has "authentication failed" or SqlErrorCode in ('28000', '28P01', '3D000', '53300', '42501','08P01')
| where ErrorLevel =~'FATAL'
| order by TimeGenerated desc 
| take 100

잠금 경합

PostgreSQL 로그에서 잠금 경합을 검색합니다. 매개 변수 log_lock_waits=ON이 필요합니다.

// To create an alert for this query, click '+ New alert rule'
PGSQLServerLogs
| where Message has "still waiting for"
| order by TimeGenerated desc 
| take 100

자동 진공 이벤트

PostgreSQL 로그에서 자동 진공 이벤트를 검색합니다. 'log_autovacuum_min_duration' 매개 변수를 사용하도록 설정해야 합니다.

PGSQLServerLogs
| where Message has "vacuum of table"
| order by TimeGenerated desc 
| take 100

감사 로그

PostgreSQL 로그에서 모든 감사 이벤트를 검색합니다. 감사 로그를 사용하도록 설정해야 합니다.[https://learn.microsoft.com/azure/postgresql/flexible-server/concepts-audit].

PGSQLServerLogs
| where Message contains "AUDIT:"
| order by TimeGenerated desc 
| take 100