- 10 skills every Linux system administrator should have
- User account management
- Career advice
- Structured Query Language (SQL)
- Network traffic packet capture
- The vi editor
- More Linux resources
- Backup and restore
- Hardware setup and troubleshooting
- Network routers and firewalls
- Network switches
- SIEMs and monitoring systems
- Interviewing and other interpersonal skills
- Wrapping up
- Лекции Технотрека. Администрирование Linux
- Лекция 1. Основы
- Лекция 2. Пользовательское окружение Linux
- Лекция 3. Linux и сеть (основы)
- Лекция 4. Управление пользовательским окружением
- Лекция 5. Веб-сервисы
- Лекция 6. Хранение данных
- Лекция 7. Сервисы инфраструктуры
- Лекция 8. Резервное копирование
- Лекция 9. Резервное копирование (часть 2)
- Лекция 10. Инфраструктура электронной почты
- Лекция 11. Распределение ресурсов системы
- Средства системного администратора Linux
- Средства системного администратора Linux
- Администрирование
- Мониторинг
- Централизованное управление пакетами
- Логирование
- Резервное копирование
- Постскриптум
10 skills every Linux system administrator should have
Linux system administrators often morph into people who wear many hats. Sometimes you have to be a network administrator, desktop support tech, and end-user advocate. Yet, you always have to be a Linux sysadmin. To that end, I’ve devised a list of ten essential Linux system administrator skills that you should possess. These are in no particular order of importance.
User account management
Career advice
User account management is a primary responsibility of a Linux system administrator (SA). It is also one of the responsibilities generally handed to junior-level SAs. Junior-level SAs have this task because it is time-consuming and considered to be a «lower-level» activity. That designation is not meant to be insulting toward anyone, but user account management is not a critical function such as backup and recovery, troubleshooting, or patching, for example. If you need a user account management refresher, search Enable Sysadmin for posts on the topic.
Structured Query Language (SQL)
SQL isn’t a standard SA job requirement, but I’d suggest you learn it. It’s a good skill to know for a variety of reasons, not the least of which is to dispell assumptions that whatever problem is going on with a database server is infrastructure-related. Stepping outside your typical SA duties to extend yourself is generally a good idea to further your own career and to increase your value to a company. Learning something new is always positive. Check out Enable Sysadmin’s poll covering this topic.
Network traffic packet capture
One of Enable Sysadmin’s authors, Anthony Critelli, recently wrote the article Packet sniffer basics for network troubleshooting, in which he describes the use of tcpdump as an essential SA skill. But regardless of the packet capture tool you use ( tcpdump , Wireshark, etc.), capturing, interpreting, and analyzing network traffic is an important skill because of the security implications of the data you receive from it. Network traffic can alert you to multiple types of attacks in real-time and help you troubleshoot other network problems.
The vi editor
More Linux resources
As ancient and as «old school» as it is, the vi (ViM) editor is still the editor of choice for thousands of Linux SAs. This editor is easy to use, it’s installed by default, and every SA should know how to use it. If you’re unfamiliar with vi , check out my introductory article on using vi . The vi editor is the gold standard text editor and has been for more than 40 years.
Backup and restore
There are a variety of applications and techniques that SAs can use to back up files and directories as well as restore them. Backup, restore, and other disaster recovery activities are essential SA skills. You have to know how to back up and restore files for your users. If you or a member of your team perform backups, you need to audit the backups by periodically restoring a few files to check your backup and restore process.
Hardware setup and troubleshooting
Every SA needs to know how to set up, maintain, and troubleshoot hardware systems. You need to know how to deal with hardware failures that include disks, memory, NICs, ports, peripherals, and the rare CPU that goes belly up. Even if your infrastructure is entirely hosted or cloud-based, you should be familiar with the underlying hardware and its configurations, limitations, and vulnerabilities so that you can ensure that your hosting company or provider stays on top of security.
Network routers and firewalls
It’s important to know a little something about your network’s inner workings. Get familiar with your network’s routers and firewalls. You should examine your system configurations to decide if they’re consistent with Linux system security practices, which means you should be running host-based firewalls. You need to know what, if any, firewall exceptions have been configured and which systems and their ports are exposed to the internet. If you don’t have access, request a read-only account with access to all network hardware so that you can query and track configurations and changes.
Network switches
As a system administrator, your servers are directly connected to network switches, and you should know configuration details such as your VLAN configurations and who has access to change those configurations. Request read-only access so that you can perform queries against all network switches and switch stacks. And because your systems all have direct connections to network switches, you need to be apprised of maintenance activities and vulnerabilities associated with switch hardware and operating systems.
SIEMs and monitoring systems
Security information and event management (SIEM) and monitoring systems are absolutely essential skills to know. Sure, the security folks want to maintain a tight grip on access, but you need access to be able to keep a watchful eye on your systems. No one will ever care as much about the security of your systems as you do. You need to be able to query those systems, to have your own dashboard, and to adjust thresholds as needed. You also need to be able to set up specific monitoring for your systems that send notifications to you personally, or to a group account or device for on-call rotation purposes.
If neither a SIEM nor a monitoring solution already exists in your network, I suggest exploring some open source or free software options before plunking down thousands (or tens of thousands) on commercial software that has a lot of functionality that you probably don’t need.
Interviewing and other interpersonal skills
I know what you’re saying. You’re saying, «Oh, great, someone else telling me that I need soft skills.» Yes, that’s what I’m telling you. Honing your interviewing skills can not only determine if you get a particular job, it can also be a major factor in the salary you get. It’s true. Let’s say, for example, that the salary range for a mid-level SA job is $56k to $85k per year. You might be fully qualified for the top of the range, but the company offers you $70k instead and mentions some nonsense about growth potential or they tell you that they’ll bring you along when the time is right.
You need to practice answering questions. Answer the question that’s asked. Don’t give so much information that you see eyes glazing over, but giving answers that are too short will make you appear arrogant or flippant. Give enough examples of your work to let the interviewer(s) know that you know what you’re talking about. They can ask for more details if they want to.
You have to learn to watch other people’s behaviors. Are they listening to you? Are they focused on you and the interview? Do they look as though you haven’t said enough when you pause to allow them to speak or ask another question? Watch and learn. Practice with other system administrators in your group. Do mock interviews with the group. I know it might sound silly, but it’s important to be able to speak to other people about what you do. This practice can also be good for you in speaking with managers. Don’t get too deep into the weeds with non-technical people. Keep your answers concise and friendly, and offer examples to illustrate your points.
Wrapping up
As you can see from this list of ten essential sysadmin skills, being a system administrator isn’t «just one thing.» System administration covers a lot of ground and encompasses many diverse tasks. The bottom line is that you need to learn as much as you can about everything that you can. Specializing these days is not what you want to do. Additionally, being able to speak to a variety of professionals will make you even more valuable when the job market tightens up.
Want to evaluate your own sysadmin skills? Take this handy skills assessment.
Источник
Лекции Технотрека. Администрирование Linux
Представляем вашему вниманию очередную порцию лекций Технотрека. В рамках курса будут рассмотрены основы системного администрирования интернет-сервисов, обеспечения их отказоустойчивости, производительности и безопасности, а также особенности устройства ОС Linux, наиболее широко применяемой в подобных проектах. В качестве примера будут использоваться дистрибутивы семейства RHEL 7 (CentOS 7), веб-сервер nginx, СУБД MySQL, системы резервного копирования bacula, системы мониторинга Zabbix, системы виртуализации oVirt, балансировщика нагрузки на базе ipvs+keepalived. Курс ведёт Сергей Клочков, системный администратор в компании Variti.
Лекция 1. Основы
В начале лекции вы узнаете об истории появления и развития Linux. Затем проводится экскурс по экосистеме Linux, рассказывается о некоторых различиях между дистрибутивами. Далее обсуждается иерархия файловой системы, рассматривается основной рабочий инструмент в этой ОС — командная строка. Подробно рассказывается о Bash-скриптах, о двух основных сущностях в системе — пользователях и группах. Затем обсуждаются регулирование прав доступа к файлам и директориям, рассматриваются привилегии пользователей и в завершение лекции затрагивается тема удалённого доступа.
Лекция 2. Пользовательское окружение Linux
Сначала подробно рассказывается об этапах загрузки системы и ОС, обсуждается ядро Linux. Объясняется, что собой представляет «процесс», как он использует оперативную память. Вы узнаете, что такое дескрипторы и для чего они нужны, как процессор потребляет ресурсы. Затем рассматриваются системные вызовы, сигналы, лимиты процессов, переменные окружения. Обсуждается вопрос размножения процессов и подробно анализируется работа процесса. В завершение вы узнаете о подсистеме perf и логах.
Лекция 3. Linux и сеть (основы)
Вы узнаете, что такое сетевой стек и модель OSI. Вспомните, что такое Ethernet и как с ним работает Linux. Дальше будут освежены ваши знания об использовании IPv4, особенностях IPv4-пакетов и сетей. Затем рассматривается ICMP, мультикаст в IPv4. Далее переходим к IPv6, обсуждаются заголовки IPv6-пакетов, UDP, TCP-соединения. Затрагивается тема TCP congestion control. Потом рассказывается о NAT, протоколах уровня приложения, DNS, NTP, HTTP и URL. Разбираются коды HTTP-ответа (успешные ответы и ошибки).
Лекция 4. Управление пользовательским окружением
Вы узнаете о том, что такое менеджер пакетов RPM и как его использовать. Далее рассматривается классический init, системный менеджер systemd. Разбирается пример init-файла. Обсуждаются основные типы Unit’ов, рассказывается про системный логгер и ротацию логов. В заключение вы узнаете об основах конфигурации сетевых интерфейсов.
Лекция 5. Веб-сервисы
Сначала рассматривается типовая архитектура веб-сервиса. Рассказывается о том, что такое фронтенд, что такое сервер приложений. Разбирается вопрос хранения данных веб-приложениями. Подробно разбирается работа и использование протокола HTTP. Обсуждаются виды HTTP-запросов. Затрагивается тема создания шифрованных туннелей с помощью SSL. Затем рассматриваются примеры установки СУБД MySQL с созданием БД и пользователя. Разбирается работа с PHP-FPM, конфигурирование nginx, установка и настройка wiki-движка.
Лекция 6. Хранение данных
Перечисляются основные проблемы хранения данных, рассматриваются достоинства и недостатки разных устройств хранения, их интерфейсы. Затем вы узнаете, как определять состояние жёсткого диска, какова его производительность, что такое RAID, какие бывают RAID-массивы и как их создавать. Сравниваются разные типы RAID, а также программные и аппаратные массивы. Обсуждаются LVM-снепшоты, рассматриваются разные файловые системы. Затрагивается вопрос удалённого хранения данных и использование протокола ISCSI.
Лекция 7. Сервисы инфраструктуры
Рассматривается DNS-сервер bind, NTP-сервер. Обсуждается централизованная аутентификация на основе LDAP. Разбирается DHCP, задача установки ОС по сети с помощью kickstart, а в завершение рассматривается система управления конфигурацией Salt.
Лекция 8. Резервное копирование
Начало лекции посвящено продолжению рассказа о системе управления конфигурацией Salt. Рассказывается, как её установить, как осуществляется управление конфигурацией Linux, разбирается её пример. Вы узнаете, что такое «зёрна» и зачем они нужны. Далее переходим к теме резервного копирования: какие данные нужно копировать, каковы основные трудности, какие бывают виды резервных копий. Обсуждается задача резервного копирования ОС. Рассказывается об использовании системы резервного копирования bacula.
Лекция 9. Резервное копирование (часть 2)
В начале лекции рассказывается о резервном копировании БД. Обсуждаются различные стратегии резервного копирования — mysqldump, mylvmbackup. Вы узнаете, для чего нужен мониторинг и как его выполнять, какие есть средства мониторинга. Рассматриваются разные виды проверок. Обсуждаются шаблоны проверок. В заключение рассказывается об элементах данных, о выполнении веб-мониторинга.
Лекция 10. Инфраструктура электронной почты
Вы узнаете, что такое электронная почта, познакомитесь с основными понятиями. Затем рассматривается процесс доставки и выдачи почты. Обсуждается использование протоколов SMTP, POP3 и IMAP. Разбирается применение SMTP-сервера postfix, IMAP-сервера Dovecot. Рассказывается о том, как ходят письма по сети и что такое MX-записи. Наконец, обсуждается защита от спама, разбираются SPF-записи, DKIM и Spamassassin.
Лекция 11. Распределение ресурсов системы
Лекция посвящена продвинутым вопросам администрирования Linux. Сначала вы узнаете, как управлять параметрами ядра ОС. Затем рассматриваются модули ядра, как ими управлять. Обсуждается выделение ресурсов приложения. Далее рассказывается о планировщике задач, об алгоритмах шедулинга, о приоритетах процессов. Разбирается шедулер CFS, политики шедулинга. Вы узнаете, что такое NUMA и как с ней работать. Познакомитесь с планировщиками ввода/вывода. Далее рассказывается о контрольных группах, об управляемых ресурсах, об управлении контрольными группами и лимитами ввода/вывода.
Плейлист всех лекций находится по ссылке. Напомним, что актуальные лекции и мастер-классы о программировании от наших IT-специалистов в проектах Технопарк, Техносфера и Технотрек по-прежнему публикуются на канале Технострим.
Другие курсы Технотрека на Хабре:
Информацию обо всех наших образовательных проектах вы можете найти в недавней статье.
Источник
Средства системного администратора Linux
Средства системного администратора Linux
Совсем недавно (5-8 лет назад) системный администратор Linux был ограничен в средствах администрирования и автоматизации. Где-то можно было обойтись самописными скриптами на bash, Python, Perl, а где-то уже требовалось решение уровня энтерпрайз от таких гигантов, как IBM, Oracle или RedHat.
С развитием Open Source стала развиваться и автоматизация в администрировании. На замену самописным скриптам и программам пришли готовые решения. Эти средства появились не на пустом месте. Это были решения по автоматизации существующих задач любого системного администратора. Зачастую это решения, развиваемые по принципу KISS (акроним для «Keep it simple, stupid»), которые получали большие перспективы развития и распространения.
Конечно, лет 5-10 назад средства централизованного администрирования в Windows были развиты лучше, чем в Linux. Это было небезосновательно, т.к. Windows был широко распространён как среди домашних пользователей, так и в офисной/серверной среде. Microsoft, похоже, не предполагала что когда-то будет соперничать с Linux в серверном сегменте. Но не будем здесь углубляться в эти застойные времена для Microsoft, когда главой корпорации был Стив Балмер.
Администрирование
Одним из часто используемых средств администрирования мною и коллегами до появления ansible/puppet/chef был cssh (Cluster SSH).
Cluster SSH в работе
Работа с cssh была проста, не нужно было повторять одни и те же действия на каждом сервере по очереди, всё сводилось к мультиплексированию ввода в терминале на группу SSH подключений. У этого решения, конечно, были очевидные недостатки — необходимо было взаимодействие с администратором, его контроль. Сегодня средства автоматизации ушли намного дальше в своих возможностях и функциональности и зачастую расширяются плагинами.
13 сентября – 9 октября, Санкт-Петербург и онлайн, Беcплатно
Одно из наиболее распространённых средств автоматизации в администрировании — Ansible. Оно позволяет автоматизировать практически любые задачи системного администратора. Для работы достаточно SSH доступа к хостам. На сайте есть обзорная статья про Ansible, как его настроить и работать. Проект развивался независимо и вскоре был куплен компанией RedHat.
Мониторинг
После настройки сервера и введения его в эксплуатацию для обеспечения SLA и не только необходимо уделить внимание мониторингу.
Мы часто разделяем мониторинг на два отдельных компонента:
- мониторинг с оповещениями,
- статистика по показателям.
Нет необходимости настраивать предупреждения по всем показателям в системе, но собирать показатели системы для статистики и дальнейшего выявлений аномалий — полезно и удобно.
- Zabbix/Nagios/Icinga — используем для получения событий агентами и уведомлений по триггерам.
- Grafana + InfluxDB — в эту связку входят также Chronograf, Kapacitor, Telegraf.
-
- InfluxDB — time series база данных, принимает на вход данные с различных источников. Имеет широкий функционал возможностей для работы с данными.
- Chronograf — веб-панель с дашбордами и система управления Influxdb, Kapacitor.
- Kapacitor — обработчик событий.
- Telegraf — агент, отправляет данные с удалённых систем.
- Grafana — всем известная система построения дашбордов/графиков.
Также в категории мониторинга стоит обратить внимание на Netdata. Это одновременно и агент, и система мониторинга в реальном времени с дашбордом для просмотра статистики, предварительно настроенными графиками и триггерами. После установки остаётся настроить лишь способы оповещений с указанием канала передачи.
Netdata — это «швейцарский нож» в системе мониторинга, обладает широкой функциональностью, поддержкой модулей на Python, Go и не только.
Централизованное управление пакетами
В качестве централизованного управления набором ПО и его обновлениями мы использовали RedHat Spacewalk.
Интерфейс RedHat Spacewalk
С выходом RHEL 7 RedHat провели обновление, вследствие чего заменили Spacewalk на RedHat Satellite, который во многом напоминает Foreman. Для перехода на RedHat Satellite необходимо было бы перенастраивать уже работающие с RedHat Spacewalk системы, отлаживать новое решение (RedHat Satellite) и почти гарантированно бороться с новыми проблемами.
Зачастую в госструктурах и энтерпрайзе широко использовались решения RedHat. И тут со второго плана выходит компания Oracle, которая занималась развитием дистрибутивов Oracle Enterprise Linux/Oracle Unbreakable Enterprise Kernel.
Это продукты, основанные на кодовой базе RedHat Enterprise Linux, но с большим количеством доработок под собственные нужды, в которые том числе входило создание и поддержка среды для, наверное, основного продукта компании Oracle — Oracle Databases.
Но, в отличие от RedHat, дистрибутив которого скачать можно было только по подписке (лицензировании), не говоря уже об обновлениях, Oracle предоставляет это бесплатно. Именно Oracle взялся поддерживать и продолжать развитие Oracle Spacewalk, который вскоре был обновлён в Oracle Linux Manager.
Логирование
С увеличением количества обслуживаемых хостов возникает необходимость централизованного сбор логов. Для этих задач отлично подходят уже готовые Open Source решения, которые мы используем:
Агенты — rsyslog, syslog-ng (доступны в большинстве дистрибутивов)
При небольшом количестве администрируемых хостов можно обойтись syslog-ng как централизованным хранилищем для файлов логов, который будет принимать сообщения на 514 UDP порт. Он умеет раскладывать сообщения по директориям в зависимости от источника (FQDN/IP-адреса), сервиса, дате и прочее.
Резервное копирование
Для резервного копирования выбор достаточно прост. Где-то достаточно rsync + tar (синхронизации и сжатия), а где-то требуется Bacula/Bareos.
В резервном копировании есть достаточно хорошие проприетарные решения, например, «Veeam backup». Если вы используете виртуализацию VMWare, то здесь Veeam упрощает резервное копирование и предоставляет поддержку.
Также в своих решениях мы используем резервное копирование для /etc директории — etckeeper. Он позволяет автоматизировать сохранение содержимого каталога /etc в хранилище системы контроля версий (VCS), отслеживает, когда ваш пакетный менеджер сохраняет изменения в /etc при установке или обновлении пакетов.
Помещение /etc под контроль версий сейчас рассматривается как лучшая практика в индустрии. Преимуществом etckeeper является то, что он делает этот процесс безболезненным, насколько это возможно, и удобным. При наличии незакоммиченных изменений etckeeper будет ежедневно их сохранять, если это не отключено, и отправлять в централизованный репозиторий.
Иногда случается так, что подготовленный к установке/обновлению пакет программ может перезаписать существующие файлы в /etc , т.к. некоторые заказчики пользуются сторонними службами/пакетами. Etckeeper умеет фиксировать конфигурацию перед установкой пакетов и после, что значительно облегчает работу.
Постскриптум
Выбор любого инструмента зависит от поставленных задач. Если для своих задач вы не нашли готового решения, всегда можно взяться за его реализацию самостоятельно. Обязательно найдутся те, кто вас поддержит и присоединится к развитию вашего решения. Возможно, именно оно будет решать задачи лучше других.
Хинт для программистов: если зарегистрируетесь на соревнования Huawei Cup, то бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.
Перейти к регистрации
Источник