본문 바로가기

OS/Linux

Linux 로그 간단하게 확인하는 방법

 

OS 실행, 시스템 실행, 보안 등 의도치 않은 에러가 발생하거나, 버그가 걸렸다면

시스템에 저장되는 로그를 확인해야 합니다.

오늘은 어떤 오류가 발생했을 때 어떤 로그를 확인해야 하는지 간략하게 알아보도록 하겠습니다.

 

1. dmesg log

시스템 부팅 메세지를 확인하는 명령어입니다.

커널에서 출력되는 메세지를 일정 수준 기록하는 버퍼 역할을 수행하며, 커널 부팅 중에 에러가 났다면

어느 단계에서 에러가 났는지 범위를 좁히고 찾아내는데 도움이 됩니다.

대표적으로는 부팅 이후 su 전환 실패, IO장치 오류 등 운영에 필요한 정보들이 출력됩니다.

출력 메세지가 많으면 파이프( | ), grep으로 more, less와 함께 사용하면 편리합니다.

/var/log/dmesg로 확인 가능합니다.

dmesg -T : 타임스탬프로 로그가 찍힌 시점 출력

dmesg -H : 읽기 쉽게 출력

dmesg -w : 실시간 로그 출력

dmesg -f : 원하는 설비만 출력 가능

# 예문
dmesg -f auth,daemon

dmesg -l : 로그 위험도 수준으로 출력

옵션 설명
emerg 시스템을 사용할 수 없음
alert 즉시 조치를 취해야함
crit 위급함
err 오류 조건
warn 경고 조건
notice 정상이지만 유의한 상태
info 정보
debug 디버그 수준
# 예문
dmesg -l eer,warn | more

 

2. message

시스템에서 발생하는 표준 메세지가 기록됩니다. root 사용자만 열람이 가능합니다.

날짜, 시간, 메세지가 발생한 호스트명, 메세지를 발생한 내부 시스템이나 응용 프로그램 이름,

발생된 메세지가 ':'으로 구분되어 기록됩니다.

/var/log/message에 저장되어 있고,

*Ubuntu의 경우 conf파일을 수정해야 수집 가능합니다

vi /etc/rsyslog.d/50-default-conf

에서 *.=info;* 부분을 검색하여 주석을 해제하면 됩니다.

 

주로 사용하는 형식 으로는

cat /var/log/messages-20210502 |egrep -i "critical|error|warn|alert|fault|fail"

처럼 사용합니다.

 

3. secure

시스템(telnet, ssh)의 접속에 대한 로그, timestamp, 호스트명, PIDrkqt, 메세지 내용이 기록되어있고

보통 login, tcp_wrappers, xinetd와 관련 되어 있습니다.

/var/log/secure에서 확인 가능하고, ubuntu에서는 auth.log에서 확인 가능합니다.

주로 사용하면 명령어는

cat /var/log/messages-20210502 |egrep -i "critical|error|warn|alert|fault|fail"

를 활용해서 어떤 ip가 어떤 방법으로 해당 서버에 접속했는 지를 볼 수 있습니다.

 

4. mail

메일 송수신 관련 로그를 확인할 수 있습니다.

/var/log/maillog에서 확인 가능합니다.

옵션 설명
from 발신자 주소
size 메시지 크기
class 메시지 등급
pri 시작 메시지의 우선순위 등급
nrcpts aliasing과 forwarding을 고려해서 수신 메시지의 수 표시
msgid 메시지 식별자 (메시지 헤더에서 추출)
proto 수신시 사용된 프로토콜
relay 메시지를 전달한 머신의 이름
to 콤마로 분리된 수신자 리스트
delay 메시지 발신에서 수신 까지 걸린 시간
xdelay 메시지 전송 시도에 걸린 시간(접속시간)
mailer 메시지를 전달하는 mailer의 이름
stat 메시지 전달 상태
ctladdr 배달물을 보낼 수 있는 자격을 가진 사용자의 이름
dsn 배달 생태 통지

 

이 밖에도 많은 로그들이 /var/log/ 위치에 저장되고 있습니다.

다양한 실습을 하면서 새로 확인이 필요한 로그와 심화적으로 알아야할 로그가 생긴다면 계속해서 업데이트를 하겠습니다.

이상 로그관련 기초에 대해 알아봤습니다.