InfraPlatform

`kernel.printk` 커널 메시지 출력 레벨을 설정

IT오이시이 2024. 11. 15. 07:40
728x90




`kernel.printk` 커널 로그 메시지 출력 레벨 설정


`커널 메시지'는 리눅스 운영체제 내부의 오류나 하드웨어적인 오류를 찾는데 필요한 로그 메시지 입니다.

* 커널메시지는 시스템이 부팅될떼 하드웨어 드라이브를 로딩하거나 커널 내부 명령이나 모듈의 오류 들이 발생할때  콘솔을 통해 오류가 출력이 됩니다.

`kernel.printk`는
커널 로그 출력 레벨을 설정하는 데 사용됩니다. 이 설정을 통해 콘솔에 출력되는 로그의 양을 조절할 수 있습니다.


(kernel.printk 활용 용도)

시스템 관리자는 로그의 양과 중요도를 조절하여 거널 디버깅,  성능최적화, 보안등 효율적인 시스템 운영하는데  도울 수 있습니다.


1) 디버깅: 시스템 문제를 진단하기 위해 커널 메시지를 모니터링할 때 유용합니다.

2) 성능 최적화: 불필요한 로그 출력을 줄여 시스템 성능을 향상할 수 있습니다.

3) 보안: 중요한 로그 메시지만 출력하여 보안 로그를 관리할 수 있습니다.




(kernel.printk 사용방법)

다음은 `kernel.printk` 설정 방법입니다:


1. 리눅스 콘솔 로그 현재 설정 확인

```bash
cat /proc/sys/kernel/printk
```
이 명령어를 통해 현재 설정된 로그 레벨을 확인할 수 있습니다.


2. 리눅스 콘솔 로그 설정 변경 방법

1). 일시적 변경 (재부팅 시 초기화됨)
   ```bash
   echo 4 4 1 7 > /proc/sys/kernel/printk
   ```
   여기서 각 숫자는 다음을 의미합니다:
   - 첫 번째 숫자: 콘솔 로그 레벨
   - 두 번째 숫자: 기본 메시지 로그 레벨
   - 세 번째 숫자: 최소 콘솔 로그 레벨
   - 네 번째 숫자: 기본 콘솔 로그 레벨

2). 영구적 변경
   `/etc/sysctl.conf` 파일에 다음 줄을 추가합니다:

   ```bash
   kernel.printk = 4 4 1 7
   ```
   그런 다음, 다음 명령어를 실행하여 변경 사항을 적용합니다:

   ```bash
   sysctl -p
   ```


3.  dmesg 명령어 사용
`dmesg` 명령어를 사용하여 콘솔 로그 레벨을 변경하여 볼 수 있습니다.


```bash
dmesg -n 5
```

이 방법들을 통해 시스템 로그의 양을 조절하여 성능 저하를 방지할 수 있습니다.




4. 커널 로그레벨 종류 (kernel log level )

dmesg -n 5 외 같이 명령어에서 설정할 수 있는 로그 레벨 종류는 다음과 같습니다:


0 (KERN_EMERG): 시스템이 사용할 수 없을 정도로 심각한 메시지.
1 (KERN_ALERT): 즉시 조치가 필요한 메시지.
2 (KERN_CRIT): 심각한 상태를 나타내는 메시지.
3 (KERN_ERR): 오류 조건을 나타내는 메시지.
4 (KERN_WARNING): 경고 조건을 나타내는 메시지.
5 (KERN_NOTICE): 정상적이지만 주목할 만한 조건을 나타내는 메시지.
6 (KERN_INFO): 정보성 메시지.
7 (KERN_DEBUG): 디버깅 메시지.

이 로그 레벨을 통해 시스템 관리자는 필요한 수준의 로그만 출력하도록 설정할 수 있습니다

728x90
반응형