Что нужно знать сисадмину linux

Блог начинающего сисадмина

Здесь уже не будет ничего интересного, лучше загляните сюда: https://medium.com/@Amet13

воскресенье, 4 марта 2018 г.

Что должен знать новичок для работы системным администратором Linux

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

Например при переходе с Debian-based дистрибутивов на RHEL-based может быть непривычно то, что cron пишет в отдельный лог /var/log/cron , а не в /var/log/syslog , а для определения версии дистрибутива вместо /etc/lsb-release используется файл /etc/redhat-release . Или например при переходе Ubuntu с системы инициализации Upstart на Systemd могут возникнуть некоторые сложности при управлении сервисами, хоть Ubuntu и сохранили обратную совместимость со скриптами Upstart.

Для администрирования сети необходимы базовые понятия работы сетей, как настраивается сетевое соединение в Linux, что такое модель OSI, как работает IP-адресация,в чем отличия протоколов TCP, UDP, ICMP и прочих,как работают утилиты ping, traceroute, как устроен интернет, что такое динамическая маршрутизация и для чего нужен DNS.

Для того чтобы вовремя реагировать на инциденты, возникающие в серверной инфраструктуре необходимо иметь систему мониторинга. Пример таких систем Cacti, Nagios, Munin, Zabbix и многие другие. Мониторинг позволит не только в кратчайшие сроки среагировать на возникшую проблему, но и хранить историю инцидентов, анализировать периодичность возникновения проблем, строить графики для более удобного восприятия человеком.

Для решения возникающих инцидентов необходимо обладать навыками траблшутинга.
В первую очередь важно уметь работать с логами, фильтровать нужную информацию из логов, для этого часто используются утилиты cat , tail , awk , cut , grep , sort , wc и прочие.
Пример подсчета количества ошибок в логе Nginx:
# awk ‘‘ /var/log/nginx/access.log | grep «500» -c
66192

Также необходимо позаботиться о ротации логов, для уменьшения занятого пространства старыми логами.
Такие инструменты как lsof и strace помогут понять какие файлы и соединения использует работающий процесс, а также какие системные вызовы он совершает.
tcpdump , tshark , iperf , mitmproxy , nmap и прочие инструменты помогут для анализа работы сбоев в сети.

Системные администраторы делятся на два вида, те кто еще не делает резервные копии и те кто уже делает их. Резервные копии нужны для быстрого восстановления потерянной информации.
Два параметра RPO (Recovery Point Objective) и RTO (Recovery Time Objective) определяют время актуальности резервных копий и время необходимое на восстановление копий соответственно.
Необходимо понимать отличия полного резервного копирования, при котором каждый раз копируются все файлы, от дифференциального, и при котором копируются только измененные файлы, и инкрементального, при котором копируются только те файлы, которые изменились с последнего полного или добавочного резервного копирования.
Рекомендуется хранить резервные копии в нескольких местах, в той же стойке где работает сервер, в отдельной стойке от сервера и в другом ЦОДе.
Важно также проверять консистентность резервных копий, обычно для этого используют тестовые стенды.
Существует множество инструментов для создания резервных копий, среди которых можно выделить Bareos, duplicity, rsync. Множество системных администраторов используют свои инструменты в виде скриптов для созданий резервных копий на основе rsync , tar , gzip .

Читайте также:  Драйвер для canon mf4320 4350 windows 10

Администратор должен понимать что такое RAID, LVM и как они работают, даже если ему не приходится использовать подобное. Рано или поздно он скорее всего столкнется с RAID при работе с физическими серверами и важно понимать как он работает, так как при неверной конфигурации и замене диска в RAID-массиве возможна полная потеря данных. Также при работе с физическими серверами будет полезно понимание работы IPMI, IP KVM.

Системный администратор должен знать хотя бы один из скриптовых языков программирования (Shell/BASH, Python, Perl, Ruby). Хороший системный администратор не делает одни и те же вещи больше трех раз, скорее всего он уже автоматизировал рутинную работу скриптом.

