-
[ClickHouse] Logger 설정하기Database/Clickhouse 2024. 6. 2. 07:21728x90반응형
- 목차
들어가며.
ClickHouse 는 Logger 설정을 통해 서버 동작과 관련된 다양한 정보를 효율적으로 관리할 수 있습니다.
로깅 시스템을 활용하면 콘솔 출력, 파일 출력, 그리고 로그 파일의 위치 및 크기를 포함한 세부적인 설정을 사용자 환경에 맞게 조정할 수 있습니다.
이러한 설정은 시스템 운영 중 발생하는 문제를 빠르게 파악하고, 로그 데이터를 체계적으로 관리하는 데 중요한 역할을 합니다.
이 글에서는 ClickHouse 의 Config xml 파일을 통해서 정적으로 Logger 를 설정하는 방식에 대해서 다루어보도록 하겠습니다.
Console 출력 설정하기.
ClickHouse 는 Console 출력을 통해 실시간으로 서버 동작 상태를 확인할 수 있는 기능을 제공합니다.
Console 출력은 특히 테스트 환경이나 디버깅 과정에서 유용하며, 서버 설정 파일(config.xml)의 <logger> 섹션에서 간단히 활성화할 수 있습니다.
ClickHouse 24.9.3 Docker 이미지를 통해서 ClickHouse Docker Container 를 실행하여 실습을 진행하도록 하겠습니다.
https://hub.docker.com/_/clickhouse
아래 설정은 logger.xml 파일에 작성하며,
해당 파일은 반드시 /etc/clickhouse-server/config.d 디렉토리 하위에 위치해야 합니다
이렇게 구성된 설정은 정적인 방식으로 서버가 시작될 때에 반영되게 됩니다.
cat <<'EOF'> /tmp/logger.xml <clickhouse> <logger> <console>true</console> <console_level>trace</console_level> </logger> </clickhouse> EOF
docker run -d --platform linux/amd64 \ --name clickhouse-server \ --mount type=bind,source=/tmp/logger.xml,target=/etc/clickhouse-server/config.d/logger.xml \ clickhouse:24.9.3
위 명령어들을 실행하게 되면, clickhouse-server 라는 이름의 Docker Container 가 실행됩니다.
그리고 docker logs 명령어를 통해서 컨테이너의 로그를 확인할 수 있습니다.
docker logs clickhouse-server --tail 5
console 비활성화.
아래의 logger.xml 내부에서 console 태그의 값을 false 로 비활성화시켜봅니다.
cat <<'EOF'> /tmp/logger.xml <clickhouse> <logger> <console>false</console> <console_level>trace</console_level> </logger> </clickhouse> EOF
docker run -d --platform linux/amd64 \ --name clickhouse-server \ --mount type=bind,source=/tmp/logger.xml,target=/etc/clickhouse-server/config.d/logger.xml \ clickhouse:24.9.3
아래의 이미지를 console 이 비활성화된 ClickHouse Container 의 로그 출력의 결과입니다.
아래의 결과처럼 설정파일들의 처리 이외의 로그가 출력되지 않습니다.
console_level 변경해보기.
운영 환경에서는 지나치게 많은 로그가 출력되는 것을 방지하기 위해 console_level 을 적절히 설정하는 것이 중요합니다.
ClickHouse 에서 로그 레벨 순서는 아래와 같습니다.
trace → debug → information → warning → error → critical → fatal
아래의 예시는 ClickHouse 의 console_level 을 warning 으로 설정하는 명령어들입니다.
실제로 여러가지 테스트를 진행한 결과 console_level 의 설정이 제대로 동작하지 않았고,
<level> 옵션을 통해서 Console 출력의 Logger Level 을 지정할 수 있었습니다.
cat <<'EOF'> /tmp/logger.xml <clickhouse> <logger> <console>true</console> <console_level>warning</console_level> <level>warning</level> </logger> </clickhouse> EOF
docker run -d --platform linux/amd64 \ --name clickhouse-server \ --mount type=bind,source=/tmp/logger.xml,target=/etc/clickhouse-server/config.d/logger.xml \ clickhouse:24.9.3
아래 이미지와 같이 Warning 이상의 Level 메시지들을 확인할 수 있습니다.
File Log 출력 알아보기.
ClickHouse 는 Console Logger 뿐만 아니라 File Logger 기능과 설정을 제공합니다.
<log> 설정을 통해서 서버의 동작과 관련된 로그가 저장된 파일 위치를 지정합니다.
<errorlog> 설정을 통해서 오류와 관련된 로그를 저장된 파일 위치를 지정할 수 있습니다.
기본적으로 각 로그 파일의 위치는 /var/log/clickhouse-server 디렉토리 하위에 위치합니다.
cat <<'EOF'> /tmp/logger.xml <clickhouse> <logger> <log>/var/log/clickhouse-server/clickhouse-server.log</log> <errorlog>/var/log/clickhouse-server/clickhouse-server.err.log</errorlog> <level>information</level> </logger> </clickhouse> EOF
docker run -d --platform linux/amd64 \ --name clickhouse-server \ --mount type=bind,source=/tmp/logger.xml,target=/etc/clickhouse-server/config.d/logger.xml \ clickhouse:24.9.3
일반적으로 clickhouse-server.log 파일은 <level> 에 지정된 Information 이상의 레벨 로그들을 모두 기록하게 됩니다.
따라서 clickhouse-server.err.log 의 내용들을 포함하게 됩니다.
반응형'Database > Clickhouse' 카테고리의 다른 글
[ClickHouse] remote_servers 설정 알아보기 (0) 2024.06.03 [ClickHouse] min_insert_block_size_rows 설정 알아보기 (0) 2024.06.02 [ClickHouse] Mutation 알아보기 (0) 2024.04.13 [ClickHouse] Parts & Partition 알아보기 (0) 2024.02.29 [ClickHouse] primary.idx 파일 알아보기 (0) 2024.02.28