지식 Profitserver 서비스를 사용하기 위한 간단한 지침
본관 지식 Linux 로그를 읽는 방법 및 찾을 수 있는 위치

Linux 로그를 읽는 방법 및 찾을 수 있는 위치


서버 성능에 문제가 발생하면 가장 먼저 리눅스 로그를 확인 해야 합니다 . 시스템 로그에는 커널이나 다양한 서비스와 같은 운영 체제의 여러 구성 요소에서 발생하는 유용한 진단 메시지가 포함되어 있으므로, 대부분의 경우 로그에서 문제의 원인을 찾을 수 있습니다.

로그의 모든 메시지는 운영 체제의 특정 이벤트의 결과로 생성됩니다. 사용자, 권한 부여, 서비스 종료 또는 애플리케이션 실패. 이러한 이벤트는 중요도에 따라 우선순위가 다릅니다. Linux에는 다음과 같은 유형의 이벤트가 있습니다.

  1. emerg - 실패, 최우선순위;
  2. alert - 긴급 경고
  3. crit - 중요 사건;
  4. err - 일반적인 오류;
  5. warn - 일반 경고;
  6. notice - 알림;
  7. info - 정보 메시지;
  8. debug - 디버깅 정보

현재 리눅스에서 주요 로그 수집 서비스는 rsyslog 와 systemd-journald 입니다 . 이들은 대부분의 최신 배포판 패키지에 포함되어 있으며 독립적으로 작동합니다.

rsyslog

이 서비스의 로그는 일반 텍스트 파일 형태로 " /var/log/ " 폴더 에 저장됩니다 . 로그 메시지는 이벤트 유형에 따라 다른 파일에 저장됩니다. 예를 들어, " /var/log/auth.log "에는 시스템에서 사용자의 권한 부여에 대한 정보가 포함되고, " /var/log/kern.log "에는 커널 메시지가 포함됩니다. 파일 이름은 배포판 패키지에 따라 다를 수 있으므로, " /etc/rsyslog.d/50-default.conf " 설정 파일을 살펴보면 어떤 내용이 어디에 저장되는지 알 수 있습니다 .

Сбор логов Linux утилитой rsyslog

이 규칙들은 각 유형의 로그 메시지가 포함된 파일을 보여줍니다. 왼쪽 부분에는 " [소스].[우선순위] " 형식으로 메시지 유형이 표시되고, 오른쪽 부분에는 로그 파일 이름이 표시됩니다. 메시지 유형을 작성할 때 " * " 문자를 추가할 수 있습니다. 이는 빈 값 또는 " 없음 "을 의미하며 목록에서 해당 메시지를 제거합니다. 이제 첫 번째와 두 번째 규칙을 자세히 살펴보겠습니다.

“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”

첫 번째 규칙은 인증 메커니즘에서 수신된 모든 메시지가 " /var/log/auth.log " 파일 에 기록된다는 것을 의미합니다 . 모든 인증 시도(성공 여부와 관계없이)가 이 파일에 기록됩니다. 두 번째 규칙은 인증과 관련된 메시지를 제외한 모든 메시지가 " /var/log/syslog " 파일에 기록된다는 것을 나타냅니다. 이 두 파일은 일반적으로 가장 많이 사용되는 파일입니다. 다음 규칙들은 커널 로그 " kern.* "와 메일 서비스 로그 " mail.* " 의 저장 경로를 정의합니다.

로그 파일은 less , cat , tail 과 같은 텍스트 편집기를 사용하여 열 수 있습니다 . 이제 " /var/log/auth.log " 파일을 열어 보겠습니다.

less /var/log/auth.log
Запись в log-файле Линукс о неудачной попытке авторизации SSH

파일의 모든 줄은 애플리케이션이나 서비스에서 수신한 별도의 메시지입니다. 출처와 관계없이 모든 메시지는 하나의 형식을 가지고 있으며 5개의 부분으로 구성됩니다. 스크린샷에서 강조 표시된 메시지를 예로 들어보겠습니다.

  1. 메시지 타임스탬프 - “12월 06일 18:33:XNUMX”
  2. 메시지를 보낸 컴퓨터의 이름 - “vds”
  3. 메시지를 보낸 애플리케이션 또는 서비스의 이름 - “sshd”
  4. 프로세스 ID - [653]
  5. 메시지 텍스트 - “188.19.42.165 포트 2849 ssh2에서 mihail의 비밀번호가 수락되었습니다.”

이는 SSH에 성공적으로 연결된 예입니다.

로그인 시도가 실패한 경우의 결과는 다음과 같습니다.

Linux에 대한 설명

이 파일에는 고급 권한이 있는 명령도 기록됩니다.

Linux에서 로그를 읽는 방법

/var/log/syslog 파일을 열어 보겠습니다.

스크린샷에서 강조 표시된 메시지는 네트워크 인터페이스 종료에 대한 메시지입니다.

logorotate 사용법

긴 텍스트 파일에서 정보를 검색하려면 grep 유틸리티를 사용하십시오. pptpd 서비스에서 수신한 모든 메시지는 " /var/log/syslog " 파일 에서 찾을 수 있습니다.

grep 'pptpd' /var/log/syslog
파일 “/etc/logrotate.d/rsyslog”

진단 과정에서 `tail` 유틸리티를 사용하여 파일의 마지막 몇 줄을 표시할 수 있습니다. ` tail -f /var/log/syslog` 명령어를 사용하면 실시간으로 기록되는 로그를 확인할 수 있습니다.

