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

Toolkit & Habits for Linux Network & System Administration

Мне поручено администрирование небольшой офисной сети, а также нескольких рабочих станций, работающих в основном под Debian и Ubuntu. Есть два сервера: один сервер базы данных и принт-сервер и один резервный и файловый сервер.

Поскольку я относительно новичок в этой области вещей и достаточно зная, чтобы в какой-то степени помочь себе в Linux, я хотел бы знать, какие программные инструменты и задачи / привычки я могу использовать / приобретать, чтобы изучать эту область и при этом быть эффективным.

Мне не нужно знать, что лучше, просто то, что системный администратор-новичок может использовать в качестве стартового пакета для изучения и использования в качестве основы для развития надлежащего системного администрирования.

Что мне нужно, так это те несколько основных инструментов, с которых можно начать, и те вещи, которые мне нужно делать регулярно, например: какие журналы проверять, когда и что отслеживать, какое `` правильное '' место для начала и с чего я могу объявление как мне нужно.

1

контролировать критически важные для бизнеса процессы [например, работает ли база данных и отвечает на простые запросы], основные параметры операционной системы [свободное место на диске, средняя загрузка]. ты можешь использовать нагиос или zabbix например.

2

соберите статистику, чтобы установить базовые показатели. в будущем это будет полезно для планирования мощности. ты можешь использовать Мунин, zabbix, кактусы и т.п.

3

запускать автоматические резервные копии по расписанию, хранить некоторые из них в автономном режиме, вне офиса. отслеживайте, удались ли они, время от времени проверяйте вручную, можете ли вы восстановить важные данные. вы можете захотеть использовать Backupninja оркестровать их или Зманда, но есть гораздо более полезные инструменты ..

4

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

5

из других случайных вещей:

выучите какой-нибудь язык сценариев - может быть, вы уже знаете его? perl / python / php может использоваться для автоматизации задач и во многих случаях лучше подходит, чем bash, для более сложных задач

изучите свои инструменты - это бесконечный список ... Наверное, в первую очередь приходит в голову ssh. проверять, выписываться этот и который.

Практика системного и сетевого администрирования, Лимончелли и др., это то, с чего вам следует начать. Технологии будут приходить и уходить (и их можно легко найти в Google по мере необходимости), но информация в этой книге вечна (и бесценна).

Несколько основных инструментов для начала

Google. Нет, серьезно. Google - это сбывшаяся мечта системного администратора. Нет лучшего способа использовать огромное количество информации в Интернете. И не ограничивайтесь поиском «Linux для начинающих»; Если у вас есть конкретная задача, которую вы пытаетесь выполнить, Google для этой конкретной задачи. Вы часто найдете гораздо больше информации, чем вам нужно, и для новичка она будет казаться другим языком, но обучение на практике - хороший способ быстро освоить вещи.

Завершение табуляции. Командная строка Linux позволяет использовать табуляцию для всех команд, деревьев каталогов, имен каталогов и имен файлов.

Страницы руководства. Каждая команда и многие файлы конфигурации системы (/ etc / fstab, / etc resolv.conf и т. Д.) Имеют страницы руководства. Просто введите «man имя_команды» или «man имя_файла», чтобы узнать, есть ли он у того, что вы ищете. Oh и "q" закрывают страницу руководства.

SSH. Один из лучших способов получить доступ к системе Linux. Наверное в лучший способ, если у вас нет физического доступа к системе.

Экран. Screen - это фантастическое маленькое приложение, которое позволяет вам превратить один терминал во множество, позволяет убрать вещи с вашего пути / на задний план и позволяет вам оставить все как есть, чтобы вы могли вернуться к ним позже.

Нано. Вы упомянули выше, что уже используете это, но я просто подумал, что добавлю свои два цента и скажу, что согласен. Vi, Vim и все остальное в порядке, но мне нравится простота Nano. Это как Блокнот в мире Linux.

Найдите и Grep. Найти отлично подходит для поиска для файлы, Grep отлично подходит для поиска в файлы. Оба они могут использоваться очень простыми способами, и оба могут использоваться очень сложными способами, но оба весьма полезны в любом случае.

Судо. Позволяет действовать как root, не будучи root. Очень полезно.

Плюс еще несколько инструментов, о которых я упомяну в контексте следующего раздела ...

Виды дел, которые вам нужно делать регулярно

Следите за своей системой. Контролируйте использование вашего диска (df - полезная команда, а также du для определенных каталогов), отслеживайте ваши запущенные процессы и задачи (с помощью команды ps и верхних команд), отслеживайте пользователей, вошедших в ваши системы (команды users и who будут сказать вам об этом) и контролировать использование вашей сети (для этого подходят такие приложения, как cacti). Если у вас есть доступ к среде X Windows, я всегда считал GKrellM очень полезным универсальным инструментом для мониторинга системы.

