데이터베이스 서버의 로그 출력을 어딘가에 저장하는 것이 좋습니다./dev/null
. 로그 출력은 문제를 진단 할 때 매우 중요합니다.
11062_11344오류
레벨에는 응용 프로그램의 SQL 소스 코드가 표시 될 수 있으며 일부 데이터 행의 일부가 포함될 수도 있습니다. 데이터, 이벤트 및 관련 정보를 기록하는 것은이 시설의 의도 된 기능이므로 누설이나 버그가 아닙니다. 서버 로그가 적절하게 승인 된 사람들에게만 보이도록하십시오.
로그 출력은 방대한 양 (특히 더 높은 디버그 레벨)이므로 무기한으로 저장하고 싶지 않습니다. 당신은 필요합니다회전11875_11981
간단히 지시하는 경우StderrofPostgres
파일로 로그 출력이 있지만 로그 파일을 자르는 유일한 방법은 서버를 중지하고 다시 시작하는 것입니다. 사용하는 경우이 허용 될 수 있습니다.postgresql개발 환경에서는이 동작이 허용되는 생산 서버는 거의 없습니다.
더 나은 접근 방식은 서버를 보내는 것입니다Stderr12479_12627logging_collector
totrue
inpostgresql.conf
. 이 프로그램의 제어 매개 변수는에 설명되어 있습니다.섹션 20.8.1. 이 접근법을 사용하여 머신 읽기에서 로그 데이터를 캡처 할 수도 있습니다CSV(Comma-separated values) 형식.
또는 다른 서버 소프트웨어와 함께 이미 사용중인 경우 외부 로그 회전 프로그램을 사용하는 것이 좋습니다. 예를 들어,ROTATELOGS도구 포함아파치분포를 사용할 수 있습니다PostgreSQL. 이를 수행하는 한 가지 방법은 서버의 파이프입니다.Stderr원하는 프로그램에 출력. 로 서버를 시작하면PG_CTL
,Stderr이미 리디렉션되었습니다Stdout, 예를 들어 파이프 명령 만 있으면됩니다.
PG_CTL 시작 | rotateLogs/var/log/pgsql_log 86400
설정하여 이러한 접근 방식을 결합 할 수 있습니다Logrotate생성 된 로그 파일을 수집하려면PostgreSQL내장 로깅 수집기. 이 경우 로깅 수집기는 로그 파일의 이름과 위치를 정의하고Logrotate주기적 으로이 파일을 보관합니다. 로그 회전을 시작할 때Logrotate응용 프로그램이 새 파일에 추가 출력을 보내야하는지 확인해야합니다. 이것은 일반적으로 A로 수행됩니다.postrotate
a를 보내는 스크립트Sighup
응용 프로그램에 신호를 보내고 로그 파일을 다시 연마합니다. 안에PostgreSQL, 당신은 실행할 수 있습니다PG_CTL
withLogrotate
대신 옵션. 서버 가이 명령을 수신하면 서버는 로깅 구성에 따라 새 로그 파일로 전환하거나 기존 파일을 다시 연집합니다 (참조섹션 20.8.1).
정적 로그 파일 이름을 사용하면 최대 열기 파일 제한에 도달하거나 파일 테이블 오버플로가 발생하면 서버가 로그 파일을 다시 열지 못할 수 있습니다. 이 경우 로그 메시지는 성공적인 로그 회전이 될 때까지 이전 로그 파일로 전송됩니다. 만약에Logrotate로그 파일을 압축하고 삭제하도록 구성되어 있으면 서버 가이 기간에 로그인 한 메시지를 잃을 수 있습니다. 이 문제를 피하려면 로깅 컬렉터를 구성하여 로그 파일 이름을 동적으로 할당하고 a를 사용하도록 구성 할 수 있습니다.PREROTATE
열기 로그 파일을 무시하는 스크립트.
로그 출력 관리에 대한 또 다른 프로덕션 등급 접근 방식Syslogand letSyslog파일 회전을 다루십시오. 이렇게하려면 구성 매개 변수를 설정log_destination
toSyslog
(로그인Syslog만) inpostgresql.conf
. 그런 다음를 보낼 수 있습니다.Sighup
신호Syslog16226_16341Logrotate프로그램은 로그 파일에서 작동하도록 구성 할 수 있습니다Syslog.
많은 시스템에서Syslog특히 큰 로그 메시지에서는 그다지 신뢰할 수 없습니다. 메시지가 가장 필요할 때 자르거나 삭제할 수 있습니다. 또한, onLinux, Syslog각 메시지를 디스크로 플러시하여 성능이 저하됩니다. (A를 사용할 수 있습니다.“-
”에서 파일 이름의 시작시16995_17003동기화 비활성화를위한 구성 파일)
위에서 설명한 모든 솔루션은 구성 가능한 간격으로 새 로그 파일을 시작하는 것을 처리하지만 오래되고 사용하지 않는 로그 파일의 삭제를 처리하지는 않습니다. 기존 로그 파일을 주기적으로 삭제하기 위해 배치 작업을 설정하려고 할 것입니다. 또 다른 가능성은 이전 로그 파일을 주기적으로 덮어 쓰도록 회전 프로그램을 구성하는 것입니다.
PGBADGER정교한 로그 파일 분석을 수행하는 외부 프로젝트입니다.check_postgres로그 파일에 중요한 메시지가 나타날 때 Nagios 알림을 제공하고 다른 많은 특별한 조건을 감지합니다.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면