Отличное знание повседневных инструментов системного администратора значительно упрощает жизнь, единожды настроив конфигурационный файл текстового редактора vim и выучив все внутренние команды текстового редактора позволяет ускорить работу в значительной степени. Использование алиасов, для часто повторяющихся команд, например git add , git commit можно легко заменить на ga и gc .

При управлении парком серверов значительно упрощают жизнь системы управления конфигурациями, такие как Chef, Ansible, SaltStack, Puppet и другие.
Подобные системы позволяют централизованно управлять конфигурациями операционных систем и сервисов установленных на разных серверах. Для этого используются различные конфигурационные файлы именуемые в Puppet cookbook, в Chef — рецептами, а Ansible — playbook. Как правило, подобные конфигурационные файлы представляют собой список команд описанных в синтаксисе YAML или на прочих декларативных языках.
Большое количество модулей позволяет управлять практически любым процессом на сервере, а некоторые системы, такие как Ansible, позволяют управлять удаленными серверами без запуска агентов, исключительно с использованием SSH-соединения.

Для хранения данных приложений используются различные системы управления базами данных. Важно понимать, в чем состоит отличие MySQL от его форков MariaDB и Percona Server. Когда стоит использовать для проекта MySQL, а когда PostgreSQL. Чем отличаются реляционные базы данных от документо-ориентированных (MongoDB, CouchDB), key-value хранилищ (Redis, MemcacheDB) и прочих. Базовые знания SQL-запросов также не помешают.

Рано или поздно системный администратор сталкивается с протоколом LDAP (Lightweight Directory Access Protocol). LDAP используется для централизованного хранения данных о пользователях, таким образом возможно синхронизировать все сервера для поиска информации о пользователях из единого каталога LDAP.

Системному администратору хостинга необходимо понимание работы веб-серверов (Apache, Nginx), режимах работы PHP, оптимизации работы MySQL, дебаге работы скриптов. Также стоит узнать как устроены современные панели управления хостингом (Cpanel, Plesk, Webmin и прочие).

Виртуализация в последние годы все больше и больше используется на серверах. Администратор должен понимать различия в системах виртуализации, чем отличается эмуляция оборудования (QEMU) от полной виртуализации (KVM, Hyper-V), паравиртуализации (Xen) и контейнерной виртуализации (LXC, OpenVZ).

Системный администратор должен обезопасить свою серверную инфраструктуру, для этого необходимо знание системных инструментов обеспечения безопасности (SELinux, AppArmor), фаерволов (Iptables, firewalld, ufw), необходимо отключить, или удалить неиспользуемые сервисы и настроить фаерволл так, чтобы доступ в интернет был только у нужных портов. Необходимо проводить периодические пентестинги для проверки уязвимостей в инфраструктуре, обезопаситься от атак на отказ. Желательно отказаться от паролей в пользу ключей, так как при современных мощностях подобрать пароль к системе стало значительно легче, в случае с ключем подбор займет много лет.

Также важно уметь документировать сетевую и серверную инфраструктуру, проводить периодическую инвентаризацию, вести учет событий. Желательно использовать системы управления проектами, такие как Redmine или Jira, это упростит взаимодействие с пользователями и позволит хранить список задач в структурированном виде.

Немаловажно для системного администратора следить за собственным временем и не перетруждаться, для этого необходимо правильно выбрать средства получения уведомлений, как не отвлекаться на мелкие инциденты и прочее. В книге «Тайм-менеджмент для системных администраторов» Томаса Лимончелли (ISBN 5-93286-090-1) описаны все эти моменты, рекомендуется к прочтению каждому системному администратору.

Читайте также:  Dell d430 linux drivers

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

Источник

25 вопросов задаваемых на собеседовании системным администраторам Linux

Вопрос:2 Как узнать когда файловая система проверялась последний раз?

Вопрос:3 Как изменить срок действия пароля пользователя без изменения самого пароля?