rsyslog 서비스는 매우 유연하고 강력합니다. 로컬 시스템뿐만 아니라 엔터프라이즈 수준에서도 로그를 수집하는 데 사용할 수 있습니다. 자세한 내용은 공식 웹사이트 (https://www.rsyslog.com/ )에서 확인할 수 있습니다.

Linux에서의 로그 회전

로그 기록은 지속적으로 이루어지기 때문에 파일 크기가 끊임없이 증가합니다. 로그 순환 메커니즘은 오래된 로그를 자동으로 보관하고 새 파일을 생성합니다. 설정된 규칙에 따라 매일, 매주, 매월 또는 파일 크기 제한에 따라 순환이 실행될 수 있습니다. 새 로그가 생성되면 오래된 로그는 삭제되거나 이메일로 전송될 수 있습니다. 로그 순환은 logrotate 유틸리티를 통해 수행됩니다. 주요 설정은 " /etc/logrotate.conf " 파일 에서 확인할 수 있습니다 . 또한, " /etc/logrotate.d/ " 폴더 의 파일 내용도 관리됩니다.

새로운 규칙은 메인 설정 파일에 기록할 수 있습니다. 하지만 " /etc/logrotate.d/ " 디렉터리에 별도의 파일을 만드는 것이 가장 좋습니다. 기본적으로 이 디렉터리에는 몇 개의 파일이 있습니다.

Линукс의 나스트라이바엠 회전 로고

rsyslog 서비스 의 로그 순환 규칙이 포함된 파일 " /etc/logrotate.d/rsyslog " 를 살펴보겠습니다.

Пример вывода всех ошибок pptpd в лог-файлах

첫째, 규칙에는 로그 파일의 경로가 포함되어야 하며 그 다음에 곡선 괄호로 묶인 모든 지침이 있어야 합니다.

  • 회전 7 - 보관할 파일 수 - 7
  • 매일 - 매일 새 파일을 만듭니다
  • 압축 - 오래된 파일을 압축하고 보관합니다.
Учимся читать 논리 린누크스

스크린샷에서 볼 수 있듯이 " /var/log/ " 폴더에는 기본 로그 파일인 " syslog "와 설정 파일의 규칙에 해당하는 7개의 아카이브 파일이 있습니다 .

logrotate에 대한 더 자세한 설명은 " man logrotate " 명령을 실행하여 매뉴얼에서 확인할 수 있습니다.

Linux 로그 수집 - journald

로그 수집 서비스인 systemd-journald는 초기화 시스템 systemd 의 일부입니다 . Linux 로그 파일은 " /var/log/journal/ " 디렉터리 에 특수한 형식으로 저장되며 journalctl 유틸리티를 사용하여 열 수 있습니다 . 레코드 형식은 rsyslog 와 완전히 동일합니다.

속성 없이 `journalctl` 명령어를 사용하면 모든 레코드가 표시되지만, 로그 크기가 큰 경우에는 적합하지 않습니다. 이 유틸리티의 몇 가지 옵션을 살펴보겠습니다.

  • journalctl -b - 마지막 시작 이후의 모든 레코드 표시
  • journalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10" - 특정 기간 내의 기록을 보여줍니다
  • journalctl -u pptpd - 특정 서비스의 기록을 보여줍니다
  • journalctl -k - 커널 메시지 표시
  • journalctl -p err - 특정 우선순위의 메시지를 표시합니다. 이 경우 우선순위가 더 높은 메시지(crit, alert, emerg)를 표시합니다.
  • journalctl -f - 실시간으로 메시지 표시

더 나은 유연성을 위해 이러한 옵션들을 조합할 수 있습니다. pptpd 서비스 의 모든 오류를 보여드리겠습니다.

journalctl -u pptpd -p err
마지막에 사용

실행 파일의 경로를 속성으로 지정하면 해당 파일에서 보낸 모든 메시지가 표시됩니다. 2020년 2월 18일 04시 15분 이후 " /usr/bin/sudo " 파일에서 보낸 모든 메시지를 표시해 보겠습니다. 실제로는 더 높은 권한으로 실행된 모든 명령이 표시됩니다.

journalctl -S "2020-02-18 04:15" /usr/bin/sudo
사령관 라스트비

다음 명령을 실행하여 로그 파일이 차지하는 디스크 공간의 양을 확인하세요.

journalctl --disk-usage

로그 파일을 1Gb로 제한하려면 다음 명령을 실행하세요.

journalctl --vacuum-size=1G

바이너리 파일 열기

이제 모든 로그인 시도가 저장되는 " /var/log/ " 폴더 에 있는 몇 가지 특수 파일을 살펴보겠습니다 . 이 파일들은 바이너리 파일이므로 특수 프로그램으로만 열 수 있습니다.

/var/log/wtmp 파일 에는 성공적인 로그인 시도에 대한 정보가 포함되어 있습니다. last 유틸리티를 사용하여 해당 파일을 열 수 있습니다.

lastlog를 사용하세요

/var/log/btmp - 모든 로그인 실패 시도 기록이 포함되어 있습니다. lastb 명령어로 고급 권한으로 열 수 있습니다. -n 속성은 파일 끝에서부터 표시할 줄 수를 지정합니다.

/var/log/lastlog - 각 계정 기록의 마지막 로그인 시간이 기록되어 있습니다. lastlog 명령어 로 열 수 있습니다.

❮ 이전 기사 Linux 텍스트 편집기
다음 기사 ❯ CentOS에서 네트워크 인터페이스를 구성하는 방법

VPS에 대해 문의하세요

저희는 언제든지 여러분의 질문에 답변할 준비가 되어 있습니다.