Виявлення «хто, що, коли і чому» аварії сервера


4

Наразі я адміністратор Moodle в своєму університеті, і одна з моїх обов'язків - постійно підтримувати роботу сервера і працювати. Іноді без видимих ​​причин Apache та / і MySQL виходять з ладу, викликаючи повний хаос в університеті.

У широкому сенсі, які "основні вказівки" слід виконувати, коли сервер виходить з ладу? Що я повинен зробити спочатку, щоб дізнатися, що сталося? Як я можу знати, скільки користувачів було підключено на момент аварії (або в будь-який момент часу)? Як я можу знати, скільки пам'яті чи потужності потрібно для поточного попиту?

Є багато питань, пов’язаних між собою, але це найважливіші. Очевидно, я далеко не досвідчений сисадмін. Я трохи знаю свій шлях навколо Linux, якщо це допомагає.

Наші характеристики сервера:

  • Двоядерний процесор Intel Xeon при 2,66 ГГц (якщо я пам'ятаю правильно)
  • 2 ГБ оперативної пам’яті
  • 500 ГБ жорсткого диска
  • CentOS 5.4
  • MySQL 5.0.45
  • PHP 5.3.12

EDIT: Вибачте за відсутність інформації.

Я читав журнали Apache та MySQL, не маючи значних даних. Apache є найбільш інформативним: мовляв, КОЛИ це сталося, але немає інших причин. Насправді помилка в збої в Apache насправді не є "помилкою", просто введення в журнал її повторної ініціалізації - найгірший сценарій - це Apache, що дає "SIGTERM" або "SIGKILL". Журнали MySQL не говорять абсолютно нічого.

Зазвичай я намагаюся слідкувати за тим, що відбувається, використовуючи "верх". Коли трапляються збої, рідко є вся (або навіть половина) споживаної системної пам'яті. У дуже тяжких ситуаціях використання процесора досягло ... 80%?

Використання диска та пам’яті здається прекрасним (між собою та безкоштовними програмами немає проблем) Доступ до SSH зазвичай нормально. Просто здається, що MySQL або Apache випадково виходять з ладу, тому що навіть коли попит не такий високий, він все ще висить.

Проблему можна звести до "Які журнали перевірити?" "Як перевірити кількість з'єднань?"

Відповіді:


3

Зазвичай ви хочете почати з перегляду журналів системи та додатків, які можуть або не можуть щось виявити. Якщо у вас є запущені інструменти sar, ви хочете переглянути статистику вашої системи, яка веде до аварії.

Звичайно, завжди добре перевірити наявність очевидних речей, таких як повний диск, переривання живлення, недавні входи користувачів (можливо, хтось ще ввів "перезавантаження").

Залежно від аварії, ви можете подивитися на консоль, щоб побачити, чи є на дисплеї ще якась інформація про скидання.

Якщо ви не можете знайти нічого очевидного в журналах, наступним кроком може бути здогадатися, що ви вважаєте проблемою, і створити деякі сценарії для моніторингу цього аспекту системи, щоб ви могли отримати більше корисної інформації в майбутньому. Якщо ви думаєте, що кількість підключень може бути проблемою, то, можливо, вам доведеться періодично збирати вихідний стан netstat або щось подібне.


Відмінна порада. Я ніколи раніше не чув про цей інструмент. Я повинен створити роботу з цим інструментом чи іншим і подивитися, що я можу зробити. Netstat - це щось інше, що я міг би використовувати, якщо відфільтрувати. Я не знаю, як читати на виході, але це могло б мені щось сказати - можливо, більше, ніж ті журнали MySQL.
AeroCross

Встановлення пакету sar на більшості дистрибутивів автоматично встановить вам роботу. У системі на основі Debian просто використовуйте apt-get install atsar.
Zoredache

1

Основні файли дамп надзвичайно корисні в цих ситуаціях. Будь-які основні звалища з часів аварії? http://linux.die.net/man/5/core


На жаль, ні. Для того, що я міг прочитати, файл / proc / sys / kernel / proc_pattern (той, який повинен містити цю інформацію) просто читає "/ dev / null", а інший (core_uses_pid) має "1" у ньому. Не знаю, куди поїхати звідти. Мені доведеться озирнутися і подивитися, як активувати цей дамп-файл.
AeroCross

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.