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

Сервер загадочно перезагружается

У меня есть VPS, который почти ежедневно выполняет перезагрузку. Сегодня мне наконец удалось получить подсказку из моих журналов

May 12 03:14:49   sshd[19379]: Did not receive identification string from 173.212.118.167
May 12 03:25:03   sshd[19489]: Did not receive identification string from 82.248.74.71
May 12 03:25:15   sshd[19493]: Did not receive identification string from 98.249.28.85
May 12 03:30:25   shutdown[19545]: shutting down for system halt
May 12 03:30:29   init: Switching to runlevel: 0
May 12 03:30:34   saslauthd[1654]: server_exit     : master exited: 1654
May 12 03:30:34   sshd[1656]: Received signal 15; terminating.
May 12 03:30:34   sshd[1655]: Received signal 15; terminating.
May 12 03:30:35   kernel: Kernel logging (proc) stopped.
May 12 03:30:35   kernel: Kernel log daemon terminating.
May 12 03:30:35   syslog-ng[364]: Termination requested via signal, terminating;
May 12 03:30:35   syslog-ng[364]: syslog-ng shutting down; version='3.2.2'
May 12 03:34:23   syslog-ng[388]: syslog-ng starting up; version='3.2.2'
May 12 03:34:24   ifup:     lo        
May 12 03:34:24   ifup:     lo        
May 12 03:34:24   ifup: IP address: 127.0.0.1/8  

Похоже, процесс произвольно перезагрузился. Кажется, что это происходит примерно в одно и то же время дня. К счастью, время простоя довольно короткое.

Я проверил задания cron, чтобы узнать, есть ли соответствующая запись, но ее не было. Странно то, что перезагрузка обычно выполняется с уровнем запуска 6, а не с 0. Уровень запуска 0 должен выключить сервер, но вместо этого он снова оживает через несколько секунд.

Что я могу сделать, чтобы узнать об этом больше?

Согласно вашему журналу, что-то вызывает shutdown утилита для завершения работы. Я бы (временно) заменил /sbin/shutdown с помощью сценария, который регистрирует кучу информации, примерно следующего вида:

#!/bin/bash
set > /shutdown.env
ps auxfwww > /shutdown.ps

Затем вы можете искать PPID= в /shutdown.env, и просмотрите /shutdown.ps чтобы увидеть, что это был за pid.

(Не забудьте chmod +x сценарий после того, как вы вставили на место. Я бы запустил его один раз, чтобы убедиться, что он работает).

Эта строка в вашем журнале init: Switching to runlevel: 0 не означает, что уровень запуска 6 не использовался: вероятно, так и было, поскольку ваш сервер перезагружается.

Проверьте last reboot чтобы узнать, регулярное ли это мероприятие. Если да, перепроверьте все задания cron; last также покажет вам, кто был авторизован при перезагрузке сервера.

Проверьте журналы sudo (возможно, вам потребуется включить ведение журнала sudo).

Вы также можете попробовать использовать механизм аудита auditctl -a entry,always -S reboot описанный Вот