노하우24 메인게시판

[리눅스] 네트워크 콘솔 설정

페이지 정보

작성자 최고관리자 작성일25-11-10 10:41 조회88회 댓글0건

본문

1) 리눅스 시스템에 시리얼 콘솔을 연결하기 어려운 경우, 네트워크 콘솔로 연결하여 syslog 내용을 네트워크로 전달 받을 수 있음.

라즈베리파이나 Embedded system에서 유용하게 사용할 수 있음.

 

modprobe netconsole netconsole=4444@<자신의 IP>/<인터페이스 eth0 or eth1>,6666@<원격지 IP>/<원격지 MAC>

echo "8 4 1 7" | tee /proc/sys/kernel/printk

sysctl -w kernel.printk_ratelimit=0

 

원격지에서는 netcat으로 udp 를 받으면 됨.

 nc -luk 6666 이런식으로 하면, 커널 패닉이나 기타 로그를 받을 수 있음.

 

 

* printk 메시지는 우선 순위를 0 ~ 7 의 값이 있고, 숫자가 작을수록 더 심각한 메시지임

 

0 EMERG, 1 ALERT, 2 CRIT, 3 ERR, 4 WARNING, 5 NOTICE, 6 INFO, 7 DEBUG

 

   echo "8 4 1 7" | tee /proc/sys/kernel/printk

         ^ ^ ^ ^

         | | | └──── 4) default_console_loglevel (콘솔 기본값: 보통 7)

         | | └───── 3) minimum_console_loglevel (최소 콘솔 로그레벨: 보통 1)

         | └────── 2) default_message_loglevel (태그 없는 printk의 기본 레벨: 보통 4=KERN_WARNING)

         └─────── 1) console_loglevel (지금 콘솔에 출력할 임계값)

 

예를 들어, 콘솔은 "메시지의 우선 순위" < console_loglevel 조건일 때, 출력함

 

즉,

 8 4 1 7 --> 0~7 전부 출력

 7 4 1 7 --> 0~6 만 출력

 4 4 1 7 --> 0~3 만 출력​ 

 

netconsole 로 전달되는 로그도 console_loglevel 값을 기준으로 전달됨

 

* 만약, netconsole 모듈이 커널에 포함되어 있다면, cmdline.txt (라즈베리의 경우) 에 다음을 추가하면, 부팅 시 콘솔 화면이 네트워크로 전송됨

  loglevel=8 netconsole=6665@<내IP>/eth0,6666@<원격지IP>/<원격지 MAC>

 

 

 

 

2) 아니면, rsyslogd 를 활성화 해서, /etc/rsyslogd.conf 파일 맨 마지막에 다음 줄 추가

 *.* @192.168.1.1:6666;RSYSLOG_TraditionalForwardFormat 

 

이렇게 하면 192.168.1.1 로 syslog 내용이 전달됨 똑같이 UDP 포트로 전달

 

댓글목록

등록된 댓글이 없습니다.