Инструментарий и привычки для сетевого и системного администрирования Linux [закрыто]


20

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

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

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

Для начала мне нужно несколько базовых инструментов и то, что мне нужно делать регулярно, например, какие журналы проверять, когда и что отслеживать, какое «правильное» место начинать и к чему я могу обратиться. объявление как мне нужно.


Субъективная тема, в крайности. Как будет выглядеть «правильный» ответ?
Билл Вайс

Ответы:


16

1

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

2

собрать статистику, чтобы установить некоторые исходные данные. в будущем это будет полезно для планирования мощности. Вы можете использовать Munin , Zabbix, кактусы и т.д.

3

запускать запланированные автоматические резервные копии, хранить некоторые из них в автономном режиме, вне сайта. Следите за тем, чтобы им это удалось, время от времени проверяйте вручную, можете ли вы восстановить важные данные. Вы можете использовать backupninja для управления ими или Zmanda , но есть гораздо более полезные инструменты ..

4

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

5

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

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

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


«это бесконечный список ...» - действительно; Я гуглил это, прежде чем задал этот вопрос, но был ошеломлен. Я верю в ПОЦЕЛУЙ, и хочу начать с простой и легкой основы и постараться узнать все правильно.
Слэшмаис

1
Я хотел бы добавить, что пункты 1 и 4 являются наиболее важными. Я бы порекомендовал использовать систему управления конфигурацией, такую ​​как Puppet. по крайней мере, вы должны использовать контроль версий (git / svn), но Puppet позволит вам сделать что-то один раз, а затем будет повторяться, если вам нужно будет добавить или перестроить службы. Я также верю в чрезмерную инженерию. если вы строите свою инфраструктуру так, как вам нужно 100 машин, вам будет проще управлять 10 машинами и расширять их при необходимости.
neoice

4
Я думаю, это вопрос мнения, но я бы назвал пункт 3 наиболее важным. Да, это отстой, когда база данных бухгалтерского учета не работает в течение полдня, но это действительно отстой, когда все финансовые показатели ушли из-за отсутствия / плохого резервного копирования. YMMV.
Джо Интернет

@pQd - я бы также добавил мониторинг (nagios, opennms и т. д.) и систему тикетов. Не должно быть ничего удивительного: просто какое-то место, где можно хранить вещи "todo". В конце концов, его можно расширить до тех, кто отправляет необходимые ему запросы или разрабатывает очереди для других команд.
Уоррен

прочитайте « Тайм-менеджмент для системных администраторов » Томаса Лимончелли. Требуется чтение для всех, кто работает по электронной почте.
Уоррен

10

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


2
Также Essential System Administration от Фриша.
Джейсон Антман

10

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

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

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

Справочные страницы. Каждая команда и многие системные конфигурационные файлы (/ etc / fstab, / etc resolv.conf и т. Д.) Имеют страницы Man. Просто введите "man command_name" или "man file_name", чтобы увидеть, есть ли то, что вы ищете. Ох, и "Q" выходит из справочной страницы.

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

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

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

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

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

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

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

Контролируйте свою систему. Мониторинг использования вашего диска (df - полезная команда, а также du для определенных каталогов), мониторинг ваших запущенных процессов и задач (с помощью команды ps и топовых команд), мониторинг пользователей, вошедших в ваши системы (пользователи и команды who будут скажу вам это), и следите за использованием вашей сети (такие приложения, как кактусы, хороши для этого). Если у вас есть доступ к среде 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. Вы можете выбрать любой дистрибутив, который вам нужен, но, очевидно, имеет смысл выбрать тот, который вы используете в своей среде. Поиграйте в ВМ .. используйте его как песочницу. Настраивайте вещи, разбивайте вещи, исследуйте, учитесь. Прелесть виртуальной машины в песочнице в том, что не имеет значения, что с ней происходит. Если вы полностью его используете, просто сделайте новый. Или сохраните резервную копию оригинала после его настройки и используйте ее всякий раз, когда вам это нужно.

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


Он исключил синтаксис из моих примеров команд "man", поэтому я немного их скорректировал. Вы просто замените «имя_команды» и «имя_файла» на соответствующую команду или файл.
kingfish

Иногда в Блокноте и я набираю ESC,: wq проблема в том, что это не редкий случай. Интересно, почему ...
Мирча Вутцовичи

8

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

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


3

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

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

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

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

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

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


Я знаю Perl; Я знаю / некоторые / vi (как вставить и сохранить & выйти - предпочитаю нано). К счастью, у меня ситуация «низкого давления», поэтому мне не нужно сразу становиться гуру системного администратора, я могу вырасти до этого (и иметь ошибку сервера, и вы (спасибо за доверие) спросите, когда я действительно застряли (также принадлежат к очень полезному LUG). Мне нужно несколько базовых инструментов и то, что мне нужно делать регулярно, например: какие журналы проверять, когда и что контролировать, своего рода «правильное» место для начала и на котором я могу
рекламировать,

Затем я рекомендую вам настроить Cacti, Nagios, Snort и Postfix. Это, вероятно, те четыре инструмента, которые вы используете чаще всего для мониторинга вашей системы. Их установка также сэкономит вам много времени на проверку файлов журналов вручную. Что касается ручной проверки логов, то все, что в / var / log /, вероятно, является хорошим выбором. Я не могу указать на какие-либо конкретные файлы, но если что-то не работает должным образом с чем-то, лучше было бы проверить / var / log
Майкл Побега

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

3

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


2

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

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

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

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

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


2

Прежде всего, найдите ваши логи. Большинство дистрибутивов 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

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

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

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

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

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

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

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

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

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

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


1

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

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

Стандарт Bash. Вы можете просто набрать help, чтобы получить документацию.

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

Последнее, что помогло мне много лет назад: Linux One Page Manual

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.