Стол для системного администратора
Аpt-key is deprecated или управление ключами в современных выпусках Debian и Ubuntu
Многие базовые действия в дистрибутивах Linux не меняются множество лет и для многих стали уже привычкой. А привычки - вещь такая: привыкнуть легко, сложно переучиться. Поэтому изменения базовых вещей многими воспринимается в штыки и вызывает крайне негативные эмоции. Apt-key - утилита командной строки для управления ключами пакетного менеджера APT и когда ее объявили устаревшей, то многим это не понравилось. Однако на то были свои причины, а новая система управления ключами во многом даже проще и удобнее, нужно лишь разобраться и привыкнуть.
Linux - начинающим. Что такое OOM Killer и как он работает
OOM Killer, пожалуй, одна из немногих технологий в Linux, овеянная мифами и легендами. Часто из уст в уста передаются истории, претендующие на хороший триллер. На самом деле все гораздо проще и прозаичнее, а работа OOM Killer подчиняется строгим правилам. Cегодня мы попробуем разобраться в том, что такое OOM Killer и для чего он предназначен, а также разберемся как он работает и по каким критериям выбирает процессы для завершения. Поэтому, если OOM Killer для вас все еще мифический и непонятный черный ящик, то обязательно прочитайте эту статью.
Настраиваем централизованное управление электропитанием в сети при помощи NUT
Всем известно, что для защиты от сбоев электропитания нужно купить бесперебойник. Но сам по себе источник бесперебойного питания не решает проблему, а только отсрочивает негативные последствия. Действительно, если питание пропадет надолго, то после разрядки батарей ИБП ваши системы аварийно завершат работу. Избежать этого позволяют модели, имеющие обратную связь, но, чтобы использовать эти возможности нам потребуется система управления электропитанием и сегодня мы расскажем об открытом и бесплатном продукте - NUT ( Network UPS Tools).
Linux - начинающим. Как узнать чем занято место на диске?
Контроль свободного места на серверах и рабочих станциях под управлением Linux является достаточно актуальной задачей для администратора, особенно при использовании SSD, объемы которых все еще меньше, чем хотелось бы. При этом недостаточно только контролировать занятое пространство, нужно еще четко понимать, чем именно оно занято, то ли это рабочие данные и нужно действительно расширять дисковую подсистему, то ли скопившийся годами хлам, который можно безболезненно удалить.
Linux - начинающим. Установка и первоначальная настройка Debian 11 для сервера
Debian - один из самых старых и популярных Linux-дистрибутивов общего применения, одинаково подходящего для создания как сервера, так и рабочей станции. Но сегодня мы поговорим именно о серверном применении, где Debian ценится, в первую очередь, за высочайшую стабильность и консервативность. В данной статье мы пошагово расскажем, как установить и настроить Debian 11 в минимальной серверной конфигурации, которую потом можно будет использовать как основу для любых серверных решений на базе этой системы.
Настраиваем использование оперативной памяти при работе с ZFS в Proxmox VE
ZFS - продвинутая файловая система с огромным количеством возможностей, что, безусловно, привлекает к ней администраторов. Тем более, что в Proxmox VE использовать ZFS действительно просто и для этого вам не потребуются какие-то особые знания. С одной стороны это хорошо - нажал на кнопку и получил результат, с другой - может сыграть злую шутку. Основная проблема использования ZFS в Proxmox - высокое потребление оперативной памяти. Сегодня мы рассмотрим причины этого явления и дадим советы по оптимизации.
Настраиваем отказоустойчивый DHCP-сервер на базе ISC DHCP
DHCP-сервер является одним из ключевых элементов сетевой инфраструктуры любого размера и его нормальное функционирование является залогом стабильной работы сети. Одним из способов это обеспечить является создание отказоустойчивой структуры из двух серверов, которые в нормальном режиме балансируют нагрузку, а в случае недоступности одного из серверов обслуживание всех его клиентов переходит к партнеру. В данной статье мы расскажем, как настроить такой сервер на базе ISC DHCP на платформе Linux.
Синхронизация времени с внешним источником при помощи systemd-timesyncd
Современные системы выдвигают совершенно иные требования к точному времени, чем могут обеспечить аппаратные часы компьютера. На время завязаны службы криптографии и аутентификации, системы контроля доступа и видеонаблюдения, финансовые системы и кассовые узлы. Поэтому важно, чтобы время на всех узлах инфраструктуры было не только точным, но и одинаковым. А при работе распределенных структур также требуется правильно настроить часовые пояса. В Linux это можно сделать разными способами, но зачем, если есть штатное решение на базе systemd-timesyncd.
Некоторые особенности использования оперативной памяти в виртуальных машинах Windows
Виртуальные машины прочно вошли в нашу жизнь и принесли с собой новые подходы к управлению ресурсами, а также новые потенциальные проблемы. Это не хорошо и не плохо, так и должно быть, сильные и слабые стороны есть у любого решения, и задача хорошего специалиста знать о них и играть от сильных сторон. Но тем не менее не все обладают нужным набором знаний и даже не представляют куда смотреть, если ресурсы, выделенные виртуальной машине, ведут себя непредсказуемо, в первую очередь это касается оперативной памяти.
Настраиваем антивирусную защиту в реальном времени на основе ClamAV On Access Scanning
Защита от вредоносного ПО - задача номер один для многих системных администраторов и компьютеры под управлением Linux не исключение. Будучи сами не подвержены заражению многими видами вредоносов они могут стать в смешанных средах их рассадником, особенно это касается файловых серверов. Популярным антивирусным ПО в Linux является ClamAV и начиная с версии 0.99 он умеет работать в режиме монитора, проверяя файлы в момент доступа к ним. Таким образом можно организовать сканирование в реальном времени без привлечения сторонних средств и сегодня мы расскажем как.
Начинающему сисадмину: как из хаоса сделать порядок
Я системный администратор FirstVDS, и это — текст первой вводной лекции из моего краткого курса помощи начинающим коллегам. Специалисты, которые недавно начали заниматься системным администрированием, сталкиваются с рядом одних и тех же проблем. Чтобы предложить решения, я взялся написать этот цикл лекций. Некоторые вещи в нём специфичны для технической поддержки хостинга, но в целом, могут оказаться полезными если не для всех, то для многих. Поэтому я адаптировал текст лекции, чтобы поделиться здесь.
Не имеет значения, как называется ваша должность — важно, что по факту вы занимаетесь администрированием. Поэтому начнем с того, чем должен заниматься системный администратор. Основная его задача — это приведение в порядок, поддержание порядка и подготовка к грядущим увеличениям порядка. Без системного администратора на сервере начинается бардак. Логи не пишутся, или в них пишется не то, ресурсы распределяются неоптимально, диск заполняется всевозможным мусором и система начинает медленно загибаться от такого количества хаоса. Спокойно! Системные администраторы в вашем лице приступают к решению проблем и устранению бардака!
Столпы системного администрирования
Однако прежде, чем приступать к решению проблем, стоит познакомиться с четырьмя основными столпами администрирования:
- Документацией
- Шаблонизацией
- Оптимизацией
- Автоматизацией
Документация
Документация подразумевает под собой не чтение документации (хотя без этого никуда), но и ведение.
Как вести документацию:
- Столкнулись с новой проблемой, которую до этого не видели никогда? Запишите основные симптомы, способы диагностики и принципы устранения.
- Придумали новое элегантное решение типовой проблемы? Запишите его, чтобы вам не пришлось изобретать его заново через месяц.
- Вам помогли разобраться с вопросом, в котором вы ничего не понимали? Запишите основные тезисы и концепции, нарисуйте себе схему.
В каком формате вы это будете делать, зависит только от вас: это может быть система с заметками, личный блог, текстовый файл, физический блокнот. Главное, чтобы ваши записи отвечали следующим требованиям:
- Не быть излишне длинными. Выделяйте основные идеи, методы и средства. Если понимание проблемы требует нырнуть в низкоуровневую механику работы выделения памяти в Linux, не переписывайте статью, из которой вы ее узнали — дайте на нее ссылку.
- Записи должны быть понятными для вас. Если строчка race cond.lockup не позволяет вам сразу понять, что вы этой строчкой описали — поясните. В хорошей документации не надо разбираться по полчаса.
- Поиск — очень хорошая фишка. Если вы ведёте записи в блоге, добавляйте теги; если в физическом блокноте — приклеивайте маленькие post-it с описаниями. Нет особого смысла в документации, если вы на поиск ответа в ней тратите столько же времени, сколько потратили бы на решение вопроса с нуля.
Вот так может выглядеть документация: от примитивных записей в блокноте (картинка выше), до полноценной многопользовательской базы знаний с тегами, поиском и всеми возможными удобствами (ниже).
Вам не только не придётся искать одни и те же ответы дважды: документирование будет замечательным подспорьем в изучении новых тем (конспекты же!), прокачает ваше паучье чутьё (способность диагностировать сложную проблему, бросив один поверхностный взгляд), добавит организованности в ваши действия. Если документация будет доступна вашим коллегам, то позволит им разобраться, что и как вы там нагородили, когда вас не будет на месте.
Шаблонизация
Шаблонизация — это создание и использование шаблонов. Для решения большинства типовых вопросов стоит создать определённый шаблон действий. Для диагностики большинства проблем следует использовать стандартизированную последовательность действий. Когда вы что-то починили/установили/оптимизировали, работоспособность этого чего-то стоит проверять по стандартизированным чек-листам.
Шаблонизация — лучший способ организации рабочего процесса. Используя типовые процедуры для решения наиболее частых проблем, вы получаете много всего классного. Например, использование чек-листов позволит вам диагностировать все важные для работы функции и отбросить диагностику маловажной функциональности. А стандартизированные процедуры сведут к минимуму ненужные метания и снизят вероятность ошибки.
Первым важным моментом является то, что процедуры и чек-листы тоже нужно документировать. Если просто надеяться на память, можно пропустить какую-нибудь реально важную проверку или операцию и всё развалить. Второй важный момент — все шаблонные практики можно и нужно модифицировать, если этого требует ситуация. Идеальных и абсолютно универсальных шаблонов нет. Если проблема есть, а шаблонная проверка её не выявила — это не значит, что проблемы нет. Однако прежде, чем браться за проверку каких-то маловероятных гипотетических проблем, всегда стоит сперва сделать быструю шаблонную проверку.
Оптимизация
Оптимизация говорит сама за себя. Рабочий процесс нужно максимально оптимизировать в плане время- и трудозатрат. Тут вариантов бессчётное множество: выучите горячие клавиши, сокращения, регулярные выражения, доступные инструменты. Ищите варианты более практичного использования этих инструментов. Если вы 100 раз на дню вызываете команду, повесьте её на клавиатурное сокращение. Если вам нужно регулярно подключаться к одним и тем же серверам, запишите alias в одно слово, который будет вас туда подключать:
Ознакомьтесь с разными вариантами доступных инструментов — возможно, есть более удобный терминальный клиент, DE, менеджер буфера обмена, браузер, почтовый клиент, операционная система. Узнайте, какими инструментами пользуются ваши коллеги и знакомые — может, они выбирают их не просто так. После того, как вы подберете инструменты, научитесь их применять: выучите ключи, сокращения, tips and tricks.
Оптимально используйте стандартные инструменты — coreutils, vim, регулярные выражения, bash. Для последних трёх есть огромное количество замечательных мануалов и документация. С их помощью можно довольно быстро перейти от состояния «я чувствую себя обезьяной, которая колет орехи ноутбуком — до «я обезьяна, которая использует ноутбук, чтобы заказать себе орехокол».
Автоматизация
Автоматизация перенесет тяжёлые операции из наших уставших рук в неутомимые руки автоматики. Если какая-то стандартная процедура выполняется в пяток однотипных команд, то почему бы не обернуть все эти команды в один файлик и не звать одну команду, которая этот файлик качает и выполняет?
Собственно автоматизация на 80% состоит из написания и оптимизации своих собственных инструментов (и ещё на 20% из попыток заставить их работать как надо). Это может быть просто продвинутый однострочник или же огромная всемогущая тулза с веб-интерфейсом и API. Главный критерий здесь — создание инструмента должно занимать не больше времени и усилий, чем количество времени и усилий, которое вам этот инструмент сэкономит. Если вы пять часов пишете скрипт, который вам больше никогда не пригодится, для задачи, на решение которой у вас без скрипта ушел бы час-другой — это очень плохая оптимизация рабочего процесса. Можно потратить пять часов на создание инструмента, только если количество, тип задач и время это позволяют, что бывает нечасто.
Автоматизация необязательно подразумевает написание полноценных скриптов. Например, чтобы создать кучу однотипных объектов из списка, достаточно ловкого однострочника, который автоматом сделает то, что вы бы делали руками, переключаясь между окнами, с кучами копипаста.
Собственно, если построить процесс администрирования на этих четырёх столпах, то можно довольно быстро повысить свою эффективность, продуктивность и квалификацию. Однако этот список нужно дополнить ещё одним пунктом, без которого работа в IT практически невозможна — самообразованием.
Самообразование сисадмина
Чтобы быть в этой сфере хоть чуть-чуть компетентными, нужно постоянно учиться и узнавать новое. Если у вас нет ни малейшего желания сталкиваться с неизвестным и разбираться, вы очень быстро «просядете». В IT постоянно появляются всевозможные новые решения, технологии и методы, и если вы не изучаете их хотя бы поверхностно — вы на пути к проигрышу. Многие области информационных технологий стоят на весьма сложном и объёмном базисе. Например, работа сети. Сети и интернет есть везде, вы сталкиваетесь с ними ежедневно, но стоит копнуть в технологии, которые стоят за ними, вы обнаружите огромную и очень сложную дисциплину, изучение которой — ни разу не прогулка в парке.
Я не стал включать этот пункт в список, потому что он — ключевой для IT в общем, а не только для системного администрирования. Естественно, выучить абсолютно всё и сразу не получится — у вас просто физически не хватит времени. Поэтому при самообразовании следует помнить о необходимых уровнях абстракции.
Вам необязательно сразу учить, как работает внутренний менеджмент памяти у каждой отдельно взятой утилиты, и как он взаимодействует с менеджментом памяти Linux, но вот что оперативная память из себя представляет схематически, и зачем она нужна, знать неплохо. Вам необязательно знать, как структурно отличаются заголовки у TCP и UDP, но было бы неплохо понимать основные отличия протоколов в работе. Вам не нужно изучать, что из себя представляют затухания сигнала в оптике, но было бы неплохо знать, почему настоящие потери всегда наследуются по узлам. Нет ничего плохого в том, чтобы знать как работают определённые элементы на определённом уровне абстракции и необязательно разбирать абсолютно все уровни, когда абстракции нет вообще (вы просто свихнётесь).
Однако в своей области рассуждать на уровне абстракции «ну это такая штука, которая позволяет показывать сайтики» — не очень хорошо. Следующие лекции будут посвящены обзору основных областей, с которыми системному администратору приходится сталкиваться в работе на более низких уровнях абстракции. Я постараюсь ограничить количество обозреваемых знаний минимальным уровнем абстракции.
10 заповедей системного администрирования
Итак, мы усвоили четыре основных столпа и фундамент. Можно начинать решать проблемы? Ещё нет. Перед этим желательно ознакомиться с так называемыми «best practices» и правилами хорошего тона. Без них есть вероятность, что вы принесёте больше вреда, чем пользы. Итак, начнём:
- Некоторые мои коллеги считают, что самое первое правило — «не навреди». Но я склонен не согласиться. Когда пытаешься не навредить, то и сделать ничего не можешь — слишком много действий потенциально деструктивны. Самым важным правилом я считаю — «сделай бэкап». Даже если навредишь, всегда можно будет откатиться, и всё будет уже не так плохо.
Основные инструменты, с которыми вам придётся работать больше 50% времени — grep и vim. Что может быть проще? Поиск по тексту и редактирование текста. Однако и grep, и vim — мощнейшие многофункциональные мультитулы, которые позволяют искать и редактировать текст эффективно. Если какой-нибудь виндовый notepad позволит вам просто написать/удалить строчку, то в vim’е можно делать с текстом почти что угодно. Не верите — вызовите из терминала команду vimtutor и начинайте учить. Что же касается grep — основная его сила в регулярных выражениях. Да, сам инструмент позволяет довольно гибко задавать условия поиска и выводимые данные, но без RegExp это особого смысла не имеет. И регулярные выражения знать нужно! Хотя бы на базовом уровне. Для начала я бы посоветовал вам посмотреть вот это видео, в нём разбираются основы основ регулярных выражений и их применения совместно с grep. Ах да, при совмещении их с vim, вы получаете ULTIMATE POWER возможность делать с текстом такие вещи, что их приходится обвешивать значками 18+.
Из оставшихся 50%, 40% приходятся на пакет инструментов coreutils. Для coreutils список вы можете посмотреть в википедии, а мануал ко всему списку — на сайте GNU. Что не покрыто этим набором, есть в утилитах POSIX. Необязательно заучивать это со всеми ключами наизусть, но хотя бы примерно знать, что могут основные инструменты — полезно. Не придётся изобретать велосипед из костылей. Мне как-то надо было заменить переносы строки на пробелы в выводе от какой-то утилиты, и больной мозг родил конструкцию вида sed ':a;N;$!ba;s/\n/ /g' , подошедший коллега отогнал меня метлой от консоли, а потом решил задачу, написав tr '\n' ' ' .
Я бы посоветовал запомнить, что примерно выполняет каждая отдельная тулза и ключики к самым часто используемым командам, для всего остального есть man. Не стесняйтесь звать man, если вы в чём-то сомневаетесь. И обязательно прочитайте man на сам man — он содержит важную информацию о том, что вы найдете.
Зная эти инструменты, вы сможете эффективно решить значительную часть задач, с которыми столкнетесь на практике. В следующих лекциях мы рассмотрим, когда применять эти инструменты и структуры основных служб и приложений, к которым они применяются.
Записки IT специалиста
Думаем, что ни для кого не секрет, что производительность труда прямо зависит от организации рабочего места. Когда там порядок, все инструменты и приспособления удобно размещены под рукой, ничего не валяется и не мешается, то и работа спорится. И наоборот, так называемый "рабочий беспорядок" плохой помощник в работе, да и какая там работа, когда сначала ищешь инструмент, а найдя его начинаешь деталь ради которой это все затевалось.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Поэтому системный блок обычно стоит по правую руку с вечно снятой боковой крышкой, но при этом возникает несколько неудобных моментов. Во первых, все органы управления, индикаторы и передние разъемы USB находятся вне поля зрения и использовать их приходится вслепую, либо вставать с рабочего места. Кроме того не всегда удобно туда тянуться. Второй большой проблемой является лоток привода оптических дисков, во первых он выезжает далеко вправо, что уже неудобно, так и не позволяет придвинуть корпус в упор к стене или разместить на полке над монитором.
Мы уже не помним, кому в голову первому пришла идея развернуть корзины и элементы передней панели на 90°, лицом к пользователю, но впервые на практике ее реализовали наши коллеги из компании "НИКС-Белгород". Решение оказалось простым и удачным, позволяя расположить индикацию, органы управления и дисководы наиболее удобным образом и экономя около 25% рабочего пространства.
Как видно из рисунка, удалось значительно сократить требования к занимаемому месту по ширине и убрать все органы управления, индикаторы и разъемы из непросматриваемой области (выделена красным). Для подобной переделки корпуса потребуется дрель, отвертка, надфиль, термоклей и час свободного времени, а также ровные руки и немного смекалки.
Прежде всего разбираем корпус и высверливаем заклепки, держащие корзину. Затем разворачиваем ее на 90° и смотрим каким образом ее можно закрепить, обычно для этого сверлится несколько отверстий в верхней крышке и, если требуется, дне. Перед тем, как ставить корзину на новое место вставляем и прикручиваем туда оптический привод, жесткий диск и другие девайсы, так как в собранном виде сделать это будет проблематично. В итоге у вас должно получиться что-то похожее на это:
На дно пятидюймовой корзины и дно корпуса стоит приклеить прокладки из вспененного полиэтилена (или поролона) от упаковок материнских плат, это позволит размещать там подключаемые жесткие диски не опасаясь, что они замкнут на металлической поверхности, также в пятидюймовый отсек стоит вывести свободный SATA кабель и разъем питания.
Отдельного разговора и смекалки потребует выведение кнопок, светодиодов и USB-планок. Здесь широкий простор для фантазии и творчества. Мы приспособили для этих целей пластиковую заглушку, к которой прикрепили USB-разъемы от планок для слотов расширения. Рядом размещены кнопки включения и сброса, а также индикаторы, мы закрепили их на термоклей, хотя никто не мешает придумать собственное решение для размещения этих элементов.
Удобство пользования таким корпусом каждый может оценить самостоятельно. Но преимущества очевидны: сэкономлено рабочее пространство, к кнопкам, лотку оптического привода и USB разъемам больше не надо тянуться, в корпусе появилось два отделения куда можно положить подключенный жесткий диск, больше не рискуя задеть его на столе или пролить на него что-нибудь, да и порядка на рабочем месте прибавится. Кроме того, корпус теперь можно разместить более удобно: поставить вплотную к стене, разместить в нише или на полке, повесить на стену над монитором.
Надеемся что наше решение окажется вам полезным и даст повод для изобретения собственных решений повышающих удобство использования рабочего места.
Организация серверной комнаты, что необходимо для рабочего места сисадмина
Если вы представитель малого бизнеса и планируете расширяться, неизбежно столкнетесь с необходимостью оборудования серверной. Ведь без нее в этом случае не обойтись. К работе надо подойти ответственно. Поговорим, о чем нужно знать.
Техническая часть
Первое, о чем надо задуматься — техническая составляющая серверной. Начинать надо с проекта. Обычно помещение для оборудования небольшое, а разместить надо как минимум две стойки. Стандартная ширина стоек — 19’’ (47.5 см), глубина – обычно от 60 до 90 см. Поэтому сначала создаем чертеж-схему с учетом габаритов техники. Хотя бы от руки. Но лучше в специальной программе для трехмерного моделирования.
Рабочее место системного администратора должно быть удобным и функциональным
Второй момент — наличие источника бесперебойного питания. Проблемы с подачей электроэнергии возникают не так уж редко. Ведь при отключении света важная информация может не сохраниться, а в работе сети могут возникнуть неполадки. Поэтому стоит позаботиться о мощном ИБП, который в случае прекращения подачи тока протянет хотя бы 15–20 минут.
Не надо забывать и об охлаждении, особенно если серверная расположена в помещении небольшого объема. Для снижения температуры воздуха она обязательно должна быть оснащена кондиционерам. В летнюю жару без него не обойтись. При серьезных нагрузках температура серверных процессоров может переваливать за 100 °С. Сильно греются и другие комплектующие.
Для защиты от несанкционированного доступа в помещении, где расположен сервер, должны быть:
- массивная дверь, ключ от которой есть только у системного администратора и руководителя предприятия;
- камеры видеонаблюдения.
На случай возгорания в серверной обязательно должны быть средства пожаротушения (как минимум — огнетушитель).
Рабочее место системного администратора
Второй важный аспект эффективного и бесперебойного функционирования серверной — грамотно обустроенное рабочее место системного администратора. Вот несколько правил, которых стоит придерживаться при его создании:
- У системного администратора должен быть удобный стул для рабочего стола. Работа сисадмина по большей части сидячая. Важно, чтобы сотруднику было комфортно. Ведь от этого напрямую зависит, насколько эффективно он будет решать поставленные задачи.
- На рабочем месте сисадмина должен быть предмет, куда он сможет складывать инструменты и расходные материалы. Лучше всего для этого подходит тумба компьютерная. Она имеет несколько вместительных отделений, позволяет хранить большой объем предметов.
Если соблюсти эти несложные правила, с работой серверной не возникнет проблем, а сисадмин будет максимально эффективно выполнять возложенные на него обязанности.
Читайте также: