Linux��������ζ���(kernel oops)���⡼�ȥۥ��ȤǺμ褹����ˡ
���ε�ǽ��Ȥ��С�OS���԰դ���ߤ��Ƥ��ޤä����˼�ưŪ��reboot���ƥ����ӥ���Ƴ����뤳�Ȥ��Ǥ��ޤ���
������kernel��å������Ͼ㳲��������Υҥ�Ȥˤʤꤦ��ΤǺμ�Ǥ����������ޤ����ΤǤ�������ưreboot�ξ��ϥ��󥽡���ʤɤ˽��Ϥ���Ƥ��뤫�⤷��ʤ�kernel��å�������μ褹�뤳�Ȥ��Ǥ��ޤ���
�Ȥ����櫓�ǡ������kernel 2.6�Ǽ������줿netconsole��Ȥ���kernel oopsȯ�����ˤ����Ͽ���Ĥļ�ưreboot������ˡ��Ҳ𤷤����Ȼפ��ޤ���
�ޤ��ϡ�kernel oops��ȯ��������硢ư����³����ΤǤϤʤ�kernel panic�ˤʤ�褦�ˤ���Τȡ�kernel panic��ȯ��������reboot����褦�����ꤷ�ޤ���
���������/proc�ե�����ǹԤ��Τǡ�/etc/sysctl.conf�˰ʲ��Τ褦�˽ñ¤¤Þ¤ï¿½ï¿½ï¿½
kernel.panic_on_oops = 1
kernel.panic = 10
�񤤤���ȿ�Ǥ��ơ��������ͤ��ǧ���ޤ���
# sysctl -p
kernel.panic = 10
kernel.panic_on_oops = 1
# cat /proc/sys/kernel/panic_on_oops
1
# cat /proc/sys/kernel/panic
10
����ǡ�kernel oops���Ф���panic����panic����10�ø��reboot����褦�ˤʤ�ޤ�����
����kernel oops��μ褹�뤿�ᡢnetconsole������򤷤ޤ���
netconsole�Ȥϼ��Τ褦�����ӤǼ������줿��ΤǤ���(linux/Documentation/networking/netconsole.txt������)
���Υ⥸�塼��ϡ��ǥ������ؤε�Ͽ�˼��Ԥ��������⥷�ꥢ�륳�󥽡��뤬���Ω���ʤ��褦�������ǥХå��Ǥ���褦�ˡ�UDP ��ͳ�ǥ����ͥ� printk ��å�������Ͽ���ޤ���
�Ĥޤꡢȯ��¦(netconsole)��¾�ˡ���������ޥ����ɬ�פˤʤ�ޤ���
�Ǥ�ȯ��¦(netconsole)�Υޥ�������꤫�餤���ޤ���
�ޤ���kernel��netconsole��sysrq��Í���ˤ��ƥӥ�ɤ��ޤ���sysrq��netconsole��Ȥ��Τ�ɬ�ܤǤϤ���ޤ��󤬡���Ҥ�ư���ǧ�Τ���䡢�������󤹤�Ǥ��ʤ����Ǥ�kernel��sync��reboot��ȯ�ԤǤ���������Í�פǤ��Τ�Í���ˤ��ޤ���
�ʲ��Τ褦�ˡ�netconsole��⥸�塼��ǡ�sysrq���Ȥ߹��ߤ�Í���ˤ��ޤ���
Device Drivers --->
Network device support --->
Network console logging support (EXPERIMENTAL)
Kernel hacking --->
[*] Magic SysRq key
���ơ�netconsole��Ȥ��ݤˤϡ�����¦�ξ�������ꤷ�Ƥ�����ɬ�פ�����ޤ�������Ǥ���ս�ϼ���2�ս�Ǥ���
- �֡��ȥѥ�᡼��
- �⥸�塼������ɤκݤΥѥ�᡼������
grub�ʤɤ�����ꤹ��֡��ȥѥ�᡼����netconsole���Ȥ߹��ߤˤ������ǡ��⥸�塼������ɻ������netconsole��⥸�塼��ˤ������Ǥ���
���ơ�netconsole��NIC�Υɥ饤�Х����ɤ�Ʊ���˽���������褦�ʤΤǡ�NIC�ɥ饤�Ф�⥸�塼�롢netconsole���Ȥ߹��ߤˤ�����硢NIC�ɥ饤�Ф�����netconsole�������ɤ���Ƥ��ޤ��ΤǤ��ޤ��Ȥ��ʤ��褦�Ǥ���
�ޤȤ��Ȥ�������ˤʤ�ޤ���
NIC�ɥ饤�� | netconsole | netconsole����ս� | ���� |
---|---|---|---|
�Ȥ߹��� | �Ȥ߹��� | �֡��ȥѥ�᡼�� | netconsole������ǡ��ǥХ��������Ǥʤ���ʬ��IP���ɥ쥹����ꤹ��ɬ�פ����롣�֡��Ȼ���kernel��å�������μ�Ǥ��롣 |
�Ȥ߹��� | �⥸�塼�� | �����ɥ⥸�塼��Υѥ�᡼�� | |
�⥸�塼�� | �Ȥ߹��� | �� | |
�⥸�塼�� | �⥸�塼�� | �����ɥ⥸�塼��Υѥ�᡼�� |
�����netconsole��⥸�塼��ˤ����Τǡ��ͥåȥ�����󥿡��ե�������Í���ˤʤ륿���ߥ󥰤ǡ��������ꤷ�Ĥ�netconsole�⥸�塼�������ɤ���褦�ˤ��ޤ���
Debian�ξ��ϡ�/etc/network/interfaces�˼��Τ褦�˽ñ¤¤Þ¤ï¿½ï¿½ï¿½
auth eth0
iface eth0 inet dhcp
post-up modprobe netconsole netconsole=6665@/eth0,[email protected]/00:0c:6e:56:b5:d6
pre-down rmmod netconsole
10.10.2.4��00:0c:6e:56:b5:d6�ϡ����줾�����¦��IP���ɥ쥹��MAC���ɥ쥹�Ǥ���
RedHat�Ϥξ��ϡ�(�褯�Τ�ʤ��ΤǤ���)/sbin/ifup-local�Ǥ��Τ��褵�����Ǥ���
#!/bin/sh
DEVICE=$1
case $DEVICE in
eth0)
modprobe netconsole netconsole=6665@/eth0,[email protected]/00:0c:6e:56:b5:d6
;;
esac
���Ҥ�ɽ��Ǥ�ñ¤¤Þ¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½NIC��netconsole���Ȥ߹��ߤˤ������ϡ���ʬ��IP���ɥ쥹(�ʲ�����ξ���10.10.2.3)����ꤹ��ɬ�פ������������դ��Ƥ���������
modprobe netconsole [email protected]/eth0,[email protected]/00:0c:6e:56:b5:d6
���������¦������Ͻ����ޤ��������˼���¦�Ǥ���
����¦�ϡ�����¦�ǻ��ꤷ��UDP�Υݡ���(6666)�������Ф褤�Τǡ��Ȥꤢ�����ƥ��Ȥ�������ʤ顢netcat��Ȥä� nc -u -l -p 6666�Ǥ褤�ΤǤ����������syslog-ng��ȤäƼ�������褦�ˤ��Ƥߤޤ���
�ʲ���syslog-ng.conf���鳺���ս��ȴ��Ǥ���
source s_netconsole {
udp(ip(0.0.0.0) port(6666));
};
destination d_netconsole {
file("/var/log/netconsole");
};
log {
source(s_netconsole);
destination(d_netconsole);
flags(final);
};
���ꤷ���顢syslong-ng��Ƶ�ư�����ѹ�ȿ�Ǥ��ޤ���
���������¦������¦�Ȥ�˽������Ǥ��ޤ�����
�Ǥϡ�kernel��å�������Ф��Ƥߤޤ��礦��
��ñ�ʤΤϡ�����¦��sysrq��Ȥ���ˡ�Ǥ���
# echo s > /proc/sysrq-trigger
����ǡ�����¦��/var/log/netconsole��
May 10 16:51:57 SENDER SysRq :
May 10 16:51:57 SENDER Emergency Sync
�ȵ�Ͽ�����������Ǥ���
�������Ū��ã����줿�ΤǤ������Ǹ�ˤ����Ĥ�����潦����
netconsole������ǡ�����¦��MAC���ɥ쥹����ꤷ�ޤ��������ơ�����MAC���ɥ쥹���ά�������ɤ��ʤ�ΤǤ��礦����
���ξ�硢netconsole.txt�ˤ�񤤤Ƥ���褦�ˡ�����MAX���ɥ쥹��ff:ff:ff:ff:ff:ff�ˤʤ�ޤ�������ϥ֥����ɥ��㥹�ȤΤȤ��ʤɤˤ�Ȥ���ΤǤ�����Ʊ�쥵�֥ͥåȤ����Ρ��ɤ˥ѥ��åȤ������Ƥ��ޤ��ޤ��Τǡ���ά�����˼���¦�ޥ����MAC���ɥ쥹�����ꤹ�٤��Ǥ��礦��
���ˤ���äȥ������餷�ơ��������ɥ쥹������IP���ɥ쥹�ϥۥ���A��MAC���ɥ쥹�ϥۥ���B�Ȥ����褦�˿����㤦����ˤ������ɤ��ʤ뤫��Ƥߤޤ�����L2, L3 ���μ��Τ������ʤ������̤�η�̤��Ȼפ��ΤǤ��������Υѥ��åȤ�(�����å��󥰥ϥ֤ξ��)�ۥ���B�������Ϥ��ΤǤ��������Υѥ��åȤΰ���IP���ɥ쥹�ϥۥ���A�Τ�ΤʤΤǡ��̾�ۥ���B�Ϥ��Υѥ��åȤ��Ѵ����ޤ���
�Ȥ����櫓�ǡ������netconsole�ˤ��kernel��������ζ��Ӥ�¾�Υۥ��Ȥǵ�Ͽ������ˡ��Ҳ𤷤ޤ������������ä���ˡ�ǥ����κμ��Ź���Ǥ����С�������kernel panic�κݤθ���������Í�פǤϤʤ����Ȼפ��ޤ���(��)
�ȥ�å��Хå�URL
���ε����ؤΥȥ�å��Хå�
���ε����ؤΥ�����
��Ϥꡢ���μ�ξ��ϡ�crash dump�����ꤹ��Τ���ƻ���Ȼפ��ޤ��������������ͤ��Ǥ��礦��