로그 레벨 debug > info > notice > warn > error > crit > alert > emerg
emerg 긴급 – 시스템이 쓸모없어졌음
“Child cannot open lock file. Exiting”
alert 즉시 행동을 취해야 하는 경우.
“getpwuid: couldn’t determine user name from uid”
crit 치명적인 상태
“socket: Failed to get a socket, exiting child”
error 에러 상태
“Premature end of script headers”
warn 경고 상태
“child process 1234 did not exit, sending another SIGHUP”
notice 보통, 하지만 의미심장한 상태
“httpd: caught SIGBUS, attempting to dump core in …”
info 정보
“Server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers)…”
debug 디버그 수준 메세지
“Opening config file …”
logger
1 |
logger [-is] [-f file] [-p pri] [-t tag] [message ...] |
시스템 로그를 기록하는 명령, 로그는 /var/log/messages 시스템 로그 기록 파일에 저장.
logger 명령어를 사용한 후에, tail -n 3 /var/log/messages 명령으로 로그가 기록된 것을 확인 가능.
logrotate
시스템 로그 파일을 관리하기 위해 사용. 로테이트, 압축, 삭제, 이메일 발송 등의 기능 사용 가능.
일반적으로 cron을 사용하여 주기적으로 logrotate를 실행하여 로그 파일을 관리.
/etc/logrotate.conf에 적당한 내용을 적어주면 시스템 전체 로그뿐만 아니라 개인용 로그 파일을 관리할 수 있다
1 2 3 |
/etc/syslog.conf mail.* -/var/log/maillog cron.* /var/log/cron |
위 실행시 실행 메세지를 뒤에 경로에 저장이 되도록된다.
1 |
*.info;mail.none;news.none;authpriv.none;cron.none /var/log/messages |
위를 보면 *.인포 후에 mail.none; 여기의 . 은 = 과 같다.
ingo레벨 아래 중에 mail은 제외한다는 뜻이다 뒤에 news, authprivcron 도 같으므로.
* 모든 파일중에 위는 제외하고 경로에 저장된다는것이다.
설정 후 재시작
1 |
]# service syslog restart |
에러 ex) logger -p mail.crit “asdf asdf .. ”
설정에서 err이상이라 설정했다면 확인시에는 그이상의 레벨로 예를 둔다.
message를 클라이언트쪽에 보내주려 할때, 보내는쪽은 어떤메세지가 발생시에 경로를 적어주면 master측의 경로에 저장이 되는것인데 경로에 클라이언트 아이피나 호스트명을 @와함께 적어준다.
ex) @centos2 라고 하고 받는쪽에서는 어떤메세지가 발생시에 어느 경로로 적어줄지 지정해주고 서비스 재시작 하면 된다.
logrotate를 설치하게 되면 자동으로 crontab 에 등록된다.
1 2 3 4 |
]# ls /etc/cron.daily/logrotate /etc/cron.daily/logrotate ]# grep cron.daily /etc/crontab 02 4 * * * root run-parts /etc/cron.daily |
logwatch
– 로그를 정리해서 지정된 메일주소로 보내준다.(설치할때 크론에 하루 한번 실행되게 등록된다)
1 |
]# ls -l /usr/sbin/logwatch |
주요옵션
–detail level ( level 은 low, medium, high 또는 0,5,10)
–service servicename (특정서비스의 기록만 출력할 경우)
–print 표준출력으로 출력
–range (yesterday,today,all)
–save file명 (출력을 파일로 저장)
–logdir 디렉토리명 (디폴트 디렉토리대신 사용)
ex)
1 2 3 4 5 |
]# logwatch --service sshd --detail low --print LogDir = /var/log MailTo = root; 계정을 적거나 완전한 이메일 주소를 적는다. MailFrom = logwatch; 메일로 받았을때 수신자가 logwatch로 표시된다. Detail = Low; High 로 설정하면 좀 더 자세한 로그를 볼수 있다. |