А без этого нужного кернел паник лога ошибку фиг найдешь.
Оказывается , способ есть :) Что я сделал:
Требования: требуется еще одна машина в той же сети . А также на машине , где происходит kernel panic обязательно должен быть обычный сетевой(тот что не wifi) интерфейс
1.На хосте где происходит паника убеждаемся что в ядре установлен модуль netconsole .Установлен в виде модуля
cat /boot/config|grep NETCONSOLE
CONFIG_NETCONSOLE=m
2.Разрешаем посылку UDP сообщений по сети между вашими двумя машинами.У меня сеть из 2 компов, поэтому они включены изначально.
3.Подгружаем модуль командой
modprobe netconsole netconsole=6969@192.168.1.36/eth0,6969@192.168.1.33/00:18:de:e1:79:2b
где
192.168.1.36/eth0 - ай пи адрес и имя сетевого интерфейса на машине, где происходит kernel panic.У меня заработало только при условии, что eth0 - это обычная, сетевая плата, не wifi
192.168.1.33/00:18:de:e1:79:2b - ай пи адрес и мак адрес машины, которая будет принимать логи
Запустите dmesg для проверки - в /var/log/messages должно появится сообщение, что модуль netconsole загружен и логирование активировано
4.Теперь идем на машину которая будет принимать логи и в консоли запускаем команду
nc -u -l -p 6969
Если такой команды нету, устанавливаем netcat
Cобственно все, в эту консоль у вас будут валиватся сообщения с удаленной машины. И , в частности, так "нужный"
kernel panic
При желании к этой фиче можно добавить
1. Писать логи в syslog на удаленной машине вместо консоли
2. динамически изменять конфигурацию netconsole - куда и откуда слать логи.
Но тут уж google вам в помошь и /usr/src/linux/Documentation/networking/netconsole.txt
Отчего паника возникает у меня пока не разобрался , вот засабмитил баг в gentoo.Там и полный trace.Буду очень признателен если кто-то с таким сталкивался и сможет помочь
неоднократно наблюдал паники возникающие от самого netconsole.
ОтветитьУдалитьСамый эффективный способ остаётся serial порт (rs232). если машин много - Digi Neo 8, если под рукой только ноутбук - serial to usb converter.
Неплохо... Иногда полезная штуковина.
ОтветитьУдалитьага, потому что не знаешь откуда ноги растут у ошибки :)А тут еще на выбор несколько способов ее залогировать.Если мой не прокатит, так предложенный выше всегда можно попробывать.
ОтветитьУдалитьвыяснил таки из-за чего ошибка.
Добавлял в бук 4 гига памяти - и она оказалась битой.
Со старыми двуми планками все работает отлично.
Столкнулся с такой же проблемой, но на CentOS да еще и на удаленных серверах.
ОтветитьУдалитьПопробовал сделать по инструкции, dmesg сказал что модуль загрузился, но логи не пошли.
Подозреваю что дело в UDP (сервера находяться в разных подсетях), но нет никаких идей как сделать чтобы работало.