Linux x86_64: Обнаружение аппаратных ошибок
Синий экран смерти (BSOD) используется Microsoft Windows, при появлении критической системной ошибки. Linux / UNIX-подобная операционная система выводит сообщение kernel panic. Это аналог BSOD. BSoD и kernel panic формируется с помощью Machine Check Exception (MCE). MCE не что иное, как фича 64-битных систем AMD / Intel, которая используется для обнаружения неустранимой проблемы с оборудованием. MCE может обнаружить:
- Ошибка связи между процессором и материнской платой.
- Ошибка памяти — ECC проблемы.
- Ошибки кэша процессора и так далее.
Программа mcelog декодирует машинные события (аппаратных ошибок) на x86-64, работающих под управлением 64-разрядной Linux. Эту программу рекомендовано запускать регулярно по расписанию cron на 86-64 Linux системах. Это полезно для прогнозирования аппаратного сбоя сервера до фактического краха сервера.
Установите mcelog
Введите следующую команду под RHEL / CentOS / Fedora Linux, 64 битного ядра:
1 |
yum install mcelog |
Введите следующую команду под Debian / Ubuntu Linux, 64 битного ядра:
1 |
apt-get update && apt-get install mcelog |
По умолчанию Cronjob
mcelog должны регулярно выполнятся с помощью cron на любой x86-64 системы Linux. По умолчанию следующие настройки cron используются на Debian / Ubuntu Linux —/etc/cron.d/mcelog:
1 2 3 4 5 |
# /etc/cron.d/mcelog: crontab entry for the mcelog package SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin */5 * * * * root test -x /usr/sbin/mcelog -a ! -e /etc/mcelog-disabled && /usr/sbin/mcelog --ignorenodev --filter >> /var/log/mcelog |
CentOS / RHEL / Fedora Linux, добавить в ежечасный cron через /etc/cron.hourly/mcelog.cron:
1 2 |
#!/bin/bash /usr/sbin/mcelog --ignorenodev --filter >> /var/log/mcelog |
Как просмотреть журналы ошибок?
Используйте tail или grep команду:
1 |
# tail -f /var/log/mcelog |
или
1 |
# grep -i "hardware error" /var/log/mcelog |
или
1 |
# grep -c "hardware error" /var/log/mcelog |
Кроме того, вы можете отправить по электронной почте уведомление, когда буде обнаружена аппаратная ошибка в системе (написать скрипт и вызвать его через cron):
1 |
# [ $(grep -c "hardware error" /var/log/mcelog) -gt 0 ] && echo "Hardware Error Found $(hostname) @ $(date)" | mail -s 'H/w Error' [email protected] |
С помощью этого инструмента, я увидел пару аппаратные проблемы и смог предотвратить kernel panic т.е. сбой сервера.
Если у вас есть проблемы с сервером или вы хотите не допустить их мы предоставляем услуги администрирования серверов и разовые работы по настройке и установке сервера.
Примечание О mcelog
- Вы должны использовать 64-разрядную Linux операционную систему для запуска mcelog. Некоторые MCEs являются фатальными и решить проблему без перезагрузки или замены аппаратной части нет возможности, но поймать много плохого до аварии с помощью этого инструмента возможно.
- MCAT — утилита командной строки для Windows от AMD для декодирования MCEs от AMD K8, семейства 0x10 и 0x11 процессоров.
- mcedaemon — daemonthat может получать уведомления MCE, как только ядро находит их. Он не пытается интерпретировать данные MCE, просто предупредить других приложений.