웹사이트 검색

VPS에서 Logwatch Log Analyzer 및 Reporter를 설치하고 사용하는 방법


소개

애플리케이션은 주어진 시간에 발생하는 활동을 추적하기 위해 "로그 파일\이라고 하는 파일을 생성합니다. 단순한 텍스트 출력과는 거리가 먼 이 파일은 통과하기가 매우 복잡할 수 있으며, 특히 관리 중인 서버가 바쁜 사람.

로그 파일을 참조할 때가 되면(예: 장애, 데이터 손실 등의 경우) 사용 가능한 모든 도움말을 활용하는 것이 중요합니다. 과거 사건에 대해 말할 수 있는 것을 빠르게 이해(파싱)하고 정확히 무슨 일이 일어났는지 분석하는 것은 해결책을 찾는 데 매우 중요합니다.

Linux 시스템 강화, 보안 모니터링 및 이메일 알림에 대한 이전 기사의 발자취를 따라 이 DigitalOcean 기사에서는 전용 시스템 관리자의 작업을 조금 더 쉽게 처리할 수 있는 매우 강력한 로그 파서 및 분석기인 Logwatch에 대해 이야기합니다. 응용 프로그램 관련 작업 및 문제.

로그 파일

Startrek의 우주선 블랙박스와 마찬가지로 시스템(즉, 서버)을 계속 실행하기 위해 오늘날에도 관리자는 로그에 의존합니다. 농담은 차치하고, 이러한 애플리케이션 생성 파일은 전체/부분 데이터 복구(예: 서버 로그에서) 또는 미래를 위한 수정을 위해 과거[주어진 시간에] 발생한 일을 추적하고 이해하는 데 결정적인 역할을 합니다. 예를 들어 액세스 로그에서).

간단히 말해 로그 파일은 주어진 시간 범위 내에서 발생하는 작업과 이벤트로 구성됩니다.

좋은 로그 파일은 시스템 유지 관리를 담당하는 관리자가 특정 목적에 필요한 정확한 정보를 찾을 수 있도록 가능한 한 자세해야 합니다. 바로 이러한 이유 때문에 로그 파일은 일반적으로 간결하지 않으며 인간이 이해할 수 있도록 철저한 분석과 필터링이 필요한 많은 반복 및 (대부분) 중복 항목을 포함합니다.

여기서 이 작업을 위해 설계된 컴퓨터 응용 프로그램인 Logwatch가 작동합니다.

Logwatch 입력

로그 관리는 주로 검색, 로그 회전/보존 및 보고로 구성된 영역입니다. Logwatch는 컴퓨터에서 발생하는 활동의 짧은 다이제스트를 매일 분석하고 보고하여 간단한 로그 관리를 도와주는 애플리케이션입니다.

Logwatch에 의해 생성된 보고서는 시스템에서 실행되는 서비스(즉, 애플리케이션)별로 분류되며, 상대적으로 간단한 구성 파일을 수정하여 원하는 서비스로 구성하거나 모두 함께 구성하도록 구성할 수 있습니다. 또한 Logwatch를 사용하면 특정 요구 사항에 대한 사용자 지정 분석 스크립트를 만들 수 있습니다.

Logwatch 설치

참고: Logwatch는 현재 서비스나 워크로드를 방해하지 않는 무해한 애플리케이션입니다. 그러나 항상 그렇듯이 새 시스템에서 먼저 시도하고 백업을 수행하는 것이 좋습니다.

CentOS/RHEL에서

RHEL 기반 시스템(예: CentOS)에 Logwatch를 설치하는 것은 매우 간단합니다. 다양한 Perl 스크립트로 구성된 응용 프로그램이므로 특정 관련 종속성이 필요합니다. yum 패키지 관리자를 사용할 예정이므로 자동으로 처리됩니다. mailx가 이미 설치되어 있지 않으면 Logwatch가 프로세스 중에도 다운로드합니다.

