“커널 링 버퍼”,“사용자 수준”,“로그 수준”의 개념은 무엇입니까?


35

나는 종종 "커널 링 버퍼", "사용자 수준", "로그 수준"이라는 단어와 다른 단어들이 함께 나타나는 것을 보았습니다. 예 :

/ var / log / dmesg 커널 링 버퍼 정보가 들어 있습니다.

/var/log/kern.log 모든 로그 수준의 커널 메시지 만 포함

/var/log/user.log 모든 사용자 레벨 로그에 대한 정보가 들어 있습니다.

그들은 모두 로그에 관한 것입니까? 그들은 어떻게 관련되고 다른가?

"레벨"이란 여러 레벨의 계층 구조를 상상할 수 있습니까?

"사용자 수준"은 "사용자 공간"과 관련이 있습니까?

어떤 식 으로든 런레벨 또는 보호 링 과 관련이 있습니까?

답변:


41

예,이 모든 것은 로깅과 관련이 있습니다. 아니요, 런레벨 또는 "보호 링"과 관련이 없습니다.

커널은 로그를 링 버퍼에 보관합니다. 그 주된 이유는 syslog 데몬이 시작하여 수집 할 수있을 때까지 시스템 시작 로그가 저장되기 때문입니다. 그렇지 않으면 syslog 데몬을 시작하기 전에 로그 기록이 없습니다. 해당 링 버퍼 dmesg의 내용은 명령을 사용하여 언제든지 볼 수 있으며 해당 내용은 /var/log/dmesgsyslog 데몬이 시작 되는 것처럼 저장 됩니다.

커널에서 제공되지 않은 모든 로그는 syslog 데몬으로 생성 될 때 전송되므로 버퍼에 보관되지 않습니다. 커널 로그는 또한 생성 될 때 syslog 데몬에 의해 선택되지만 링 버퍼에 (필수적으로는 틀림없이) 계속 저장됩니다.

로그 수준은 syslog (3) 맨 페이지 에 설명되어 있으며 다음과 같습니다.

  • LOG_EMERG : 시스템을 사용할 수 없습니다
  • LOG_ALERT : 즉시 조치를 취해야합니다
  • LOG_CRIT : 중요한 조건
  • LOG_ERR : 오류 조건
  • LOG_WARNING : 경고 조건
  • LOG_NOTICE : 정상이지만 중요한 조건
  • LOG_INFO : 정보 메시지
  • LOG_DEBUG : 디버그 수준 메시지

각 수준은 이전 수준보다 덜 중요하도록 설계되었습니다. 한 수준에서 로그를 기록하는 로그 파일도 더 중요한 모든 수준에서 로그를 기록합니다.

/var/log/kern.log/var/log/mail.log(예를 들어) 의 차이점 은 레벨이 아니라 시설 또는 범주와 관련이 있습니다. 범주는 맨 페이지에도 나와 있습니다.


감사. (1) "사용자 수준"은 "사용자 공간"과 관련이 있습니까? 에서 (2) 당신은 말했다, 무엇을 /var/log/kern.log하고 /var/log/dmesg커널 메시지와 동일한 콘텐츠를해야합니까? 그러나 그들의 내용은 동일하지 않습니다.
Tim

내가 아는 한 "사용자 수준"은 문제가되지 않습니다. syslog 레벨은 syslog 메시지의 "중요"레벨이며 레벨을 나열했으며 사용자 공간과 커널 공간과는 아무런 관련이 없습니다. 부팅시 /var/log/kern.logdmesg내용 (아마 다른 형식)을 포함해야합니다 . 부팅 이후 오랜 시간이 걸리지 않고 해당 내용이 순환되지 않는 한.
Celada

두 번째 질문은 : dmesg커널 링 버퍼의 현재 값을 인쇄하는 동안 버퍼의 과거 / 이전 값은에 저장됩니다 /var/log/dmesg. 따라서 dmesg출력은 최근의 일부 /var/log/dmesg컨텐츠이며 다른 것입니다. 그렇다면 /var/log/dmesg( dmesg의견이 아닌) 내용이 /var/log/kernel.log동일합니까?
Tim

언제에 따라! 부팅 후 곧 /var/log/dmesg내용이 끝날 것입니다 /var/log/kern.log. 훨씬 나중에, 그것은 거기에 없을 것이고, 회전했을 것입니다. 일반적으로 /var/log/kern.log커널 로그 링 버퍼의 특정 스냅 샷보다 오래된 로그와 스냅 샷보다 새로운 로그가 포함됩니다.
Celada


17

적어도 귀하의 질문에 대한 첫 번째 부분에 대답하려면 dmesg:

/var/log/dmesg 부팅시 커널이 생성 한 메모리 버퍼 인 '커널 링 버퍼 (kernel ring buffer)'의 내용을 저장하는데, 부트 로더 단계를지나 자마자 생성되는 로그 데이터를 저장합니다.

링 버퍼는 새로운 메시지가 들어올 때 가장 오래된 메시지를 제거하는 항상 일정한 크기의 특수한 종류의 버퍼입니다. 커널 링 버퍼에 저장된 텍스트는 Unix를 처음 부팅 할 때 화면에서 깜박 거리는 것을 나타냅니다. 콘솔 모드의 기계와 유사합니다 (스플래쉬 화면 없음, Plymouth). 커널 로그는 메모리 버퍼에 저장되므로 시스템이 syslog데몬이 인계 할 수 있는 지점까지 부트 스트랩 될 때까지 부트 로그가 있어야합니다 .

dmesgLinux util-linux에서 kernel.org에서 공개 한 시스템 유지 보수 도구 의 필수 패키지의 일부입니다 . dmesg(1)매뉴얼 페이지 에 따르면

dmesg는 커널 링 버퍼를 검사하거나 제어하는 ​​데 사용됩니다.

참조 : http://www.computerhope.com/unix/dmesg.htm

'systemd'init에서이 명령을 사용하여 커널 링 버퍼를 인쇄 할 수 있습니다 :
# journalctl --dmesg or journalctl -k, thxs for correction @don_crissti

dmesg | grep -i ethernet 예를 들어 명령 을 실행 하면 문자열 'ethernet'에 대한 커널 링 버퍼가 구문 분석됩니다.

이것이 문의의 첫 부분에 도움이되기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.