Pull to refresh

Как понять почему упал сервер не подключая к нему монитор и клавиатуру?

Reading time2 min
Views13K
Так бывает что сервер зависает, но к нему не подключена ни клавиатура, ни монитор.

У меня нет лишнего монитора, и обнаружив, что сервер не отвечает по сети,
снимать монитор с моего компьютера и подключать к серверу в кладовке нет никакого желания и сил.

В Linux есть такая возможность ядра как Netconsole.
Netconsole позволяет послать сообщения от ядра на удаленный компьютер.

Для настройки netconsole нужен другой (постоянно включенный) компьютер который примет сообщение по сети.

Проверено на Ubuntu 10.04

На сервере который отлаживаем выполняем:

1. В /etc/modules добавляем netconsole

2. В /etc/modprobe.d/netconsole.conf пишем
options netconsole netconsole=SRCPORT@SRCHOST/eth0,DSTPORT@DSTHOST/DSTMAC

Где SRCPORT и SRCHOST соответственно порт и IP адрес сервера который отлаживаем.

А DSTPORT и DSTHOST порт и IP адрес сервера который будет принимать сообщения.

DSTMAC — это MAC адрес сервера который будет принимать сообщения ЕСЛИ он в той же сети. Если он за роутером или где нибудь в интернете, то нужно указывать MAC адрес ближайшего роутера (Gateway).

Должно получится чтото типа
options netconsole netconsole=6666@192.168.1.2/eth0,6666@192.168.1.3/e0:91:f5:7d:e6:38

На сервере который будет принимать сообщения.

Нам нужно как то запустить программу которая будет слушать UDP порт DSTPORT и куда-либо записывать сообшения.

Самый просто способ — запустить netcat который будет выдавать на экран все что приходит на порт. Для того чтобы после закрытия окна данная программа не прекратила работать, можно запустить ее в screen.

1. Запускаем screen
screen -U -D -RR

2. Запускаем в окне netcat
netcat -l -u DSTHOST DSTPORT

Как понять что все работает?

Можно подождать какого нибудь события, но как убедится что сообщения реально ходят? Можно активировать SysRQ механизм ядра.
echo 1 > /proc/sys/kernel/sysrq
echo h > /proc/sysrq-trigger


После этого на сервере который принимает сообщения в окне с netcat появится текст типа
[ 7849.700372] SysRq : HELP : loglevel(0-9)....

Ссылки

Tags:
Hubs:
+84
Comments33

Articles

Change theme settings