CentOS/RHEL에 Logwatch를 설치하려면 다음을 실행합니다.

$ yum install -y logwatch

우분투/데비안에서

Debian 기반 시스템(예: Ubuntu)에서 Logwatch를 얻는 것은 패키지 관리자(적성 v. yum)의 차이점을 제외하고 위에서 설명한 프로세스와 매우 유사합니다.

Ubuntu/Debian에 Logwatch를 설치하려면 다음을 실행합니다.

$ aptitude install -y logwatch

Logwatch 구성

각 실행 중에 수동으로 해당 설정을 재정의할 수 있지만 일반적으로 공통 구성을 사용하여 Logwatch를 매일 실행하는 것이 좋습니다.

Logwatch의 일반 구성 설정

Logwatch의 기본 구성 파일은 다음 위치에 있습니다.

/usr/share/logwatch/default.conf/logwatch.conf

내용을 수정하기 위해 nano 텍스트 편집기를 사용하여 이 파일을 열어 보겠습니다.

$ nano /usr/share/logwatch/default.conf/logwatch.conf

위의 명령을 실행하면 응용 프로그램이 자동 또는 수동으로 실행될 때마다 사용하는 긴 변수 목록을 보게 됩니다.

사용을 시작하려면 이러한 기본값을 몇 가지 변경해야 합니다.

