Unix / Linux-시스템 로깅

이 장에서는 Unix의 시스템 로깅에 대해 자세히 설명합니다.

Unix 시스템은 매우 유연하고 강력한 로깅 시스템을 갖추고있어 상상할 수있는 거의 모든 것을 기록한 다음 로그를 조작하여 필요한 정보를 검색 할 수 있습니다.

많은 버전의 Unix는 다음과 같은 범용 로깅 기능을 제공합니다. syslog. 정보를 기록해야하는 개별 프로그램은 정보를 syslog로 보냅니다.

Unix syslog 는 호스트 구성이 가능한 균일 한 시스템 로깅 기능입니다. 시스템은 프로그램을 실행하는 중앙 집중식 시스템 로깅 프로세스를 사용합니다./etc/syslogd 또는 /etc/syslog.

시스템 로거의 작동은 매우 간단합니다. 프로그램 은 구성 파일을 참조하는 syslogd로 로그 항목을 보냅니다 ./etc/syslogd.conf 또는 /etc/syslog 일치하는 항목이 발견되면 원하는 로그 파일에 로그 메시지를 기록합니다.

이해해야 할 4 가지 기본 syslog 용어가 있습니다.

Sr. 아니. 용어 및 설명
1

Facility

로그 메시지를 제출 한 애플리케이션 또는 프로세스를 설명하는 데 사용되는 식별자입니다. 예를 들어, 메일, 커널 및 ftp입니다.

2

Priority

메시지의 중요성을 나타내는 표시기입니다. 수준은 디버깅 정보에서 중요한 이벤트에 이르기까지 syslog 내에서 지침으로 정의됩니다.

Selector

하나 이상의 시설 및 레벨의 조합. 수신 이벤트가 선택기와 일치하면 조치가 수행됩니다.

4

Action

선택기와 일치하는 수신 메시지에 발생하는 일 — 작업은 메시지를 로그 파일에 기록하거나, 메시지를 콘솔 또는 다른 장치에 에코하거나, 로그인 한 사용자에게 메시지를 기록하거나, 다른 syslog 서버에 메시지를 보낼 수 있습니다.

Syslog 시설

이제 syslog 기능에 대해 이해하겠습니다. 선택기에 사용할 수있는 기능은 다음과 같습니다. 모든 기능이 모든 버전의 Unix에있는 것은 아닙니다.

시설 기술
1

auth

이름 및 비밀번호 요청 관련 활동 (getty, su, login)

2

authpriv

인증과 동일하지만 선택한 사용자 만 읽을 수있는 파일에 기록됩니다.

console

일반적으로 시스템 콘솔로 전달되는 메시지를 캡처하는 데 사용됩니다.

4

cron

크론 시스템 스케줄러의 메시지

5

daemon

시스템 데몬 포괄

6

ftp

ftp 데몬과 관련된 메시지

7

kern

커널 메시지

8

local0.local7

사이트별로 정의 된 지역 시설

9

lpr

라인 프린팅 시스템의 메시지

10

mail

메일 시스템과 관련된 메시지

11

mark

로그 파일에서 타임 스탬프를 생성하는 데 사용되는 의사 이벤트

12

news

네트워크 뉴스 프로토콜 (nntp)과 관련된 메시지

13

ntp

네트워크 시간 프로토콜과 관련된 메시지

14

user

일반 사용자 프로세스

15

uucp

UUCP 하위 시스템

Syslog 우선 순위

syslog 우선 순위는 다음 표에 요약되어 있습니다.

Sr. 아니. 우선 순위 및 설명
1

emerg

임박한 시스템 충돌과 같은 비상 상황은 일반적으로 모든 사용자에게 방송됩니다.

2

alert

손상된 시스템 데이터베이스와 같이 즉시 수정해야하는 조건

crit

하드웨어 오류와 같은 심각한 상태

4

err

일반적인 오류

5

Warning

경고

6

notice

오류는 아니지만 특수한 방법으로 처리해야하는 조건

7

info

정보 메시지

8

debug

프로그램을 디버깅 할 때 사용되는 메시지

9

none

메시지를 기록하지 않도록 지정하는 데 사용되는 의사 레벨

시설과 수준의 조합을 통해 기록되는 내용과 해당 정보가 어디로 가는지 식별 할 수 있습니다.

각 프로그램이 시스템 로거에 성실하게 메시지를 보내면 로거는 선택기에 정의 된 수준에 따라 추적 할 항목과 폐기 할 항목을 결정합니다.

레벨을 지정하면 시스템은 해당 레벨 이상의 모든 것을 추적합니다.

/etc/syslog.conf 파일

그만큼 /etc/syslog.conf파일은 메시지가 기록되는 위치를 제어합니다. 전형적인syslog.conf 파일은 다음과 같이 보일 수 있습니다.