Вопрос:4 Как заставить fsck проверить файловую систему ОС при следующей перезагрузке?

Вопрос:5 Каким инструментом анализируются дампы краха системы или файл vmcore в ОС CentOS 7 & RHEL 7?

Вопрос:6 Как установить все патчи за исключением патчей ядра в CentOS и RHEL?

Параметр ‘–exclude=kernel*’ команды yum позволяет установить все патчи кроме предназначенных для ядра. Например так:
# yum update –exclude=kernel*

Если добавить следующую строку в файл ‘/etc/yum.conf’ мы предотвратим любые обновления ядра навсегда:
exclude=kernel*

Вопрос:7 Как проверить, что вы работаете на физическом или виртуальном сервере?

Вопрос:8 Что такое automounter и для чего он служит?

Вопрос:9 Как принудить пользователя изменить пароль при регистрации?

Вопрос:10 Как узнать как завершилась последняя команда — успешно или нет?

Вопрос:11 Как узнать, установлен ли конкретный rpm-пакет?

]# rpm -q postfix –last
postfix-2.10.1-6.el7.x86_64 Saturday 27 February 2016 11:56:43 PM EST
[root@cloud

Для этих же целей мы можем воспользоваться командой yum:
[root@cloud

]# yum history package postfix

Вопрос:12 Как войти в режим одиночного пользователя (single user mode) в RHEL 7?

Вопрос:13 Какая команда позволяет изменить имя хоста навсегда в CentOS 7 & RHEL 7?

Команда ‘hostnamectl’ используется для задания или изменения имени хоста. Например, так:
# hostnamectl set-hostname «New_HostName»

Кроме hostnamectl могут быть использованы команда ‘nmtui’& ‘nmcli’, которые тоже могут изменять имя хоста в CentOS 7 и RHEL 7.

Вопрос:14 Как включить политики паролей (password policies) в Linux?

Вопрос:15 Как узнать, какие модуля ядра загружены в ОС Linux?

Вопрос:16 Какой командой можно проверить состояние ввода-вывода в Linux?

Вопрос:17 Каково назначение файлов ‘/etc/lvm/backup’ и ‘/etc/lvm/archive’?

Вопрос:18 Как просмотреть таблицу маршрутизации в Linux?

Вопрос:19 Что происходит на фоне когда вы заходите по ssh на сервер Linux?

/.ssh/known_hosts’ мы получим подсказку ssh.

Вопрос:20 Как изменить порт по-умолчанию для SSH на сервере Linux?

Вопрос:21 Как увидеть временные метки dmesg в RHEL7?

Вопрос:22 Как узнать модель физического сервера из командной строки?

С помощью команды dmidecode можно узнать производителя и модель физического сервера. Например:
# dmidecode -t system

Handle 0x0011, DMI type 1, 27 bytes
System Information
Manufacturer: HP
Product Name: ProLiant DL580 Gen8
Version: P79
Serial Number: CKX42926E0
UUID: 97387735-1541-238A-1B33-533850564430
Wake-up Type: Power Switch
SKU Number: 728551-B21
Family: ProLiant

Вопрос:23 Как узнать версию BIOS сервера из командной строки?

С помощью команды dmidecode можно получить версию bios:
# dmidecode -t bios
# dmidecode 2.12
SMBIOS 2.8 present.

Handle 0x0010, DMI type 0, 24 bytes
BIOS Information
Vendor: HP
Version: P79
Release Date: 04/01/2014
Address: 0xF0000
Runtime Size: 64 kB
ROM Size: 16384 kB

Вопрос:24 Как расширить существующую группу томов lvm?

Вопрос:25 Как посмотреть номер WWN на карте HBA на сервере Linux?

Существует как минимум, два способа с помощью которых можно узнать номер WWN для карты HBA.

Первый, с использованием команды systool. Например так:
# systool -c fc_host -v | grep «port_name»

Второй способ — просмотреть содержимое файла классов в файловой системе sys:
# cat /sys/class/fc_host/host*/port_name
0x7001639028cbeca0
0x7001639028cbefa2
0x7001639028cbf5d8
0x7001639028cbf6da

Читайте также:  Linux нет папки etc

Источник

Профессия «Администратор Linux» — от скилов до зарплаты

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

Рекомендуем обрать внимание на подборку курсов по администрированию Linux

Востребованность профессии

С ростом технологизации и компьютеризации коммерческих и некоммерческих компаний, появилась потребность в квалифицированных кадрах, способных налаживать работу компьютеров и сетей. Сейчас профессия системного администратора Linux крайне востребована. Услугами таких специалистов пользуются IT-компании, коммерческие организации разных направлений деятельности, государственные предприятия. Админы нужны везде, где есть компьютеры, а компьютеры есть в каждой организации.

Обязанности администратора Linux

Основные задачи, которые решает администратор:

  • мониторинг и устранение ошибок системного программного обеспечения Linux, нужны знания и других ОС (Windows, Mac OS);
  • настройка и обеспечение безопасности компьютерной сети компании;
  • резервное копирование данных, восстановление информации, если та была утеряна;
  • техническая поддержка: помощь и поддержка пользователей, обучение по использованию программного обеспечения;
  • обслуживание офисной техники. Это не только компьютеры, но и оргтехника;
  • формирование отчетности о состоянии компьютерной сети и проделанной работе.

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

Требования, предъявляемые Linux-администратору

Чаще всего работодатели требуют:

  • доскональное знание принципов работы Linux;
  • навыки установки и настройки серверного ПО;
  • знания распространенных программных продуктов, например, 1C;
  • знание методов автоматизации с использованием скриптовых языков;
  • понимание работы аппаратной части компьютеров с возможностью диагностики и устранения неполадок;
  • опыт наладки процессов для удаленной работы.

Вашим преимуществом в борьбе за место администратора Linux будут:

  • технический английский язык;
  • языки программирования и серверные языки: PHP, MySQL;
  • знания серверного программного обеспечения: Nginx, HAProxy, ELK.

Уникальное предложение — -50% на ВСЕ курсы Skillbox. Получите современную онлайн-профессию, раскройте свой потенциал.

Зарплата системного администратора Linux

По данным портала вакансий Trud.com, профессия приобретает все большую востребованность от года к году. Вместе с тем растут и зарплаты, и сейчас средний доход администраторов Linux – 90 000 рублей:

Портал hh.ru также предлагает статистику с ростом зарплат. Администраторов требуется много, и у них хороший доход: от 60 до 270 тыс. рублей:

Распределение по регионам Статистика зарплат и количества вакансий

Карьерные перспективы

Системный администратор – это «многорукий» специалист. Поэтому, у него помимо вертикального роста по карьер, есть и горизонтальный (переход в другое, более продвинутое направление).

Вертикальный рост

Помощник сисадмина → Специалист техподдержки → Системный администратор → Старший системный администратор → IT-директор.

Горизонтальная карьера

Здесь специалиста обычно больше интересует техническая сторона работы. Поэтому он уходит в аппаратную часть и становится архитектором систем высоких нагрузок.

Как освоить профессию

Как обычно есть два пути. Первый – пойти учиться в вуз и получать образование 4-5 лет. Второй – пойти на курсы.

Мы рекомендуем именно второй вариант. Этому есть три причины:

  1. Так быстрее . Обучение занимает от 3 до 12 месяцев. Проходит дистанционно онлайн.
  2. Так эффективнее . Вы получите сугубо полезные знания без углубления в бессмысленную теорию и историю программного обеспечения.
  3. Так дешевле . Курсы стоят меньше, чем один год обучения в вузе.

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

Вот списки курсов, чтобы стать хорошим системным администратором Linux:

А здесь собраны программы для освоения более сложной профессии архитектора систем высоких нагрузок:

Стремление к новым знаниям обязательно принесет пользу. Выбирайте свою программу и осваивайте полезные навыки.

Не знаете с чего начать?

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

Источник

Оцените статью