Назад | Перейти на главную страницу

Как узнать, что делает сервер при сбое?

У меня есть сервер, работающий на Centos 5.2, и есть ли лучший способ узнать, почему сервер упал или что он делает в то время?

Мне очень жаль, что я новичок, и любая помощь приветствуется ~ Спасибо

Если вы столкнулись с паникой ядра, вы можете настроить удаленную консоль ядра для захвата всех данных, которые могут быть потеряны на локальной консоли (особенно если сбой вызван немаскируемым прерыванием, которое имеет тенденцию к перезагрузке системы).

В системе, которая, как вы ожидаете, может произойти сбой:

/sbin/modprobe netconsole netconsole=6666@10.1.1.16/eth0,6666@10.1.1.17/00:19:BB:31:B8:0E
  • 6666 - произвольный номер порта
  • 10.1.1.16 - это IP-адрес локального интерфейса для отправки через
  • eth0 - это имя локального интерфейса для отправки через
  • 10.1.1.17 - это IP-адрес удаленного интерфейса для отправки
  • 00: 19: BB: 31: B8: 0E - MAC-адрес удаленного интерфейса для отправки

В удаленной системе запустите (для этого необходимо, чтобы у вас был установлен netcat):

nc -l -p 6666 -u | tee capture.file

Это захватит весь вывод ядра в удаленной системе. Это работает на гораздо более низком уровне (та же точка в ядре, которая записывает в / dev / klog), поэтому вы можете увидеть самый последний бит информации, которую ядро ​​выводит при панике, даже если syslog et. все перестали работать.

попробуйте начать учет процесса

/etc/init.d/psacct start или /sbin/chkconfig psacct on (для автозапуска при загрузке)

затем используйте lastcomm (1), чтобы узнать, что и когда выполнялось.

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

atop -r /var/log/atop/atop_YYYYMMDD а затем используйте клавиши t и T для перехода вперед и назад

в 99% случаев из этих двух случаев ясно, что именно происходило

Вы проверили / var / log / dmesg, / var / log / messages и / var / log / syslog?

Что за авария? Хорошие рекомендации по поводу журналов dmesg / messages. Если он просто «отключается» до того, как у него появится возможность что-либо зарегистрировать, я бы предположил, что это может быть перегрев или проблема с источником питания.

Если это так, может быть полезно просмотреть журналы оборудования, если они существуют. Если вы используете серверы Dell, служба поддержки Dell может предоставить вам инструменты Linux для доступа к этим журналам. Другие поставщики могут предоставить аналогичные функции.

Вы также можете проверить память с помощью memtest86.

Собирать ядро ​​по сети, наверное, излишне, его можно сбрасывать локально. Это руководство для настройки и тестирования kdump. Если вы следуете инструкциям и по-прежнему не можете создать дамп локально, вам следует перейти к захвату по сети.

Конечно, если у вас есть дамп ядра, вам нужно будет провести его анализ с помощью крушение утилита. Вам нужно будет установить правильный kernel-debuginfo rpm для вашего запущенного ядра, а затем вызвать сбой - вы должны понять общую суть из технического документа. Если вы можете открыть его, первое, на что вам следует взглянуть, это журнал - прокрутите вниз, и вы должны получить некоторые подсказки относительно того, что происходит в момент сбоя.

Вы можете настроить машину на создание дампа ядра ядра по сети, но вам все равно понадобится кто-то опытный, чтобы разобраться в этом.