*.err;kern.debug;auth.notice /dev/console
daemon,auth.notice           /var/log/messages
lpr.info                     /var/log/lpr.log
mail.*                       /var/log/mail.log
ftp.*                        /var/log/ftp.log
auth.*                       @prep.ai.mit.edu
auth.*                       root,amrood
netinfo.err                  /var/log/netinfo.log
install.*                    /var/log/install.log
*.emerg                      *
*.alert                      |program_name
mark.*                       /dev/console

파일의 각 줄에는 두 부분이 포함되어 있습니다.

  • message selector기록 할 메시지의 종류를 지정합니다. 예를 들어, 커널의 모든 오류 메시지 또는 모든 디버깅 메시지입니다.

  • action field메시지로 무엇을해야하는지 알려줍니다. 예를 들어, 파일에 넣거나 메시지를 사용자의 터미널로 보냅니다.

다음은 위의 구성에 대한 주목할만한 점입니다.

  • 메시지 선택기는 두 부분으로 구성됩니다. a facilitya priority. 예를 들어, kern.debug 는 커널 (시설)에 의해 생성 된 모든 디버그 메시지 (우선 순위)를 선택합니다.

  • 메시지 선택기 kern.debug 는 디버그보다 큰 모든 우선 순위를 선택합니다.

  • 시설 또는 우선 순위 대신 별표는 "모두"를 나타냅니다. 예를 들면*.debug 모든 디버그 메시지를 의미하며 kern.* 커널에 의해 생성 된 모든 메시지를 의미합니다.

  • 쉼표를 사용하여 여러 기능을 지정할 수도 있습니다. 세미콜론을 사용하여 둘 이상의 선택기를 함께 그룹화 할 수 있습니다.

작업 로깅

작업 필드는 다섯 가지 작업 중 하나를 지정합니다.

  • 파일 또는 장치에 메시지를 기록합니다. 예를 들면/var/log/lpr.log 또는 /dev/console.

  • 사용자에게 메시지를 보냅니다. 쉼표로 구분하여 여러 사용자 이름을 지정할 수 있습니다. 예 : root, amrood.

  • 모든 사용자에게 메시지를 보냅니다. 이 경우 작업 필드는 별표로 구성됩니다. 예 : *.

  • 프로그램에 메시지를 파이프하십시오. 이 경우 프로그램은 Unix 파이프 기호 (|) 뒤에 지정됩니다.

  • 다른 호스트의 syslog에 메시지를 보냅니다. 이 경우 작업 필드는 at 기호가 앞에 오는 호스트 이름으로 구성됩니다. 예 : @ tutorialspoint.com.

로거 명령

유닉스는 logger시스템 로깅을 처리하는 데 매우 유용한 명령입니다. 그만큼logger 명령은 syslogd 데몬에 로깅 메시지를 보내고 결과적으로 시스템 로깅을 유발합니다.

즉, 언제든지 명령 줄에서 확인할 수 있습니다. syslogd데몬 및 구성. logger 명령은 명령 줄에서 시스템 로그 파일에 한 줄 항목을 추가하는 방법을 제공합니다.

명령의 형식은-

logger [-i] [-f file] [-p priority] [-t tag] [message]...

다음은 매개 변수의 세부 사항입니다.

Sr. 아니. 옵션 및 설명
1

-f filename

파일 filename의 내용을 기록 할 메시지로 사용합니다.

2

-i

로거 프로세스의 프로세스 ID를 각 행에 기록합니다.

-p priority

지정된 우선 순위 (지정된 선택기 항목)로 메시지를 입력합니다. 메시지 우선 순위는 숫자로 지정하거나 Facility.priority 쌍으로 지정할 수 있습니다. 기본 우선 순위는 user.notice입니다.

4

-t tag

로그에 추가 된 각 행을 지정된 태그로 표시합니다.

5

message

내용이 공백으로 구분 된 지정된 순서로 함께 연결되는 문자열 인수입니다.

맨 페이지 도움말 을 사용 하여이 명령의 전체 구문을 확인할 수 있습니다 .

로그 회전

로그 파일은 매우 빠르게 증가하고 많은 양의 디스크 공간을 소비하는 경향이 있습니다. 로그 회전을 활성화하기 위해 대부분의 배포는 다음과 같은 도구를 사용합니다.newsyslog 또는 logrotate.

이러한 도구는 다음을 사용하여 자주 호출해야합니다. cron daemon. 자세한 내용 은 newsyslog 또는 logrotate에 대한 매뉴얼 페이지를 확인 하십시오.

중요한 로그 위치

모든 시스템 응용 프로그램은 다음 위치에 로그 파일을 만듭니다. /var/log및 하위 디렉토리. 다음은 몇 가지 중요한 응용 프로그램과 해당 로그 디렉토리입니다.

신청 예배 규칙서
httpd / var / log / httpd
삼바 / var / log / samba
크론 / var / log /
우편 / var / log /
mysql / var / log /