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

Я работаю на рабочей машине Gentoo Linux, и недавно была ситуация, когда сервер зависал в моем расположенном рядом помещении, и когда я туда попал, я заметил, что сервер завис на том, что казалось зависанием ядра. Я перезагрузил машину с жесткой перезагрузкой и был разочарован, обнаружив, что нигде не смог найти ни малейшего доказательства того, почему машина зависла.

Правда ли, что когда я делаю полную перезагрузку, само сообщение теряется или есть настройка, которую я могу сделать где-нибудь, скажем, в syslog-ng или, возможно, в sysctl, чтобы хотя бы сохранить журнал ошибок, чтобы я мог предотвратить такие неудачи в будущем? Кстати, я использую ядро ​​2.6.x.

Заранее спасибо.

4 ответа

Чтобы зарегистрировать панику ядра, использовать netconsole намного проще, чем использовать последовательную связь;)

Есть полезная запись об этом в вики Ubuntu, которую можно использовать в других версиях Linux... Помогли мне, например, с archlinux.

Обратите внимание, что netconsole также можно настроить при загрузке.

Обычно в этих ситуациях я настраивал удаленную последовательную консоль, а затем следил за тем, чтобы регистрировать все, что появляется на консоли. Это можно сделать, подключив последовательный порт устройства к другому устройству с помощью кабеля RS-232. Это может быть немного сложнее в наши дни, поскольку последовательные порты постепенно исчезают, но я думаю, что большинство серверов все еще имеют их.

Затем на другом компьютере запустите conserver и настройте ведение журнала консоли. Это обеспечивает хороший способ как регистрировать все на консоли, так и предоставлять альтернативный путь входа в систему.

Если вы не хотите устанавливать и администрировать другой Linux-бокс, альтернативой является установка сервера последовательной консоли. Различные компании, такие как Avocent, Cyclades и Raritan, производят эти устройства, которые обеспечивают сетевой интерфейс для 2-48 последовательных портов. Однако такого рода вещи, конечно, будут стоить дороже, чем просто установить еще одну Linux-коробку.

Вы можете попробовать реплицировать сообщения системного журнала на другой компьютер. Может быть, не все из них, а только предупреждения и критические и отключить кеширование для них.

Я думаю, что здесь есть три возможных решения:

  1. Настройте kdump, который создает дамп, когда ядро ​​паникует (используйте «magic sysrq c», чтобы вызвать панику). Вероятно, лучшее решение, если у вас действительно паника ядра.
  2. Настройте последовательную консоль (в настоящее время это может быть netconsole). Приятно видеть знаменитые «последние слова».
  3. Настройте внешний сервер системного журнала, который будет получать сообщения ядра. Однако позаботьтесь о том, чтобы сообщения отправлялись немедленно (без задержки). Однако в случае сбоя сетевого стека важные сообщения могут быть потеряны.
Другие вопросы по тегам