클라우드 아키텍트 양성과정
리눅스(CentOS) 로그관리(rsyslog,journal)
종바깅
2021. 4. 26. 11:13
로그관리
로그 (Log) - 시스템에서 발생한 이벤트에 대한 기록
감사(Autid) - 관리자가 설정한 특정 대상에 대한 기록
로그의 필요성
- 보안적 측면 : 침입 등에 대한 감사, 대응
- 운영적 측면 : 시스템 장애 대응
systemd 이전의 로그 - syslog(rsyslog)
systemd 이후의 로그
- syslog(rsyslog)
- journal
systemd-journald
- journal을 담당하는 데몬
- 메모리에 저장
- Binary data 형태로 저장 : /run/log/journal
syslog(rsyslog)
- 로그 데이터를 파일로 저장, 사용자에게 전달
- 네트워크의 다른 시스템으로 로그 전달
- systemd-journald에서 발생한 로그 중 선택적으로 분류하여 처리
- 선택/분류 조건 : 기능(Facility), 우선순위(Priority)
로그의 우선순위
숫자 | 우선순위 | 심각도 |
---|---|---|
0 | emerg | 시스템 구동 여부에 영향을 줄 수 있는 레벨 |
1 | alert | 즉시 조치가 필요함 |
2 | crit | 심각한 오류 |
3 | err | 중요도가 낮은 오류 |
4 | warning | 경고 |
5 | notice | 정상상태에서 발생하는 메시지 중 중요도 높음 |
6 | info | 일상적인 내용 |
7 | debug | 디버깅 메시지 (일상적인 내용보다 자세한 내용) |
rsyslog 관련 파일
/var/log/
- messsages : 일반적인 시스템의 로그인 데이터 저장 (아래 항목 제외)
- secure : 인증 관련 로그
- maillog : 메일 관련 로그
- cron : 예약작업 관련 로그
- boot.log : 부팅 관련 로그
/etc/rsyslog.conf : rsyslog 설정파일
- /etc/rsyslog.conf 내 RULE 설정
```
#### RULES ####
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
.
.
.
# Log cron stuff
cron.* /var/log/cron
# Everybody gets emergency messages
*.emerg :omusrmsg:*
-------------------------------------------------------------------------------------
cron : 기능(Facility, 출처), 어디에서 나온 로그인가?
- 주요 Facility: https://en.wikipedia.org/wiki/Syslog#Facility
- * : 모든 facility
* : 우선순위. 지정된 우선순위에 해당하는 로그를 저장
- *: 모든 우선순위의 로그를 모두 지정
- 0~7, emerg~debug : 지정된 우선순위 해당 로그 및 그보다 높은 우선순위의 로그를 모두 지정
- none: 해당 기능은 로그 저장하지 않음
/var/log/cron: 기록 대상
- -<파일명> : 비동기화 저장설정
- /dev/… : 특정 장치로 로그 전송
- :omusrmsg:* : 특정 사용자에게 로그 전송
```
journal
명령어 : journalctl
- -n [숫자] : 최근 n개의 저널 출력
- -p [우선순위] : priority - 저널 메세지의 우선순의 지정
- -f : 발생하는 저널 메시지 실시간 확인
- -r : 역순으로 출력 (최근 로그부터)
- --since [시작지점] : 특정 날짜부터 출력
- --until [종료시점] : 특정 시점까지 출력
- _COMM= : 명령이름
- _EXE= : 실행파일 경로
- _PID= : 특정 PID관련 로그 확인
메모리에 저장 : 재부팅 후 초기화 됨
저널 영구저장 설정
기존 저널 저장위치 정보를 확인한다 (기존 저널 저장위치인 /run/log/journal 경로와 같은 정보를 가지는 디렉토리를 생성해야 함)
#ls -ld /run/log/journal
- 소유자 : root
- 소유그룹 : systemd-journal
- 권한 : 2755

/var/log/journal 디렉토리 생성
소유자/소유그룹/권한 설정 통일
#mkdir /var/log/journal
#chown root:systemd-journal /var/log/journal/
#chmod 2755 /var/log/journal/
#ls -ld /var/log/journal

logrotate
- 로그를 순환시키는 명령어
- 로그파일이 과도하게 커지거나, 과도하게 장기간의 데이터를 저장하거나 하는 상태를 방지
- 백업생성 : 규칙에 따라 일정 갯수 만큼의 백업만 보관
- cron에 의해 주기적으로 실행