Apache 웹 서버 로그 옆에 운영 체제의 모든 종류의 (전문적인) 로그와 전혀 접촉하지 않았다고 가정하십시오. 로깅은 몇 가지 기본 사항을 이해하지만 모두 함께 아주 새로운 주제입니다. 현재이 주제에 대해 완전히 배우는 투자는 상당히 큰 것처럼 보이지만 가장 추상적 인 개념보다 더 많은 것을 알 가치가 있다면 아직 알지 못합니다.
그 상황에 처한 사람이 로깅에 대해 배우기 위해 어떤 자료 (자습서, 매뉴얼 페이지, 서적)를 소비해야한다고 제안 하시겠습니까?
일반 Linux 사용자는 매일 / 매월 어떤 로그를 읽어야합니까? 그것들이 인간의 가독성을 위해 쓰여졌거나 일반적으로 다른 도구에 의해 평가되고 사용된다는 가정이 맞습니까?
일반 * nix 사용자 및 소프트웨어 개발자는이 로그에 대해 무엇을 알아야합니까?
엄청난 양의 이벤트로 전문 웹 서버를 관리하지 않을 경우 로그 순환에 대해 무엇을 알아야합니까?
답변
[이것은 시스템 시스템에서 저널이 널리 채택되기 몇 년 전에 작성되었으며이를 다루지 않습니다. 현재 (늦은 2018) 모두 후술 journald 및 (R) 시스템 로그는, 예로서 데비안 배포판에 사용된다. rsyslog를 함께 사용하려면 rsyslog를 설치해야 할 수도 있지만 저널링과의 통합은 간단합니다.]
이 주제는 일반적으로 리눅스에 대해 표준화되어 있기 때문에 우분투와 관련하여 로깅에 대해서는 구체적으로 많이 언급하지 않을 것입니다. 내 말을 들어). 또한이 질문에 대한 답을 넘어서 “로그를 읽는 방법”에 대해서는 많이 말하지 않을 것입니다.
그것들이 인간의 가독성을 위해 쓰여졌거나 일반적으로 다른 도구에 의해 평가되고 사용된다는 가정이 맞습니까?
나는 그것이 응용 프로그램에 달려 있다고 생각하지만, 일반적으로 적어도 syslog에 들어가는 것과 관련하여 (아래 참조) 사람이 읽을 수 있어야합니다. “나에게 의미있는 것은”또 다른 문제입니다. 그러나 특정 목적을 위해 표준 도구 (grep, awk 등)로 구문 분석하는 방식으로 구성 될 수도 있습니다.
누구든지 먼저 자체 로깅을 수행하는 응용 프로그램과 시스템 로거를 사용하는 응용 프로그램이 구분됩니다. 아파치는 기본적으로 전자를 사용하지만 나중에 수행하도록 구성 할 수 있습니다 (대부분의 사람들은 바람직하지 않은 것으로 생각합니다). 자체 로깅을 수행하는 응용 프로그램은 파일의 위치를 사용하여 어떤 식 으로든 그렇게 할 수 있으므로 그에 대해 말할 것이 많지 않습니다. 시스템 로거는 일반적으로이라고합니다 syslog
.
syslog
“Syslog”는 실제로 일반적으로 syslogd 라고 하는 데몬 프로세스로 구현 되는 표준 입니다 (d는 데몬 용입니다!). 우분투를 포함하여 리눅스에서 현재 사용중인 주요 syslog 데몬은 입니다. Rsyslogd는 많은 작업을 수행 할 수 있지만 대부분의 배포판에서 기본적으로 구성되어있는 기존의 syslog를 에뮬레이트하여 파일을 일반 텍스트 파일로 정렬합니다 . 에 대한 설명서를 찾을 수 있습니다 (.도 있지만 소스 패키지의 예는 and )입니다. 존재하는 경우 HTML이지만 스택 교환에서는 로컬 파일 링크 포함을 허용하지 않습니다.rsyslogd
/var/log
/usr/share/doc/rsyslog-doc-[version]
/usr/share/doc/rsyslog-[version]
NEWS
ChangeLog
file://usr/share/doc/rsyslog-doc/index.html
복사하여 붙여 넣기를 시도 할 수 있습니다. 없는 경우 별도의 패키지에 설치되지 않은 것일 수 있습니다. 포장 시스템에 문의하십시오 (예 🙂 apt-cache search rsyslog | grep doc
.
이 구성에있는 /etc/rsyslog.conf
수동 페이지를 갖고, man rsyslog.conf
수동 페이지 미세하게 참조하면서 있지만 소개 꿰뚫어 덜 수있다. 다행히도 rsyslog.conf의 기본 사항은 많은 소개와 자습서가있는 기존 syslog.conf의 기본 사항을 따릅니다. 이것은 예를 들어,; 로컬 rsyslog.conf를 들여다 보면서 설비 와 우선 순위를 이해하는 것이 중요합니다 ( “우선 순위”는 때때로 로그 레벨 이라고도 함)), 이는 위에서 언급 한 syslog 표준의 일부이므로 이 표준이 중요한 이유는 rsyslog가 실제로 커널을 통해 내용을 가져오고 커널이 구현하는 것이 표준이기 때문입니다.
$
rsyslog.conf 의 지시문 과 관련하여 이들은 rsyslog에 따라 다르며 해당 선택적 doc 패키지를 설치하는 경우에 대한 안내서를 찾을 수 있습니다 rsyslog_conf_global.html
.
재미를 … 당신은 응용 프로그램에서 시스템 로그, 모양을 사용하는 방법에 대해 궁금해하는 경우 man logger
와 man 3 syslog
.
로그 회전
로그를 회전시키는 규범적인 수단은이라는 도구를 사용하는 logrotate
것입니다 man logrotate
. logrotate를 사용하는 규범적인 방법은 cron 데몬 을 사용하는 것이지만, 그렇게하지 않아도됩니다 (예 : 매일 데스크탑을 끄는 경향이있는 경우, syslog가 시작되기 전에 부팅 할 때 한 번만 수행 할 수도 있지만, 분명히 파일 시스템이 마운트 된 후 rw).
logrotate에 대한 좋은 소개가 있습니다 . 참고 logrotate에 그냥 syslog에 물건되지 않습니다 , 그것은 모두에서 모든 파일을 사용할 수 있습니다. 기본 구성 파일은 /etc/logrotate.conf
이지만 구성에 “include”지시문이 있으므로 일반적으로 대부분의 항목은 /etc/logrotate.d
디렉토리의 개별 파일로 이동합니다 (여기서 d는 디먼이 아닌 디렉토리에 대한 것입니다; logrotate는 디먼이 아닙니다).
logrotate를 사용할 때 고려해야 할 중요한 사항 은 응용 프로그램이 실행되는 동안 로그 파일이 “회전”(즉, 이동) 될 때 응용 프로그램이 다시 작동 하는 방식입니다. WRT (r) syslogd, 해당 로그에 쓰기를 중단합니다 (이에 대한 보안 타당성이 있다고 생각합니다). 이를 처리하는 일반적인 방법은 syslog에게 재시작하고 모든 파일을 다시 열도록 postrotate
지시 하는 것입니다. 따라서 SIGHUP을 syslog 데몬으로 보내는 logrotate conf 파일에 지시문 이 표시됩니다 .