Резервные копии. Из любви к Туксу, резервные копии. Резервное копирование файлов конфигурации, резервных копий домашних каталогов, данных резервного копирования приложений. Резервные копии. Даже если все, что вы делаете, это прямое копирование данных с сервера на общий ресурс CIFS / NFS на другом компьютере и на внешнем жестком диске. И да, вам следует хранить по две копии каждой резервной копии и никогда не на одном носителе / ​​системе. Думайте об этом как о резервных копиях ваших резервных копий.

Проверьте свои резервные копии. Регулярно проверяйте, можете ли вы восстановить данные из резервных копий в своих системах. Пустые / поврежденные / неполные резервные копии так же бесполезны, как и весь день.

Используйте свои файлы журнала. Dmesg, / var / log / messages и многое другое в период / var / log. Если что-то не работает, и вы не знаете почему, в журналах может не быть ответа, но они определенно могут помочь вам найти его. И журналы и каталоги в / var / log названы разумно, так что найти нужный журнал не составит труда. Вам не нужно постоянно отслеживать каждый файл журнала, но наблюдение за ними поможет вам сохранить вашу систему здоровой и безопасной.

Держите свою систему в актуальном состоянии. Не позволяйте своему программному обеспечению месяцами работать без обновления, потому что это может привести к множеству головных болей и поломкам при изменении синтаксиса файла конфигурации или зависимостей. В разных дистрибутивах есть разные программы обновления (apt-get, yum и т. Д.), Но какую бы из них вы ни использовали, изучите ее и используйте регулярно.

Обеспечьте безопасность своей системы. Используйте такие вещи, как iptables, PAM, hosts.allow / hosts.deny и т.п., чтобы предотвратить нежелательный доступ к вашей системе и ее использование.

Никогда не переставай учиться. Чтобы продолжить то, что я сказал ранее (обучение на практике), вам следует изучить виртуальные машины. Загрузите VirtualBox (или, если у вас есть лицензии VMWare, еще лучше) и сделайте себе виртуальную машину Linux. Вы можете выбрать любой дистрибутив, который хотите, но, очевидно, имеет смысл выбрать тот, который вы используете в своей среде. Поиграйте в виртуальной машине ... используйте ее как песочницу. Настраивайте, ломайте, исследуйте, учитесь. Прелесть виртуальной машины-песочницы в том, что не имеет значения, что с ней происходит. Если вы полностью облейте его, просто сделайте новый. Или сохраните резервную копию оригинала после того, как вы его настроите, и повторно используйте ее, когда вам нужно.

Как упоминалось и упоминалось в некоторых других сообщениях в этой ветке, эти списки действительно могут быть почти бесконечными, но, надеюсь, это даст вам хорошее начало.

Если вы только начинаете, и особенно с учетом того, что у вас есть системы Debian (Ubuntu - это Debian по сути), я настоятельно рекомендую Справочник Debian. Это отличный обзор почти всех аспектов системного администрирования, который должен охватывать почти все, что вам нужно знать об обслуживании небольшого набора подобных систем.

Я также согласен со всеми пунктами, сделанными pQd, и, в частности, я думаю, что для вас было бы хорошей идеей создать вики для документирования всех ваших процессов и конфигураций. В моей организации мы используем Trac, но подойдет любой движок вики, просто убедитесь, что у него есть хороший способ отображения исходного кода, поскольку это полезно для небольших скриптов и списков команд.

Честно говоря, системное администрирование Linux - это не та область, в которую можно просто «прыгнуть».

если ты долженТем не менее, есть несколько хороших книг по этой теме. У О'Рейли есть две книги («Сетевое администрирование Linux» и «Системное администрирование Linux»), которые должны помочь вам начать работу.

Лично на вашем месте я бы провел несколько дней, возясь с разными дистрибутивами, устанавливая программное обеспечение, настраивая вещи типа Nagios / Cacti / Apache2 / SSH / NFS и, возможно, изучая какой-то язык сценариев (я использую Perl, я сам; но многие мои коллеги-админы предпочитают использовать Python. Однако действительно вам решать, что вы хотите узнать).

И обязательно изучите командную строку. Не прибегайте к графическим инструментам как к костылю.

Изучите vi. Даже если вы выучите его достаточно хорошо, чтобы вносить базовые изменения, все в порядке - но важно изучить vi, потому что иногда вы застреваете в системе без Vim / Nano / Emacs. В такой ситуации вы будете счастливы, что потратили день или два на изучение vi.

Если вам нужна помощь, напишите мне по электронной почте (мой адрес электронной почты [удален по соображениям безопасности]) - я буду рад помочь вам вне ServerFault.

Если вам удобно устанавливать приложение на серверы, рассмотрите webmin поскольку он обеспечивает универсальный магазин для большей части регистрации и настройки. Настройте его для работы через порт высокого уровня с использованием SSL, и он окупится простотой проверки.

Я вам открою самый большой не секрет системного и сетевого администрирования. Ты готов? Хорошо, вот оно:

