8장
로깅 조정
Directory Server는 표 8-1에 요약된 것처럼 여러 가지 로그 유형을 제공합니다. 이 장에서는 이러한 로그 유형을 처리하는 방법에 대해 설명합니다.
표 8-1    Directory Server에서 사용하는 로그 유형
|
로그
|
유형
|
용도
|
|
액세스
|
플랫 파일
|
디렉토리 사용 패턴 평가, 구성 설정 확인, 액세스 문제 진단
|
|
감사
|
플랫 파일
|
보안 및 데이터 무결성에 대한 감사 기록 제공
|
|
변경 로그
|
데이터베이스
|
복제본 간의 동기화 허용
|
|
오류
|
플랫 파일
|
디렉토리 배포 디버깅
|
|
레트로 변경 로그
|
데이터베이스
|
이전 버전과의 호환성 허용
|
|
트랜잭션
|
데이터베이스
|
데이터베이스 무결성 유지
|
대규모 배포 시 로그에 쓰면 디스크 사용량이 많아져서 성능이 크게 저하될 수 있습니다. 대규모 시스템의 많은 로깅 작업으로 인한 잠재적 입출력 병목을 감안하면 자체 디스크 컨트롤러가 있는 별도의 물리적 디스크에 로그를 저장하는 것이 좋습니다.
액세스 로깅
액세스 로그에는 클라이언트 연결 및 수행된 작업에 대한 자세한 정보가 포함되어 있습니다. 액세스 문제를 진단하거나 서버 구성을 확인하고 서버 사용 패턴을 평가할 때 액세스 로그는 큰 도움이 됩니다. 하지만 기본 로깅 수준은 대부분의 배포 시 상당한 디스크 작업을 초래하므로 서버 성능이 저하될 수 있습니다.
액세스 로그는 유용한 문제 해결 정보를 제공하지만 입출력 병목이 될 수도 있습니다. 디렉토리가 배포된 후 오류나 성능 문제 없이 실행되면 액세스 로깅을 비활성화하는 것이 좋습니다. 작업 환경에서 액세스 로깅이 필요하면 로깅 수준을 최소 필수 수준으로 설정하십시오. 또한, 자체 물리적 디스크나 큰 입출력 버퍼가 있는 빠른 디스크 하위 시스템에 액세스 로그를 저장하는 것이 좋습니다. 표 8-2에는 특정 속성에 대해 권장되는 추가 작업이 나와 있습니다.
표 8-2    액세스 로깅에 대해 권장되는 조정 작업
|
구성 속성(on dn: cn=config)
|
간략한 설명 및 권장되는 조정 작업
|
|
nsslapd-accesslog
|
액세스 로그 파일의 경로와 파일 이름을 지정합니다.
소규모 배포 시에는 액세스 로그와 감사 및 오류 로그가 디스크를 공유할 수 있습니다.
대규모 배포 시에는 별도의 컨트롤러가 있는 자체 디스크나 디스크 하위 시스템에 액세스 로그를 저장하는 것이 좋습니다. 큰 입출력 버퍼가 있는 디스크를 선택합니다.
|
|
nsslapd-accesslog-level
|
사용되는 정보 로깅 수준을 지정합니다.
높은 수준이 필요하지 않으면 속성 값을 0, 액세스 로깅 안 함으로 변경합니다(기본값은 256, 항목에 대한 액세스 로깅).
|
|
nsslapd-accesslog-logbuffering
|
액세스 로그의 버퍼링 여부를 지정합니다.
표시되는 액세스 로그 메시지를 보기 위해 버퍼링을 비활성화해야 하는 경우가 아니면 속성 값을 on(기본값)으로 그대로 두십시오. 버퍼링을 비활성화하면 전체적인 성능이 저하될 수 있습니다.
|
|
nsslapd-accesslog-logging-enabled
|
액세스 로깅을 활성화하거나 비활성화합니다.
최상의 성능을 내려면 속성 값을 off로 변경합니다(기본값은 on).
배포 시 액세스 로깅을 사용해야 하는 경우 nsslapd-accesslog-level 속성을 가장 낮은 값으로 설정하고 자체 디스크나 디스크 하위 시스템에 액세스 로그를 저장합니다. 자주(매일 또는 매주) 액세스 로그를 순환시키고 nsslapd-accesslog-logmaxdiskspace 및 nsslapd-accesslog-logminfreediskspace 속성을 사용하여 디스크 공간 사용을 관리하십시오.
|
|
nsslapd-accesslog-logmaxdiskspace
|
모든 액세스 로그(현재 로그와 순환된 로그)에서 사용할 수 있는 최대 디스크 공간을 지정합니다.
액세스 로깅에 할당된 총 디스크 공간보다 작은 값을 설정하십시오.
감사, 액세스 및 오류 로깅을 같은 디스크에 저장하는 경우 해당 디스크 공간이 세 가지 로깅을 저장하기에 충분해야 합니다.
액세스 로그가 자체 디스크에 있으면 이 변수를 디스크 크기로 설정합니다.
|
|
nsslapd-accesslog-logminfreediskspace
|
이전의 로그가 제거되지 않은 상태에서 사용 가능한 최소 디스크 공간을 지정합니다.
사용할 수 있는 디스크 공간이 이 속성에 지정된 값보다 작으면 이 속성의 설정에 맞게 충분한 디스크 공간이 확보될 때까지 가장 오래된 액세스 로그부터 삭제됩니다. 디스크가 가득 차서 액세스 로그를 쓸 수 없으면 서버가 종료됩니다.
|
각 구성 속성에 대한 자세한 내용은 Sun ONE Directory Server Reference Manual을 참조하십시오.
Sun ONE Directory Server Resource Kit 설명서에는 액세스 로그에서 정보를 추출하는 방법이 설명되어 있습니다. 자세한 내용은 "Directory Server 도구 다운로드"를 참조하십시오.
감사 로깅
감사 로그에는 각 데이터베이스 및 서버 구성의 모든 변경 사항에 대한 자세한 정보가 포함되어 있습니다. 감사 로깅은 기본적으로 사용되지 않습니다.
수정 용량이 많은 배포 시 감사 로깅을 사용하면 전체적인 성능이 크게 저하됩니다. 배포에 필요한 경우가 아니면 감사 로깅은 비활성화된 상태로 두십시오. 감사 로깅이 필요한 대규모 또는 고용량 배포 시에는 별도의 컨트롤러가 있는 자체 디스크를 감사 로그에 할당하는 것이 좋습니다. 표 8-3에는 특정 속성에 대해 권장되는 추가 작업이 나와 있습니다.
표 8-3    감사 로깅에 대해 권장되는 조정 작업
|
구성 속성(on dn: cn=config)
|
간략한 설명 및 권장되는 조정 작업
|
|
nsslapd-auditlog
|
감사 로그 파일의 경로와 파일 이름을 지정합니다.
소규모 배포 시에는 감사 로그와 액세스 및 오류 로그가 디스크를 공유할 수 있습니다.
대규모 배포 시에는 별도의 컨트롤러가 있는 자체 디스크에 감사 로그를 저장하는 것이 좋습니다. 큰 입출력 버퍼가 있는 디스크를 선택합니다.
|
|
nsslapd-auditlog-logging-enabled
|
감사 로깅을 활성화하거나 비활성화합니다.
감사 로깅이 필요하지 않으면 속성 값을 off(기본값)로 그대로 두십시오.
|
|
nsslapd-auditlog-logmaxdiskspace
|
모든 감사 로그(현재 로그와 순환된 로그)에서 사용할 수 있는 최대 디스크 공간을 지정합니다.
감사 로깅에 할당된 총 디스크 공간보다 작은 값을 설정하십시오.
감사, 액세스 및 오류 로깅을 같은 디스크에 저장하는 경우 해당 디스크 공간이 세 가지 로깅을 저장하기에 충분해야 합니다.
감사 로그가 자체 디스크에 있으면 이 변수를 디스크 크기로 설정합니다.
|
|
nsslapd-auditlog-logminfreediskspace
|
이전의 로그가 제거되지 않은 상태에서 사용 가능한 최소 디스크 공간을 지정합니다.
사용할 수 있는 디스크 공간이 이 속성에 지정된 값보다 작으면 이 속성의 설정에 맞게 충분한 디스크 공간이 확보될 때까지 가장 오래된 감사 로그부터 삭제됩니다. 디스크가 가득 차서 감사 로그를 쓸 수 없으면 서버가 종료됩니다.
|
각 구성 속성에 대한 자세한 내용은 Sun ONE Directory Server Reference Manual을 참조하십시오.
오류 로깅
Directory Server 인스턴스의 오류 로그에는 정상적인 서버 작동 중에 표시되는 자세한 오류, 경고 및 정보 메시지가 포함되어 있습니다. 낮은 기본 로깅 수준에서는 비교적 적은 디스크 작업이 발생합니다.
하지만 디버깅 정보를 생성하기 위해 로그 수준을 높게 설정하면 Directory Server는 대량의 메시지를 디스크에 쓰기 시작합니다. 이러한 쓰기 로드로 인해 전체적인 성능이 크게 저하될 수 있습니다. 성능 저하를 방지하려면 동시에 모든 구성 요소의 로그 수준을 활성화하는 대신 구성요소별로 하나씩 로그 수준을 올리십시오.
오류 로그는 로그 버퍼링을 지원하지 않으므로 모든 메시지가 즉시 디스크로 플러시됩니다. 대규모 또는 고용량 배포 시에는 별도의 컨트롤러가 있는 자체 디스크를 오류 로그에 할당하는 것이 좋습니다. 오류 로그는 디버깅이 필요할 때 사용됩니다. 표 8-4에는 특정 속성에 대해 권장되는 작업이 나와 있습니다.
표 8-4    오류 로깅에 대해 권장되는 조정 작업
|
구성 속성(on dn: cn=config)
|
간략한 설명 및 권장되는 조정 작업
|
|
nsslapd-errorlog
|
오류 로그 파일의 경로와 파일 이름을 지정합니다.
소규모 배포 시에는 오류 로그와 액세스 및 감사 로그가 디스크를 공유할 수 있습니다.
대규모 배포 시에는 별도의 컨트롤러가 있는 자체 디스크에 오류 로그를 저장하는 것이 좋습니다. 큰 입출력 버퍼가 있는 디스크를 선택합니다.
|
|
nsslapd-errorlog-logging-enabled
|
오류 로깅을 활성화하거나 비활성화합니다.
속성 값을 on(기본값)으로 그대로 두십시오.
|
|
nsslapd-errorlog-logmaxdiskspace
|
모든 오류 로그(현재 로그와 순환된 로그)에서 사용할 수 있는 최대 디스크 공간을 지정합니다.
오류 로깅에 할당된 총 디스크 공간보다 작은 값을 설정하십시오.
감사, 액세스 및 오류 로깅을 같은 디스크에 저장하는 경우 해당 디스크 공간이 세 가지 로깅을 저장하기에 충분해야 합니다.
오류 로그가 자체 디스크에 있으면 이 변수를 디스크 크기로 설정합니다.
|
|
nsslapd-errorlog-logminfreediskspace
|
이전의 로그가 제거되지 않은 상태에서 사용 가능한 최소 디스크 공간을 지정합니다.
사용할 수 있는 디스크 공간이 이 속성에 지정된 값보다 작으면 이 속성의 설정에 맞게 충분한 디스크 공간이 확보될 때까지 가장 오래된 오류 로그부터 삭제됩니다. 디스크가 가득 차서 오류 로그를 쓸 수 없으면 서버가 종료됩니다.
|
|
nsslapd-infolog-area
|
해당 정보 메시지를 기록할 구성 요소를 지정합니다.
구성 요소를 디버깅하는 경우가 아니면 속성 값을 0(기본값)으로 그대로 두십시오. 생산 서버에서는 한 번에 하나의 구성 요소에 대해서만 설정하는 것이 좋습니다.
|
|
nsslapd-infolog-level
|
사용되는 정보 로깅 수준을 지정합니다.
nsslapd-infolog-area 설정만으로 충분한 세부 정보가 생성되지 않는 구성 요소를 디버깅하는 경우가 아니라면 속성 값을 0(기본값)으로 그대로 두십시오.
|
각 구성 속성에 대한 자세한 내용은 Sun ONE Directory Server Reference Manual을 참조하십시오.
다중 마스터 복제 변경 로깅
Directory Server는 복제 변경 로그를 사용하여 복제본 간의 동기화를 허용합니다. 변경 로그에 대해서는 Sun ONE Directory Server Deployment Guide를, 구성 세부 정보에 대해서는 Sun ONE Directory Server Reference Manual을 참조하십시오. 표 8-5에는 특정 속성에 대해 권장되는 추가 작업이 나와 있습니다.
표 8-5    다중 마스터 변경 로깅에 대해 권장되는 조정 작업
|
구성 항목 DN 및 구성 속성
|
간략한 설명 및 권장되는 조정 작업
|
|
dn: cn=changelog5,cn=config
nsslapd-cachememsize
|
변경 로그 데이터베이스의 캐시 크기를 지정합니다.
대규모 배포 시에는 기본값 10MB를 변경하는 것이 좋습니다.
|
|
dn: cn=changelog5,cn=config
nsslapd-changelogdir
|
변경 로그 데이터베이스의 경로와 파일 이름을 지정합니다.
별도의 컨트롤러가 있는 자체 디스크나 디스크 하위 시스템에 변경 로그를 저장하는 것이 좋습니다. 큰 입출력 버퍼가 있으면 도움이 됩니다.
|
|
dn: cn=changelog5,cn=config
nsslapd-changemaxage
|
변경 로그에 있는 항목의 최대 수명을 지정합니다.
속성 값 0(기본값, 제한 없음)을 복제된 서버가 완전히 동기화되어 변경 로그를 지울 수 있을 때까지의 기간으로 변경합니다.
|
|
dn: cn=changelog5,cn=config
nsslapd-changemaxentries
|
변경 로그의 최대 항목 수를 지정합니다.
속성 값 0(기본값, 제한 없음)을 변경 로그가 지워지기 전에 복제된 서버가 완전히 동기화될 수 있는 개수로 변경합니다.
|
|
dn: cn=changelog5,cn=config
nsslapd-cachesize
|
변경 로그 데이터베이스 캐시의 최대 항목 수를 지정합니다.
속성 값 -1(기본값, 제한 없음)을 항목이 플러시되지 않고 변경 로그에 보관되는 최대 항목 수로 변경합니다.
|
각 구성 속성에 대한 자세한 내용은 Sun ONE Directory Server Reference Manual을 참조하십시오.
역 변경 로깅
Directory Server는 공급자 서버의 변경 사항을 Directory Server 4.x 릴리스와 호환되고 LDAP를 통해 액세스할 수 있는 형식으로 기록할 수 있는 레트로 변경 로그 플러그 인과 함께 제공됩니다. 레트로 변경 로그 플러그 인은 기본적으로 사용되지 않으며 호환성을 위해 필요한 경우에만 사용해야 합니다. 자세한 내용은 Sun ONE Directory Server Reference Manual을 참조하십시오. 표 8-6에는 특정 속성에 대해 권장되는 추가 작업이 나와 있습니다.
표 8-6    역 변경 로깅에 대해 권장되는 조정 작업
|
구성 항목 DN 및 구성 속성
|
간략한 설명 및 권장되는 조정 작업
|
|
dn: cn=Retro Changelog Plugin,cn=plugins,cn=config
nsslapd-changelogdir
|
레트로 변경 로그의 경로와 파일 이름을 지정합니다.
별도의 컨트롤러가 있는 자체 디스크나 디스크 하위 시스템에 레트로 변경 로그를 저장하는 것이 좋습니다. 큰 입출력 버퍼가 있으면 도움이 됩니다.
|
|
dn: cn=Retro Changelog Plugin,cn=plugins,cn=config
nsslapd-changelogmaxage
|
레트로 변경 로그에 있는 항목의 최대 수명을 지정합니다.
속성 값 0(기본값, 제한 없음)을 레트로 변경 로그를 사용하는 클라이언트가 생성된 로그 항목을 처리하지 않고 그대로 둘 수 있는 기간으로 변경합니다.
|
|
dn: cn=Retro Changelog Plugin,cn=plugins,cn=config
nsslapd-changelogmaxentries
|
레트로 변경 로그의 최대 항목 수를 지정합니다.
속성 값 0(기본값, 제한 없음)을 항목이 지워지지 않고 레트로 변경 로그에 보관되는 최대 항목 수로 변경합니다.
|
각 구성 속성에 대한 자세한 내용은 Sun ONE Directory Server Reference Manual을 참조하십시오.
트랜잭션 로깅
Directory Server는 트랜잭션 로깅을 통해 데이터베이스 무결성을 유지합니다. add, modify, delete 또는 modrdn과 같은 업데이트 작업을 받으면 Directory Server는 트랜잭션 로그에 이 작업에 대한 로그 메시지를 씁니다. 기본적으로 사용되는 영구 트랜잭션 로깅은 데이터 무결성을 보장하며, 이를 위해 업데이트 작업에 대한 결과 코드를 클라이언트 응용 프로그램에 반환하기 전에 각 업데이트 작업을 디스크에 있는 트랜잭션 로그로 완결합니다. 시스템에 장애가 발생하면 Directory Server는 트랜잭션 로그를 사용하여 데이터베이스를 복구합니다. 트랜잭션 로그는 비정상적으로 종료된 데이터베이스의 복구에 도움이 되므로 트랜잭션 로그와 디렉토리 데이터베이스를 별도의 디스크 하위 시스템에 저장하는 것이 좋습니다.
특히 영구성을 설정한 경우 트랜잭션 로깅은 디스크 용량을 많이 차지하기 때문에 업데이트 성능의 주된 병목이 될 수 있습니다. 트랜잭션 로그와 데이터베이스를 Sun StorEdge 디스크 어레이와 같은 별도의 RAID 시스템에 저장하면 시스템 장애 시 데이터 무결성 보호에 도움이 될 뿐만 아니라 업데이트 성능이 향상됩니다. 표 8-7에는 특정 속성에 대해 권장되는 추가 작업이 나와 있습니다.
표 8-7    트랜잭션 로깅에 대해 권장되는 조정 작업
|
구성 항목 DN 및 구성 속성
|
간략한 설명 및 권장되는 조정 작업
|
|
dn: cn=config,cn=ldbm database,cn=plugins,cn=config
nsslapd-db-checkpoint-interval
|
Directory Server에서 트랜잭션 로그를 검사하는 빈도를 지정하고 전체 데이터베이스 시스템이 디스크와 동기화되게 하며 트랜잭션 로그를 정리합니다.
실제 테스트에 따라 데이터베이스 성능 최적화를 위해 다른 값을 설정해야 하는 경우가 아니면 속성 값을 60초(기본값)로 그대로 두십시오. 속성 값을 증가시키면 업데이트 성능은 향상되지만 비정상적인 종료 후의 복구 작업에 오랜 시간이 걸리기 때문에 트랜잭션 로그에서 더 많은 디스크 공간을 사용하게 됩니다.
|
|
dn: cn=config,cn=ldbm database,cn=plugins,cn=config
nsslapd-db-durable-transaction
|
결과 코드를 클라이언트로 반환하기 전에 업데이트 작업을 디스크에 있는 트랜잭션 로그로 완결할지 여부를 지정합니다.
높은 수준의 데이터 무결성이 필요한 배포 시에는 속성 값을 on(기본값)으로 그대로 두십시오. 성능 향상을 위해 일부 배포 시에는 영구 트랜잭션 로깅을 비활성화할 수도 있습니다. 영구 트랜잭션 로깅을 사용하지 않을 경우 시스템에 장애가 발생하면 파일 시스템으로만 플러시되어 아직 디스크로 플러시되지 않은 로그 메시지는 손실될 수 있습니다. 따라서 영구 트랜잭션 로깅을 off로 설정하면 클라이언트가 업데이트 성공 결과 코드를 받은 후에도 업데이트를 복구할 수 없는 경우가 발생합니다.
|
|
dn: cn=config,cn=ldbm database,cn=plugins,cn=config
nsslapd-db-logdirectory
|
트랜잭션 로그 파일의 경로와 파일 이름을 지정합니다.
별도의 컨트롤러가 있는 빠른 자체 디스크나 디스크 하위 시스템에 트랜잭션 로그를 저장하는 것이 좋습니다.
|
각 구성 속성에 대한 자세한 내용은 Sun ONE Directory Server Reference Manual을 참조하십시오.