В данной статье рассматриваются вопросы, которые следует задать системным администраторам, и меры предосторожности, которые они должны предпринять при устранении неполадок.
Как правило, устранение неполадок не рассматривается на каких-либо официальных занятиях, - это все то, что большинство из нас в конечном итоге усваивает на собственном горьком опыте. Как действовать, где искать, как определить первопричину возникших проблем - все это навыки, которые мы обычно развиваем с течением времени.
Жизненный цикл сеанса устранения неполадок обычно включает:
- Обнаружение - обнаружение проблемы
- Идентификация - понимание того, в чем проблема
- Анализ - определение причины проблемы
- Исправление - исправление того, что было не так
- Профилактика - принятие мер для предотвращения повторения проблемы
Систематический подход к устранению неполадок может помочь быстрее выявить основную причину проблемы, которая нарушает работу сервера или приложения. Вот несколько шагов и вопросы, которые нужно задать себе:
1. Что только что изменилось?
Наиболее частая первая реакция на что-то, что перестает работать - это спросить: «Хорошо, а что изменилось?» Изучение последних изменений - это тоже действие, которое, скорее всего, окупится, если на самом деле какое-то существенное изменение было сделано только что. Ищите файлы, особенно файлы конфигурации, которые могли быть изменены, приложения или пакеты, которые были только что добавлены, службы, которые только что были запущены, и т. д. Не упускайте из виду тот факт, что многие системные проблемы возникают не сразу. Примеры того, что идет не так, не связано с недавним изменением, включают:
- Медленно заканчивается место на диске
- Можете столкнуться с ошибкой конфигурации, которая раньше просто не активировалась из-за несоблюдения определенных условий
2. Какие ошибки я наблюдаю?
Обратите особое внимание на любые ошибки, которые отображаются на системной консоли или в файлах журнала. Указывают ли эти ошибки на какую-то конкретную причину? Вы видели раньше подобные ошибки? Видите ли вы какие-либо проявление тех же ошибок в старых файлах журнала или в других системах? Что вам говорят поисковые запросы в Интернете? Независимо от того, с какой проблемой вы столкнулись, вы вряд ли будете первым системным администратором, столкнувшимся с ними.
3. Как себя ведет система или сервис?
Возможно, стоит обратить внимание на симптомы проблемы. Система или служба работают медленно или полностью непригодны для использования? Может быть, только некоторые пользователи не могут войти в систему. Может быть, не работают только некоторые функции. Выделение того, что работает, а что нет, может помочь вам сосредоточиться на том, что не так.
4. Чем эта система отличается от той, которая является рабочей?
Если вам повезло, что у вас есть дублирующие системы, и у вас есть шанс сравнить ту, которая не работает, с другой. Возможно, вы сможете определить ключевые различия, которые могут помочь выявить причину.5. Каковы вероятные точки останова?
Подумайте, как работает приложение или сервис и как/где могут возникнуть проблемы. Полагается ли он на конфигурационный файл? Нужно ли ему общаться с другими серверами? Задействована ли база данных? Записывается ли он в определенные лог-файлы? Включает ли это несколько процессов? Можете ли вы легко определить, все ли необходимые процессы запущены? Если можете, систематически устраняйте потенциальные причины.
6. Какие инструменты для поиска и устранения неисправностей могут быть полезны?
Подумайте об имеющихся у вас инструментах для поиска системных проблем. Некоторые из них могут оказаться полезными:
top
- для оценки производительности, включая проблемы с памятью, файлом подкачки и загрузкойdf
- для проверки использования дискаfind
- для поиска файлов, которые были изменены за последний деньtail -f
- для просмотра последних записей журнала и наблюдения за тем, появляются ли все еще ошибкиlsof
- чтобы определить, какие файлы были открыты конкретным процессомping
- быстрая проверка сетиifconfig
- проверка сетевых интерфейсовtraceroute
- проверка подключений к удаленным системамnetstat
- проверка сетевых подключенийnslookup
- проверка разрешений хостаroute
- проверка таблиц маршрутизацииarp
- проверка IP-адреса на записи MAC-адреса в вашем кеше
7. Происходит что-нибудь неприятное?
Не исключайте возможность того, что кто-то вмешивался в вашу систему, хотя большинство хакеров предпочли бы делать свою работу так, чтобы вы ничего не заметили.
8. Что мне НЕ делать?
Не путайте симптомы и причины. Каждый раз, когда вы определяете проблему, спрашивайте себя, почему она существует. Будьте осторожны, чтобы не уничтожить «доказательства», пока вы лихорадочно работаете над тем, чтобы вернуть свою систему в оперативный режим. Скопируйте файлы журнала в другую систему, если вам нужно освободить дисковое пространство, чтобы вернуть систему в рабочее состояние. Затем вы можете изучить их позже, чтобы выяснить, что вызвало проблемы, над решением которых вы работаете.
Если вам нужно восстановить файл конфигурации, сначала сделайте копию файла (например, cp -p config config.save
), чтобы вам было легче узнать, как и когда файл был изменен, и что вам нужно сделать, чтобы все заработало. Имейте ввиду, что для поиска решения возникшей проблемы вы, возможно, примените большое количество решений. И в последствии не сможете запомнить, какое из решений устранило проблему.
9. Что мне делать?
Запишите все свои действия. Если вы используете PuTTY для подключения (или какой-либо другой инструмент, позволяющий записывать взаимодействия с вашей системой), включите ведение журнала. Это поможет вам, когда вам нужно будет проанализировать, что произошло и как вы решили проблему. Если у вас достаточно места на диске, вы также можете использовать скрипт для записи сеанса входа в систему (например, сценарий устранения неполадок `date% m% d% y`
). Если у вас нет возможности сохранять логи, записывайте все, что вы делали и что видели. Вы можете не вспомнить все это позже, особенно если вы находитесь в состоянии стресса. Вы можете помнить шаги, но не порядок, в котором вы их выполняли.
После устранения проблемы задокументируйте, что произошло. Возможно данная проблема возникнет снова, и вам, возможно, придется объяснить своему руководству или клиентам, что произошло, и как вы собираетесь предотвратить это в будущем. По возможности подумайте, как можно избежать данной проблемы в будущем. Можете ли вы улучшить свои службы мониторинга так, чтобы проблемы с дисковым пространством, памятью и сетью, изменения конфигурации и т. д. были решены задолго до того, как они повлияют на работающие службы?