Section 10.1: 서비스에서 발생한 문제점 진단하기
Fedora => 15, Ubuntu (서버 및 데스크탑 버전) >= 15.04, 그리고 RHEL/CentOS >= 7 와 같은 systemd 기반의 시스템들에서는 아래와 같은 명령어를 사용할 수 있다:
systemctl status [servicename]
...여기서 [servicename] 는 확인하고자 하는 서비스를 나타낸다; 예를 들어, systemctl status sshd
와 같이 수행할 수 있다.
위 명령어는 기본적인 상태 정보와 함께 최근 발생한 에러 로그가 있는 경우 이를 표시해줄 것이다.
journalctl
를 이용하면 추가적인 에러 정보를 더 확인할 수 있다. 예를 들어, journalctl -xe
명령어는 최근 1000 개의 로그를 pager 에 (less
와 같은) 불러들인 후, 가장 마지막 줄로 이동시켜 줄 것이다. journalctl -f
명령을 이용하면, 로그 출력 후 바로 종료하지 않고 새로운 로그가 더 들어올 때까지 계속해서 대기하게 될 것이다.
특정 서비스에 대한 로그들만 확인하기 위해서는 아래와 같이 -t
옵션을 이용한다:
journalctl -f -t sshd
다른 유용한 옵션들로는, 로그 우선순위 관련 지정을 하는 -p
(-p warnings
은 warnings 밑 그 상위 로그들만 출력한다) 와, "가장 최근 부팅 이후 로그" 를 나타내는 -b
, 그리고 "이후" 를 나타내는 -S
등이 있다 — 이들을 모두 사용해 보면, journalctl -p err -S yesterday
를 입력하여 어제 이후로의 모든 에러 로그들을 확인할 수 있다.
만약 journalctl
이 사용 가능하지 않거나, 시스템 journal 을 사용하지 않는 응용 프로그램의 에러 로그를 확인하고자 한다면, 파일의 가장 마지막 몇개의 라인을 보여주는 tail
명령어를 활용할 수 있다. -f
("follow" 의 의미) 옵션은 tail
의 매우 유용한 옵션인데, 이는 tail
로 하여금 파일에 새로 추가되는 데이터를 계속해서 출력하게 해 준다. 시스템상의 대부분의 서비스들의 메시지를 확인하고자 한다면:
tail -f /var/log/messages
혹은, 서비스가 특수한 권한을 가져 민감한 정보들을 로그로 남기는 경우에는:
tail -f /var/log/secure
어떤 서비스들은 자신만의 독자적인 로그 파일을 가지고 있는데, 좋은 예로는 리눅스의 audit daemon 인 auditd
가 있다. 이는 자신의 로그를 /var/log/audit/
에 저장하게 되어 있다. 만약 특정 서비스 관련 출력 결과가 /var/log/messages
에 보이지 않는다면, /var/log/
아래에서 해당 서비스 전용 로그 파일을 찾아보도록 한다
본 문서는 Linux Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
[출처] https://books.goalkicker.com/GitBook/
'번역 > Linux Notes for Professionals' 카테고리의 다른 글
10.3: 서비스의 상태 확인하기 (0) | 2020.08.03 |
---|---|
10.2: 서비스를 시작하고 중지시키기 (0) | 2020.08.03 |
9.2: systemd 서비스 관리하기 (0) | 2020.07.28 |
9.1: Ubuntu 에서 동작중인 service 목록 확인하기 (0) | 2020.07.27 |
8.6: 파일 경로 일부를 제외하고 tar 압축 해제하기 (0) | 2020.07.27 |