Рассматриваемые ошибки в основном взяты из жизни системного администратора, но знание об их существовании может быть полезно многим администраторам: сетевым, баз данных и так далее.
Римляне говорили: "festina lente (поспешай медленно)". Ошибка состоит в том, что, торопясь, админ меняет одновременно несколько параметров и это часто приводит к ошибкам в работе сервера или сервиса. Узнать потом какой именно параметр привёл к ошибке труднее, нежели при осторожной правке параметров по очереди с рестартом для проверки.
Есть параметры, которые позволяют указать несколько значений, но админ по ряду причин указывает только одно. Уже стало классическим примером-ошибкой указание гугловского DNS с красивым IP адресом 8.8.8.8 единственным forwardes в настройках Bind. Редкая, но бывающая, недоступность 8.8.8.8 и вот снова вопли админов - "сломался DNS во всём мире".
Многие админы любят шутку:
Сидит программист глубоко в отладке. Подходит сынишка:
— Папа, почему солнышко каждый день встает на востоке, а садится на западе?
— Ты это проверял?
— Проверял.
— Хорошо проверял?
— Хорошо.
— Работает?
— Работает.
— Каждый день работает?
— Да, каждый день.
— Тогда ради бога, сынок, ничего не трогай, ничего не меняй!!!
"Ничего не трогай, ничего не меняй" - становится краеугольным камнем при построении систем у таких админов. Создаётся система, как бы замороженная во времени в тех версиях ПО, которые были на дату создания. Но система работает не в сферическом вакууме! Рано или поздно жизнь или вздрюченный хакерами сервер заставит начать обновление и тут будут проблемы. Если вы любите хвастать uptime серверов и слово обновление вызывает у вас страх, то вы точно делаете неправильно!
Резервные копии? Нет, не слышал. Есть два типа админов, которые: 1) делают backup и 2) уже делают backup.
Только не наступите на традиционные ошибки:
Самое плохое время для администрирования, читай в скобках делать правки: конец пятницы и понедельник. Конец пятницы, подразумевая что вы не работаете в субботу и воскресенье, оставляет мало время на тестирование изменённой системы самой жизнью-временем. Многие системы типа DNS имеют многочасовые таймауты, которые могут сыграть с вами злую шутку, начав действовать после ухода вас с работы. Не приведу вам авторитетную ссылку, но слышал где-то, что большинство техногенных катастроф произошли так: в дни отдыха в субботу и воскресение в голову приходит просто гениальная мысль, которую все спешат реализовать в понедельник. Хотите править работу своих систем? Начните шалить со вторника! Это стало моим правилом, чего и вам советую.
Есть очень опасные команды, удаляющие данные. Реально можно ошибиться в параметрах или не полностью понимать механизм wildcard/regexp. Некоторые операционные системы типа Linux чувствительны к регистру файлов и для них file.txt и File.txt разные сущности. У каждой опасной команды есть безопасный "двойник". Удаляете файлы через rm? Замените на ls. Удаляете в базе данных DELETE FROM? Сделайте всё тоже самое, но SELECT * FROM. Оцените будущий вывод: имена, количество удаляемого. Верный вывод? Вы на том сервере? Удаляйте!
Есть шутка, что хороший электрик тот кто много спит. Смысл в том, что всё работает исправно и работают остальные. Смело отношу работу админа к таким же работам фундаментального порядка, на базе которого уже идёт работа других людей, пользующихся сервисами. У многих работа админа чередуется всплесками активной работы над внедрением и плато спокойствия в режиме диспетчера-наблюдателя.
Используйте систему мониторинга, которая позволит вам сладко спать, пробуждая при отклонениях параметров систем.
Шучу конечно, но реально не понимаю, как можно без систем мониторинга определить не происходят ли по ночам внештатные ситуации, которые могут больно ударить прямо сейчас? Рекомендую Zabbix. Серьёзная система, со своим видением будущего и планами на него.
SSH для Linux серверов, RDP для Windows. Удобно и приятно админить сервера, которые мирно гудят себе в своих серверных. Только при обновлении, перезагрузке или настройке файрвола не отлетите от сервера навсегда? Физический доступ к оборудованию может и отсутствовать. Есть различные технологии, которые помогут-подстрахуют: KVM over IP (IPKVM), Integrated Lights-Out (iLO), консоль к виртуальному серверу средствами вашего гипервизора и другие.
Очень часто работы по внедрению, обновлению, обслуживанию ведутся без плана, черновика с опорными пунктами. Админ часто самонадеянно проводит работы, не идя по некоторому списку и не ведя журнал действий. Что нужно будет сделать? Какие команды нужно ввести? Что изменится? Как и что забакапить? Что делать, если пойдёт всё не так? Вот небольшой список, который нужно держать перед глазами, чётко всё фиксируя, а не надеясь на русское авось.
Безопасность - это не программа и не железяка. Безопасность - это итерационный и постоянный процесс. Вы смотрите на свои системы, видите "слабые" места, удаляете-исправляете их и всё повторяется. Безопасность - это когда вам не даёт спать параметр 0.0.0.0 в конфигурационном файле и вы всегда хотели указать конкретный интерфейс, так как на другом это может быть опасно и излишне. Безопасность - когда вы задаёте маску CIDR настолько узкую, что мышь не проскочит. Безопасность - когда вы вздрагиваете при виде масок user@'%' MySQL сервера. Безопасность - это настроенное журналирование, реагирующее на инциденты, связанные с неудачными попытками входа, сменой паролей и т.д.
Если бы сам за долгое время админства не прошёл по этим граблям сам, получая по лбу от граблей и от начальства, то не смог бы сейчас выдать их. Хочу выразить свою благодарность друзьям-админам, чьи советы и помощь бесценны для меня. Дмитрий Перцев aka davaeron, который умеет в исходниках проекта найти ответы, и Роман Мизгирёв aka ХулиМяу - СПАСИБО!
Дата последней правки: 2016-01-25 09:49:53