2024_0221_Log

이기태·2024년 2월 21일

리눅스

목록 보기
20/27

로그 소개

  • 중요 내용
    1) 로그 체계(rsyslogd)
    2) 로그 서버 구축
    3) 로그 파일 분석 기법
    4) 로그 파일 관리
    5) 장애처리(system journal)

** 리눅스 기본 로그 파일
1) OS 기본 로그 파일들
/var/log/messages
/var/log/secure
/var/log/boot.log
/var/log/cron
/var/log/maillog
/var/log/lastlog
/var/log/wtmp
/var/log/utmp

2) SERVICE 로그 파일들
DNS(bigd) : /var/log/messages
WEB(httpd): /var/log/httpd/
FTP(vsftpd): /var/log/secure, /var/log/xferlog
MAIL(sendmail): /var/log/maillog
NFS(nfs-utils): /var/log/messages
SMB(samba) : /var/log/samba/

....

  • rsyslogd 체계
    모든 로그를 rsyslogd로 모두 모인 후 적당한 위치로 넘겨줌.

/etc/rsyslog.conf (/etc/rsyslog.d/* .conf)
-> selector(facility.level) action
=> facility: 메시지 종류
=> level: 메세지 난이도
=> action: 메세지 기록 위치

3) 로그 서버 구축
rsyslogd 사용한 로그 서버 구축
graylog-server 사용한 로그 서버 구축

4) 로그 파일 관리
로그파일 이름이 고정되어 있는 경우:
-> ex) OS/SERVER 기록 => logratate CMD
로그파일 이름이 고정되 있지 안흥ㄴ 경우:
-> ex) WEB 로그(weblog_240222.log) => 수동 관리(find CMD + crontab CMD)

5) 로그 파일 분석 종류
-> 로그 시간에 따른 분석
-> 로그 생성 서버
-> 로그 생성 주체
-> 로그 생성 난이도
-> 로그 키워드

6) system journal

  • journalctl CMD: 장애처리, 워닝은 굵은색, 에러는 빨간색으로 표시
    -n: 최근 로그 항목 개수 표시 (default 10)
    -f: 저널 로그 모니터링
    -xe: ?
    -u: unit에 대한것만 출력
    ex) journalctl -f -n unit
    -p: 레벨지정 (debug, info, notice, warning, err, crit, alert, emerg)

  • 로그 시간에 따른 검색(journalctl CMD)
    --since today: 오늘 로그 기록
    --since "-1 hour" : 최근 1시간
    --since "2024-02-20" --until "2024-02-22"
    # man 7 systemd.time: --since/--until 옵션을 사용한 정교한 시간 사양 확인

  • 필드를 지정해서 검색
    -o verebose: 상세 출력 및 출력 필터링
    => 출력결과로 보고싶은 필드를 복사해서 볼 수 있음.

  • 도움말 페이지
    # man 7 systemd.journal-fields

  • 부팅 기록 확인
    # journalctl -b 0|-1|-2|...

  • 시스템 저널 로그 영구 저장

    # vi /etc/systemd/journald.conf
    Storage=persistent
    # systmectl restart systemd-journald

로그 설정 절차

  1. 패키지 설치
    # yum -y install rsyslog

  2. 서버 설정
    /etc/rsyslog.conf, /etc/rsyslog.d/* .conf

  3. 서비스 기동
    # systemctl enable --now rsyslog

  4. 방화벽 등록
    # firewall-cmd --premanent --add-service=rsyslog
    or
    # firewall-cmd --premanent --add-port={514/tcp, 514/udp}

  5. SELinux(?)

로그 설정 + 실습

패키지: rsyslog
데몬 & 포트 & 프로토콜: rsyslogd(514/tcp, 514/udp)
주 설정 파일: /etc/rsyslog.conf
하위 설정 파일: /etc/rsyslog.d/* .conf
서비스: rsyslog.service


[ex] 기본 설정 확인


OS 기본 로그 파일
[ex] 인증 관련 기록 (기본 체계를 사용하는 경우) /var/log/secure

  • Feb 21 12:32:14 server1 su[13858]: pam_unix(su-l:session): session opened for user user01 by (uid=0)
    Feb 21 12:32:14: 로그 생성 시간
    server1 : 로그 생성 서버
    su[13858] : 로그 생성 주체
    pam_unix(su-l:session): session opened for user user01 by (uid=0): 로그 기록
    [ex] 메일 로그 기록(기본체계를 사용하는 경우) /var/log/maillog
    [ex] OS 기본 로그 파일 - /var/log/cron

[ex] 새로운 로그 파일 생성 - /var/log/file.log

  • [ex] 새로운 로그 파일 생성 -script 사용하여 생성하는 경우
    /root/bin/backup.sh > /var/log/backup.log 2>&1
    -> vi /root/bin/backup.sh


    #!/bin/bash
    exec > /var/log/backup.log 2>&1
    ...


    [ex] 원격 로그 서버 구축 1/2
    [ex] Visual Syslog Server
    [ex] Eventlog-to-syslog
    [ex] Graylog Server 구축 (p.32~)
    mongoDB 설치
    elasticsearch 설치
    graylog 설치

0개의 댓글