Q: /var/log 디렉터리에 존재하는 로그 파일은 각각 어떤 정보가 있는지 궁금합니다.

서비스 운영 중 장애가 발생하면 가장 먼저 로그를 확인한다.
리눅스의 로그는 /var/log 디렉터리에 생성된다.

messages

시스템에 문제가 생겼을 때 가장 먼저 확인되는 로그 파일로
rsyslog.conf 에서 제외된 항목을 제외한 모든 항목이 기록된다.
Event, Error, Warning, Failed 등 모든 내용이 들어가기 때문에
grep 명령어로 확인하는게 좋다.

ex)
# cat /var/log/messages | egrep -i 'err|warn|fail'

secure

시스템에 접속한 사용자의 정보가 기록되는 파일이다.
SSH, Telnet 등을 사용하여 시스템에 접속된 정보가 기록되며
접속일, 사용자 명, IP 등이 기록된다.
특정 시스템의 해킹이 의심될 경우 확인해봐야 하는 로그이다.

boot.log

서비스 데몬들의 부트 관련 정보가 기록된다.
데몬들의 시작, 종료, 실패 내용이 기록되고 종료 시 내용도 기록된다.

dmesg

시스템 부팅 시 시스템 로그가 기록되는 파일로
dmesg 명령어로 출력되는 결과가 이 파일에 기록된다.

wtmp

최근 접속 사항이 기록되는 파일로
last 명령어로 출력되는 결과가 이 파일에 기록된다.

lastlog

시스템에 등록된 각 사용자의 마지막 로그인 내용이 기록되는 파일로
# lastlog 명령어로 확인할 수 있다.

rsyslog 설정

Q: rsyslog 를 서비스에 맞게 custom 하고, 다른 원격지 서버로 전송이 필요합니다.
rsyslog 를 사용하여 외부 서버로 로그를 전송할 수 있다.

  1. 로그를 전송할 송신 서버 설정
    # vi /etc/rsyslog.conf
...
*.* @@<Destination IP>:514;RSYSLOG_SyslogProtocol23Format

// RSYSLOG_SyslogProtocol23Format: 로그를 syslog 프로토콜 버전 2에 맞게 전송

  1. 수신 서버에서 로그를 저장할 디렉터리 생성
    # mkdir /var/log/remote

  2. 수신 서버에서 rsyslog.conf 설정
    # vi /etc/rsyslog.conf

$template RemoteLogs,"/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?RemoteLogs

// $template: 로그 파일을 생성할 위치와 파일 이름 형식을 지정
// RemoteLogs: 로그 파일 이름에 대한 템플릿 이름
// . ?RemoteLogs: 모든 로그 메시지를 RemoteLogs 템플릿에 따라 생성된 로그 파일에 저장하도록 구성

  1. 각 서버에서 rsyslogd 재시작
    # systemctl restart rsyslogd

위와 같이 설정할 경우 수신 서버의 /var/log/remote 디렉터리에 송신 서버 로그가 저장된다.

0개의 댓글

Powered by GraphCDN, the GraphQL CDN