Изучите основы. Позвольте мне уточнить.

Кто угодно (или почти что) может узнать, что делает то или иное конкретное программное обеспечение, и как нажать эту кнопку на этом инструменте, чтобы заставить работать x, y или z. Ничего особенного.

Если вы хотите быть хорошо sys / net admin, узнайте, что скрывается под капотом. Какова последовательность событий при типичном сетевом подключении? В чем разница между фреймом и пакетом? Что на самом деле означает средняя загрузка в системе Unix? Каков типичный процесс загрузки для машины (если вы проследите его от начала до конца, это даст вам массу знаний).

Как только вы поймете основы и действительно хорошо поймете их, заложить знания на хороший фундамент станет намного проще. Но если вы начнете сверху и попытаетесь изучить определенные части программного обеспечения, не зная, что происходит под ними, это сделает вас ... просто еще одним высокотехнологичным уборщиком.

Во-первых, найдите свои журналы. Большинство дистрибутивов Linux регистрируются в / var / log / messages, хотя я видел пару журналов в / var / log / syslog. Если что-то не так, скорее всего, в логах будет какая-то актуальная информация. Кроме того, если вы вообще имеете дело с электронной почтой, не забудьте / var / log / mail. Перепроверьте свои приложения, выясните, не зарегистрированы ли какие-либо из них нелепые записи вне системного журнала.

Освежите свои навыки работы с vi. Nano может быть тем, что сейчас используют все крутые ребята, но опыт научил меня, что vi - единственный текстовый редактор, который гарантированно присутствует в системе. Когда вы привыкнете к сочетаниям клавиш и начнете создавать свои собственные триггеры, vi станет для вас второй натурой.

Прочтите справочную страницу, а затем выполните следующие команды на каждом компьютере и скопируйте результаты в свою документацию:

hostname
cat /etc/*release*
cat /etc/hosts
cat /etc/resolv.conf
cat /etc/nsswitch
df -h
ifconfig -a
free -m
crontab -l
ls /etc/cron.d
echo $SHELL

Это послужит началом вашей документации. Эти команды позволяют узнать вашу среду и в дальнейшем могут помочь сузить круг проблем.

Просмотрите свои журналы и найдите «ошибка» или «сбой». Это даст вам представление о том, что работает не так, как должно. Ваши пользователи выскажут свое мнение о том, что не так, внимательно слушайте, что они говорят. Они не понимают систему, но видят ее иначе, чем вы.

Если у вас возникла проблема, проверьте все в следующем порядке:

  1. Дисковое пространство (df -h): Linux и некоторые приложения, работающие в Linux, делают очень странные вещи, когда заканчивается место на диске. Это может показаться несвязанным, пока вы не проверите и не обнаружите, что файловая система заполнена на 100%.

  2. Вверху: Top сообщит вам, если у вас застрял какой-то процесс, поглощающий все доступные циклы процессора. Ничто не должно занимать 99% ЦП в течение длительного периода времени. Если это законный процесс, он, вероятно, должен колебаться вверх и вниз. Пока вы в топе, проверьте ...

  3. Системная нагрузка: на стандартном сервере или рабочей станции системная нагрузка обычно должна быть ниже 3. Системная нагрузка зависит от ЦП, памяти и ввода-вывода.

  4. Память (свободная -m): использование ОЗУ в Linux немного отличается. Нередко можно увидеть сервер, почти вся оперативная память которого занята. Не паникуйте, если вы видите это, в основном это просто кеш, который будет очищен по мере необходимости. Однако обратите особое внимание на количество используемого свопа. Если возможно, держите это как можно ближе к нулю. Недостаток памяти может привести к разного рода проблемам с производительностью.

  5. Журналы: вернитесь к своим журналам, запустите tail -500 / var / log / messages | больше и начните читать и видеть, что происходит. Надеюсь, журналы смогут указать вам направление, в котором вам нужно двигаться дальше.

Хорошо обслуживаемый сервер Linux может без проблем работать годами. Мы просто отключили один, который работал 748 дней, и остановили его только потому, что перенесли приложение на новое оборудование. Надеюсь, это поможет вам намочить ноги и хорошо начать работу.

И последнее: всегда делайте копию файла конфигурации, который вы собираетесь изменить, и всегда копируйте изменяемую строку, и закомментируйте оригинал, добавляя причину его изменения. Это придаст вам привычки документировать по ходу дела и может спасти вашу шкуру через 9 месяцев.

хороший вопрос.

Мой совет. Научитесь пользоваться своей оболочкой.

Стандарт - это bash. Вы можете просто ввести help, чтобы перейти к документации.

выучить трубы "|" чтобы получить вывод одной команды на ввод второй команды.

И последнее, что помогло мне очень давно: Одностраничное руководство по Linux

усердно работать, никогда не сдаваться.

Через 3-4 года у вас будет достаточно знаний и многое придет само собой :)