InfraPlatform

Linux에서 `syslog`를 효과적으로 구성하는 방법

IT오이시이 2025. 3. 19. 18:02
728x90

Linux에서 syslog를 효과적으로 구성하는 방법을 한글로 정리해 보았습니다:


1.

  • 서비스별 로그 파일 분리
    특정 서비스나 애플리케이션 로그를 별도 로그 파일로 분리하여 관리합니다. 이렇게 하면 /var/log/syslog가 과도하게 복잡해지는 것을 방지할 수 있습니다.
    예:

    if $programname == 'apache2' then /var/log/apache2.log
    & stop
  • 로그 로테이션 설정
    logrotate를 이용해 오래된 로그 파일을 압축하거나 삭제하여 디스크 용량 부족 문제를 방지합니다. /etc/logrotate.conf 또는 /etc/logrotate.d/ 파일에 정책을 추가합니다.
    예:

    /var/log/syslog {
        daily
        rotate 7
        compress
        missingok
        notifempty
    }

2.

  • 로그 레벨 조정
    INFO, ERROR, CRITICAL 등 시스템에 필요한 수준의 로그만 기록하도록 로그 레벨을 설정합니다.
    /etc/rsyslog.conf 예제:
    *.info;mail.none;authpriv.none;cron.none /var/log/messages

3.

  • 불필요한 로그 필터링
    시스템에 필요 없는 로그 메시지는 필터링하여 리소스 낭비를 줄입니다.

    if $msg contains "불필요한_로그" then stop
  • 구조화된 로그 포맷 사용
    JSON과 같은 구조화된 로그 포맷을 사용하여 로그 분석 도구와의 호환성을 높입니다.

    template(name="jsonFormat" type="list") {
        constant(value="{")
        property(name="timestamp" ...)
    }

4.

  • 원격 로깅 활성화
    로그를 중앙 서버로 전송하여 통합 분석 및 관리가 가능하도록 설정합니다.
    /etc/rsyslog.conf 예제:

    *.* @@logserver.example.com:514
    • TCP 전송(@@)을 사용하여 신뢰성을 높입니다.
    • TLS 암호화를 적용하여 로그 데이터 보안을 강화합니다.
  • 로그 관리 도구 사용
    Graylog, ELK Stack(Elasticsearch, Logstash, Kibana), 또는 Splunk와 같은 툴로 로그를 분석하고 시각화합니다.


5.

  • 비동기 로깅 활성화
    디스크 I/O를 줄이기 위해 비동기 로깅을 설정합니다.

    $ActionFileEnableSync off
  • 버퍼 크기 조정
    높은 트래픽 환경에서 로그 드롭을 방지하기 위해 버퍼 크기를 늘립니다.

    $MainMsgQueueSize 100000

6.

  • 로그 모니터링 툴 사용
    logwatch, ossec, fail2ban 등의 도구를 활용해 로그를 모니터링하고 중요 이벤트 발생 시 경고를 설정합니다.

7.

  • 파일 권한 관리
    로그 파일 접근 권한을 제한하여 보안을 강화합니다.

    chmod 640 /var/log/syslog
  • 암호화 적용
    민감한 정보가 포함된 로그 파일은 저장 또는 전송 전에 암호화합니다.


8.

  • 구성 변경 테스트
    변경된 설정을 적용하기 전에 테스트하여 오류를 방지합니다.
    rsyslogd -N1

위와 같은 설정을 적용하면 syslog를 보다 효율적이고 안전하게 운영할 수 있습니다.

728x90
반응형