서비스 운영 중 장애가 발생하면 가장 먼저 로그를 확인한다.
리눅스의 로그는 /var/log 디렉터리에 생성된다.
시스템에 문제가 생겼을 때 가장 먼저 확인되는 로그 파일로
rsyslog.conf 에서 제외된 항목을 제외한 모든 항목이 기록된다.
Event, Error, Warning, Failed 등 모든 내용이 들어가기 때문에
grep 명령어로 확인하는게 좋다.
ex)
# cat /var/log/messages | egrep -i 'err|warn|fail'
시스템에 접속한 사용자의 정보가 기록되는 파일이다.
SSH, Telnet 등을 사용하여 시스템에 접속된 정보가 기록되며
접속일, 사용자 명, IP 등이 기록된다.
특정 시스템의 해킹이 의심될 경우 확인해봐야 하는 로그이다.
서비스 데몬들의 부트 관련 정보가 기록된다.
데몬들의 시작, 종료, 실패 내용이 기록되고 종료 시 내용도 기록된다.
시스템 부팅 시 시스템 로그가 기록되는 파일로
dmesg 명령어로 출력되는 결과가 이 파일에 기록된다.
최근 접속 사항이 기록되는 파일로
last 명령어로 출력되는 결과가 이 파일에 기록된다.
시스템에 등록된 각 사용자의 마지막 로그인 내용이 기록되는 파일로
# lastlog
명령어로 확인할 수 있다.
Q: rsyslog 를 서비스에 맞게 custom 하고, 다른 원격지 서버로 전송이 필요합니다.
rsyslog 를 사용하여 외부 서버로 로그를 전송할 수 있다.
# vi /etc/rsyslog.conf
...
*.* @@<Destination IP>:514;RSYSLOG_SyslogProtocol23Format
// RSYSLOG_SyslogProtocol23Format: 로그를 syslog 프로토콜 버전 2에 맞게 전송
수신 서버에서 로그를 저장할 디렉터리 생성
# mkdir /var/log/remote
수신 서버에서 rsyslog.conf 설정
# vi /etc/rsyslog.conf
$template RemoteLogs,"/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?RemoteLogs
// $template: 로그 파일을 생성할 위치와 파일 이름 형식을 지정
// RemoteLogs: 로그 파일 이름에 대한 템플릿 이름
// . ?RemoteLogs: 모든 로그 메시지를 RemoteLogs 템플릿에 따라 생성된 로그 파일에 저장하도록 구성
# systemctl restart rsyslogd
위와 같이 설정할 경우 수신 서버의 /var/log/remote 디렉터리에 송신 서버 로그가 저장된다.