데이터베이스 서버의 무지개 토토 출력을 그냥 버리는 것보다 어딘가에 저장하는 것이 좋습니다./dev/null. 무지개 토토 출력은 문제를 진단할 때 매우 중요합니다.
서버 로그는 민감한 정보를 포함할 수 있으며 저장 방법, 위치, 라우팅 대상에 관계없이 보호되어야 합니다. 예를 들어 일부 DDL 문에는 일반 텍스트 비밀번호나 기타 인증 세부정보가 포함될 수 있습니다. 에 기록된 문오류레벨은 애플리케이션의 SQL 소스 코드를 표시할 수 있으며 데이터 행의 일부를 포함할 수도 있습니다. 데이터, 이벤트 및 관련 정보를 기록하는 것은 이 시설의 의도된 기능이므로 이는 유출이나 버그가 아닙니다. 서버 로그는 적절하게 승인된 사람에게만 표시되도록 하세요.
무지개 토토 출력은 방대해지는 경향이 있으므로(특히 더 높은 디버그 수준에서) 이를 무기한 저장하고 싶지 않을 것입니다. 당신은해야합니다회전새 로그 파일이 시작되고 합리적인 시간이 지나면 이전 로그 파일이 제거되도록 하는 로그 파일입니다.
당신이 단순히 지시한다면stderr의포스트그레스파일에 저장하면 로그 출력이 표시되지만 로그 파일을 자르는 유일한 방법은 서버를 중지하고 다시 시작하는 것입니다. 다음을 사용하는 경우 이는 허용될 수 있습니다.PostgreSQL개발 환경에서는 이 동작을 허용할 수 있는 프로덕션 서버가 거의 없습니다.
더 나은 접근 방식은 서버의 정보를 보내는 것입니다.stderr일종의 로그 순환 프로그램에 출력됩니다. 구성 매개변수를 설정하여 사용할 수 있는 로그 회전 기능이 내장되어 있습니다.logging_collector에참inpostgresql.conf. 이 프로그램의 제어 매개변수는 다음에 설명되어 있습니다.섹션 19.8.1. 이 접근 방식을 사용하여 기계가 읽을 수 있는 무지개 토토 데이터를 캡처할 수도 있습니다.CSV(쉼표로 구분된 값) 형식.
또는 이미 다른 서버 소프트웨어와 함께 사용하고 있는 경우 외부 무지개 토토 순환 프무지개 토토램을 사용하는 것이 더 나을 수도 있습니다. 예를 들어,rotatelogs도구가 포함됨아파치배포와 함께 사용할 수 있음PostgreSQL. 이렇게 하려면 서버의stderr원하는 프로그램으로 출력합니다. 다음으로 서버를 시작하면pg_ctl그러면stderr이미 다음으로 리디렉션되었습니다.stdout, 따라서 파이프 명령만 있으면 됩니다. 예를 들면 다음과 같습니다.
pg_ctl 시작 | Rotatelogs /var/log/pgsql_log 86400
로그 출력을 관리하는 또 다른 프로덕션 등급 접근 방식은 로그 출력을 다음으로 보내는 것입니다.syslog그리고 하자syslog파일 회전을 처리합니다. 이렇게 하려면 구성 매개변수를 설정하세요.log_destination에syslog(무지개 토토인하려면syslog만)postgresql.conf. 그러면 다음을 보낼 수 있습니다.SIGHUP에 대한 신호syslog데몬이 새 로그 파일 쓰기를 시작하도록 강제할 때마다. 로그 회전을 자동화하려면,로그회전다음의 로그 파일과 작동하도록 프로그램을 구성할 수 있습니다.syslog.
그러나 많은 시스템에서는,syslog특히 대용량 무지개 토토 메시지의 경우 신뢰성이 매우 낮습니다. 가장 필요할 때 메시지를 자르거나 삭제할 수 있습니다. 또한, 에리눅스, syslog각 메시지를 디스크로 플러시하여 성능이 저하됩니다. (당신은 사용할 수 있습니다“-”파일 이름 시작 부분에syslog동기화를 비활성화하는 구성 파일입니다.)
위에 설명된 모든 솔루션은 구성 가능한 간격으로 새 무지개 토토 파일 시작을 관리하지만 오래되고 더 이상 유용하지 않은 무지개 토토 파일의 삭제는 처리하지 않습니다. 오래된 무지개 토토 파일을 주기적으로 삭제하도록 일괄 작업을 설정하고 싶을 수도 있습니다. 또 다른 가능성은 오래된 무지개 토토 파일을 주기적으로 덮어쓰도록 순환 프무지개 토토램을 구성하는 것입니다.
pgBadger정교한 무지개 토토 파일 분석을 수행하는 외부 프로젝트입니다.check_postgres중요한 메시지가 무지개 토토 파일에 나타날 때 Nagios 경고를 제공할 뿐만 아니라 기타 여러 가지 특별한 상황이 감지될 때 알림을 제공합니다.