나중에 다시 돌아와 여기에 정의된 특정 설정을 수정해야 할 수도 있습니다. Logwatch에서 분석한 모든 서비스(응용 프로그램)는 위에서 설명한 대로(구성 #5) 이 파일에 나열됩니다. 가상 서버에서 응용 프로그램을 설치하거나 제거할 때 여기에서 설정을 변경하여 해당 전체 또는 일부에 대한 보고서를 계속 받을 수 있습니다(아래* 참조).

설정해야 하는 중요한 옵션:

참고: 문서에서 다음과 같이 변경할 때 화살표 키를 사용하여 줄을 위 또는 아래로 이동해야 합니다. 변경 사항(항목 1 - 6)을 완료하면 CTRL+X를 누른 다음 Y를 눌러 저장하고 닫아야 합니다. 변경 사항은 다음에 logwatch가 실행될 때 자동으로 적용됩니다.

1. 일일 다이제스트(보고서)가 전송되는 이메일 주소:

MailTo = root

root를 이메일 주소로 바꿉니다.

예: MailTo=sysadmin@mydomain.com

2. 이러한 보고서가 발신되는 보낸 이메일 주소:

MailFrom = Logwatch

Logwatch를 자신의 것으로 다시 바꿀 수 있습니다.

예: MailFrom=sysadmin@mydomain.com

3. 보고서의 범위 설정:

Range = yesterday

전체(처음부터 모두 사용 가능), 오늘(오늘만) 또는 어제(어제만)에 대한 보고서를 받는 옵션이 있습니다.

예: 범위=오늘

4. 보고서 세부 정보 설정:

Detail = Low

여기에서 보고서의 세부 정보를 수정할 수 있습니다. 옵션은 낮음, 중간높음입니다.

예: 자세히 = 중간

5. 분석할 서비스(애플리케이션) 설정:

기본적으로 Logwatch는 정말 광범위한 서비스를 다룹니다. 전체 목록을 보려면 /usr/share/logwatch/에 있는 scripts/services 파일의 내용을 쿼리할 수 있습니다.

예: ls -l /usr/share/logwatch/scripts/services

Service = All

모든 서비스 또는 일부 특정 서비스에 대한 보고서를 받도록 선택할 수 있습니다.

모든 서비스에 대해 줄을 다음과 같이 유지합니다. Service = All

특정 서비스에 대한 보고서를 받으려면 다음 예와 유사하게 수정하여 새 줄에 각 서비스를 나열합니다(예: 서비스 = [이름]).

예:

Service = sendmail
Service = http
Service = identd
Service = sshd2
Service = sudo
..

6. 일일 보고서 비활성화:

# DailyReport = No

일일 리포지토리를 생성하지 않으려면 이 행의 주석을 제거해야 합니다.

예: # DailyReport=No 대신 DailyReport=No

그리고 그게 다야! 이러한 변경을 수행한 후에는 서버의 로그 파일을 기반으로 하는 일일 보고서를 자동으로 받게 됩니다.

Logwatch에 대해 자세히 알아보고 보고서를 수신할 사용자 정의 서비스를 생성하려면 여기를 클릭하여 전체 문서를 참조하십시오.

수동으로 Logwatch 실행

필요할 때마다 명령줄을 통해 Logwatch를 수동으로 실행할 수 있는 옵션이 있다는 점을 언급해야 합니다.

사용 가능한 옵션은 다음과 같습니다.

logwatch  [--detail  level  ] [--logfile log-file-group ] [--service service-name ] [--print]
   [--mailto address ] [--archives] [--range range  ]  [--debug  level  ]  [--save  file-name  ]
   [--logdir  directory ] [--hostname hostname ] [--splithosts] [--multiemail] [--output output-
   type ] [--numeric] [--no-oldfiles-log] [--version] [--help|--usage]

옵션을 지정하지 않으면 구성 파일에서 읽습니다.

예:

$ logwatch --detail Low --mailto email@address --service http --range today

다음은 Logwatch 보고서의 모습입니다.

################### Logwatch 7.3.6 (05/19/07) ####################
        Processing Initiated: Wed Nov 15 15:07:00 2013
        Date Range Processed: today
                              ( 2013-Nov-15 )
                              Period is day.
      Detail Level of Output: 0
              Type of Output: unformatted
           Logfiles for Host: host_name
                 ##################################################################
    
 --------------------- Postfix Begin ------------------------

    3.453K  Bytes accepted                             3,536
    3.453K  Bytes delivered                            3,536
 ========   ================================================

        3   Accepted                                 100.00%
 --------   ------------------------------------------------
        3   Total                                    100.00%
 ========   ================================================

        3   Removed from queue
        2   Delivered
        1   Sent via SMTP

        1   Connection failure (outbound)

        1   Postfix start


 ---------------------- Postfix End -------------------------


 --------------------- Connections (secure-log) Begin ------------------------

 New Users:
    apache (48)

 New Groups:
    apache (48)


 **Unmatched Entries**
    groupadd: group added to /etc/group: name=apache, GID=48: 1 Time(s)
    groupadd: group added to /etc/gshadow: name=apache: 1 Time(s)

 ---------------------- Connections (secure-log) End -------------------------

 --------------------- SSHD Begin ------------------------


 SSHD Started: 2 Time(s)

 Users logging in through sshd:
    root:
       ip_addr (ip_addr): 1 time

 ---------------------- SSHD End -------------------------
    
 --------------------- yum Begin ------------------------


 Packages Installed:
    apr-1.3.9-5.el6_2.x86_64
    apr-util-1.3.9-3.el6_0.1.x86_64
    perl-YAML-Syck-1.07-4.el6.x86_64
    4:perl-5.10.1-131.el6_4.x86_64
    mailx-12.4-6.el6.x86_64
    1:perl-Pod-Simple-3.13-131.el6_4.x86_64
    1:perl-Pod-Escapes-1.04-131.el6_4.x86_64
    3:perl-version-0.77-131.el6_4.x86_64
    httpd-2.2.15-29.el6.centos.x86_64
    4:perl-libs-5.10.1-131.el6_4.x86_64
    mailcap-2.1.31-2.el6.noarch
    perl-Date-Manip-6.24-1.el6.noarch
    1:perl-Module-Pluggable-3.90-131.el6_4.x86_64
    httpd-tools-2.2.15-29.el6.centos.x86_64
    apr-util-ldap-1.3.9-3.el6_0.1.x86_64
    logwatch-7.3.6-49.el6.noarch

 ---------------------- yum End -------------------------

제출자: