Supervisor centos 7 что это

Обновлено: 05.07.2024

Рассмотрим установку системы CentOS 7 и последующую настройку исходя из практики использования этой операционной системы. Данная система для меня основная для использования на серверах в продакшн. Стабильность работы гарантированна. Поддержка 10 лет.

Введение

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

Установка CentOS 7

Создания USB носителя для установки

Существует множество программ для записи iso образа на устройство. Например, у меня два варианта для создания носителя для установки:

Варианты установки

Рассмотрим два самых популярных варианта установки СentOS 7.

Образы iso CentOS 7

Все свежие образы можно скачать по ссылке Download CentOS. Существует два варианта:

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

Для сервера CentOS 7 система идеальна в плане обслуживания и стабильности работы.

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

Шаблоны

Шаблоны используются как правило для установки на VDS и предоставляются компаниями предоставляющие такие услуги. Удобно, но т ем не менее я пару раз попадал в дурацкие ситуации.

Вот моменты почему я советую использовать установку на VDS систем с iso образа:

Все компании предоставляющие услуги VDS могут предоставить возможность установки системы с ISO образа системы. При установке надо правильно указать сетевые параметры исходя из предоставленных сетевых параметров настроек выбранного тарифа!

Разбивка диска для установки

Вариантов разбивки диска для CentOS 7 может быть множество исходя из пожеланий и предпочтений. Например, мне нравиться придерживатся таких параметров:

Можно выносить логи и кэш в отдельные разделы, но это лишняя трата времени. Лучше всегда мониторить размер диска и в случае проблем решать их. Прежде всего, так и головная боль пропадает о том какой размер указывать разделам ( вариант с перераспределением очень сюрпризная тема) и больше времени потратится на правильную настройку сервера.

Тема организации SWAP на сервере очень важная и поэтому я описал все основные моменты использования в статье SWAP для Linux

Настройка CentOS 7

Информация об установленной системе

Узнать какая система установлена на сервере можно следующей командой:

Этой информации достаточно для понимания с какой системой предстоит работать.

Отключение SELinux

Отключаем SELinux. Его использование и настройка в системе CentOS 7 отдельный разговор.

Перезагрузим для применения изменений. После перезагрузки проверяем статус:

Надо иметь четкое понимание что SELinux система требующая хорошего понимания в том как она работает и как настраивать. Надо или отключить сразу или потратить время на изучение как она работает.

Добавление репозиториев

Для инсталляции различного софта необходимо подключить репозитории в CentOS 7. Со временем пришло понимание того что относится к добавляемым репозиториям надо очень внимательно, чтобы в последствии не возникало проблем при обслуживании.

Всегда подключаю самый популярный репозиторий Epel (Extra Packages for Enterprise Linux). Epel хранилище пакетов, созданное группой специалистов операционной системы Fedora. Пакеты из Epel репозитория никогда не конфликтуют и не переустанавливают базовые пакеты RHEL.

Для свежих версий PHP использую репозиторий Remi. Расскажу про это в статье посещенной серверу LEMP.

Старюсь подключать репозитории которые поддерживают сами разработчики программ. Например, такие как Nginx, Zabbix, MariaDB.

Обновление CentOS 7

Обновление системы очень важный момент и следует относится к нему очень внимательно. Всегда проще найти проблему когда проходит немного обновлений.

Прежде всего, всегда перед обновлениями делайте резервные копии!

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

Автоматическое обновление системы

Для безопасности сервера его необходимо своевременно обновлять. Вариантов обновления CentOS 7 несколько и это тема отдельного длинного разговора.

При моих пожеланиях мне подойдёт утилита yum-cron. Ставится она из базового репозитория командой:

После установки создается автоматическое задание на выполнение утилиты в /etc/cron.daily и /etc/cron.hourly.

По-умолчанию, утилита скачивает найденные обновления, но не устанавливает их. Администратору на локальный почтовый ящик root отправляется уведомление об обновлениях.

Конфигурационный файл настройки yum-cron находятся по адресу /etc/yum/yum-cron.conf.

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

В результате мои настройки примут следующий вид:

После внесения изменений настройки не забываем перезапустить службу.

Популярные и полезные утилиты

Установим в начале основные популярные утилиты которые обычно требуются в работе.

В среде многих выделенных серверов часто встречается ряд программ, которые должны работать постоянно, будь то небольшие сценарии оболочки, приложения Node.js, некоторые объемные пакеты.

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

Supervisor – это менеджер процессов, который существенно упрощает управление долго работающими программами, предоставляя простой и понятный интерфейс.

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

Установка Supervisor

Процесс установки Supervisor в системы Ubuntu и Debian предельно прост, поскольку предварительно собранные пакеты можно найти в репозиториях обеих операционных систем.

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

apt-get install supervisor

После выполнения этой команды демон Supervisor будет уже запущен, поскольку предварительно собранные пакеты поставляются с init-скриптом (благодаря чему Supervisor будет перезапускаться при каждой перезагрузке системы). Чтобы убедиться, что все работает должным образом, наберите:

service supervisor restart

Итак, теперь Supervisor установлен; попробуйте добавить в него некоторые программы.

Настройка Supervisor

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

Примечание: все программы, запущенные через Supervisor, должны работать в режиме non-daemon (который также называется приоритетным режимом). В противном случае Supervisor не сможет определить статус программы. Чтобы включить данный режим, обратитесь к документации и мануалам необходимых программ.

Для примера предположим, что на сервере есть скрипт оболочки, который должен работать постоянно; он находится в /usr/local/bin/long.sh и выглядит так:

Конечно, в практическом смысле, этот сценарий явно бессмысленный, но зато он позволит продемонстрировать основы настройки Supervisor.

Конфигурационные файлы Supervisor находятся в каталоге /etc/supervisor/conf.d (как правило, по файлу с расширением .conf на каждую программу). Простая конфигурация для скрипта, сохраненного в /etc/supervisor/conf.d/long_script.conf, будет иметь такой вид:

[program:long_script] command=/usr/local/bin/long.sh
autostart=true
autorestart=true
stderr_logfile=/var/log/long.err.log
stdout_logfile=/var/log/long.out.log

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

Конфигурация начинается с определения программы и полного пути к ней.

Эти строки определяют базовое автоматическое поведение скрипта в определенных условиях. Опция autostart запускает программу при загрузке системы; значение false заставит включать программу вручную. Опция autorestart определяет, как Supervisor будет управлять программой в случае ее отключения, и имеет три опции:

  • false – Supervisor никогда не будет перезапускать программу после завершения ее работы;
  • true – Supervisor будет всегда перезапускать программу после завершения работы;
  • unexpected – Supervisor будет перезапускать программу только в случае, если она завершила работу из-за возникновения неожиданного кода ошибки (любой стандартный код, кроме 0 и 2).

Последние две строки определяют местонахождение двух основных лог-файлов программы. В соответствии с именами опций, stdout и stderr задают расположение файлов stdout_logfile и stderr_logfile.

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

Только что созданная конфигурация – это минимальный шаблон для внесения программы в Supervisor. В документации проекта можно найти множество дополнительных опций конфигурации для тонкой настройки.

Создав конфигурационный файл, нужно известить Supervisor о появлении новой программы; для этого используется команда supervisorctl. Сначала Supervisor должен просмотреть каталог /etc/supervisor/conf.d на наличие новых или измененных программ:

Затем можно активировать новые конфигурации:

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

На данный момент программа должна быть запущена; это можно проверить при помощи лог-файла:

$ tail /var/log/long.out.log
Sat Jul 20 22:21:22 UTC 2013
Sat Jul 20 22:21:23 UTC 2013
Sat Jul 20 22:21:24 UTC 2013
Sat Jul 20 22:21:25 UTC 2013
Sat Jul 20 22:21:26 UTC 2013
Sat Jul 20 22:21:27 UTC 2013
Sat Jul 20 22:21:28 UTC 2013
Sat Jul 20 22:21:29 UTC 2013
Sat Jul 20 22:21:30 UTC 2013
Sat Jul 20 22:21:31 UTC 2013

Управление программами

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

Чтобы включить интерактивный режим, запустите supervisorctl без аргументов:

$ supervisorctl
long_script RUNNING pid 12614, uptime 1:49:37
supervisor>

После запуска supervisorctl выведет статус и аптайм всех программ, а также откроет командную строку.

Опция help выведет на экран все доступные команды:

supervisor> help
default commands (type help ):
=====================================
add clear fg open quit remove restart start stop update
avail exit maintail pid reload reread shutdown status tail version

Для начала попробуйте запустить, остановить и перезапустить программу при помощи следующих команд (команды start, stop, restart + имя программы):

supervisor> stop long_script
long_script: stopped
supervisor> start long_script
long_script: started
supervisor> restart long_script
long_script: stopped
long_script: started

Команда tail выведет самые последние записи в логах stdout и stderr для заданной программы:

supervisor> tail long_script
Sun Jul 21 00:36:10 UTC 2013
Sun Jul 21 00:36:11 UTC 2013
Sun Jul 21 00:36:12 UTC 2013
Sun Jul 21 00:36:13 UTC 2013
Sun Jul 21 00:36:14 UTC 2013
Sun Jul 21 00:36:15 UTC 2013
Sun Jul 21 00:36:17 UTC 2013
supervisor> tail long_script stderr
error!
error!
error!
error!
error!
error!
error!

Команда status покажет текущее состояние выполнения программы после внесения каких-либо изменений:

supervisor> status
long_script STOPPED Jul 21 01:07 AM

Завершив работу с supervisorctl, закройте интерфейс при помощи комбинации Ctrl-C или команды quit:

Теперь вы знакомы с основами использования Supervisor. Более подробную информацию можно найти в документации проекта. Если у вас есть какие-либо вопросы или дополнения, пожалуйста, оставьте комментарий под этим руководством.

Все началось с компании cAos Foundation, занимавшейся разработкой независимых дистрибутивов Linux на основе RPM.

20 марта 2005 г. cAos объявляет о реорганизации, в результате которой CentOS становится независимым проектом. Летом 2006 г. к проекту CentOS присоединяется команда разработчиков другого серверного дистрибутива, также основанного на RHEL — Tao Linux.

В июле 2010 г. CentOS становится лидером по популярности среди операционных систем для веб-серверов и с тех пор стабильно держится среди числа ведущих решений этого рынка. В январе 2014 г. права на CentOS официально перешли к компании Red Hat, ранее объявившей о намерении спонсировать и развивать проект.

Версии CentOS и их ключевые особенности

Особенности версии CentOS 6

Шестая версия операционной системы CentOS изначально поставляется с версией ядра 2.6. CentOS 6 имеет ряд особенностей, отличающих его от предыдущих версий. В частности, была добавлена улучшенная обработка SCSI, позволяющая реагировать на определенные команды устройства. Кроме того, модуль многоуровневого коммутатора OpenvSwitch в CentOS 6 стал доступен на уровне ядра.

Важное нововведение, касающееся систем виртуализации — в CentOS 6 добавлены новые демоны Hyper-V для улучшения работы CentOS на хостах Microsoft Hyper-V. В CentOS 6 полностью поддерживаются серверные программные комплексы балансировки нагрузки Keepalived и Haproxy. Также стоит отметить добавление поддержки серверной платформы Intel Wildcat.

Поддержка CentOS 6, по заявлению разработчиков, будет осуществляться до ноября 2020 г.

Особенности версии CentOS 7

Седьмая версия CentOS разработана на ядре Linux версии 3.10.

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

Согласно заявлению разработчиков, CentOS 7 будет поддерживать обновления до июля 2024 г.

Особенности версии CentOS 8

24 сентября 2019 г. вышла очередная версия операционной системы — CentOS 8.

Прежде всего, стоит отметить, что CentOS 8 построена на версии ядра Linux 4.18. Да, это далеко не самое новое ядро, но это скорее говорит о привычной стабильности CentOS, нежели о его недостатках.

К важным изменениям относится замена пакетного менеджера yum на dnf (Dandified YUM), который лишен недостатков своего предшественника. Важным новшеством для администраторов серверов является то, что инфраструктура nftables пришла на смену iptables. Демон firewalld теперь по умолчанию использует именно её. В добавление к этому, был обновлён стек TCP, поддерживающий улучшенную скорость обслуживания соединений.

2.jpg

Как установить CentOS

Алгоритм установки CentOS на физическую машину рассмотрим на примере CentOS Linux 8.

Этап 1. Загрузка образа операционной системы с официального сайта.

Этап 2. Создание загрузочного USB-накопителя.

Для записи образа операционной системы на загрузочный USB-накопитель можно воспользоваться сторонними программами типа Rufus для Windows или WOEUSB для Linux. Когда загрузочный USB накопитель будет готов, необходимо настроить BIOS для загрузки с устройства USB.

Этап 3. Установка операционной системы.

Загрузка сервера выполняется с установочного носителя CentOS 8. На экране приветствия необходимо выбрать первый пункт — «Install CentOS Linux 8». Процесс установки начнется с загрузки установочных компонентов на нашу машину. Спустя несколько секунд появится графический интерфейс установщика. Далее будет предложен выбор языка ОС.

Этап 4. Основные настройки

В следующем окне будет предложено выбрать настройки процесса установки. Здесь интерес представляют, прежде всего, два раздела — «Software Selection» и «Installation Destination». Начнем на «Software Selection».

Этап 5. Выбор компонентов установки.

В «Software Selection» будет предложено выбрать компоненты для установки и варианты устанавливаемой среды. Если оставить настройки по умолчанию, то будет установлен сервер с графической оболочкой и стандартным набором пакетов.

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

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

Этап 6. Подготовка диска.

Во втором разделе основных настроек («Installation Destination») необходимо указать настройки разбиения диска на разделы, которые необходимы для использования операционной системой. Лучше сделать это самостоятельно, но разработчиками предусмотрен и автоматический режим.

3.jpg

Этап 7. Настройка сети

Для задания сетевых настроек следует перейти в раздел «Network & Host Name». В правой верхней части окна необходимо установить переключатель сетевого соединения в положение «On». Далее можно настроить параметры соединения вручную, либо если наша машина физически подключена к сети и имеет доступ к DHCP серверу, установщик произведет настройку самостоятельно. Остается заполнить поле «Host name» в левом нижнем углу и нажать «Apply», а затем «Done».

На этом настройка установщика завершена. Для начала установки следует нажать на «Begin installation».

Этап 8. Завершение установки

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

Сравнение CentOS с другими операционными системами

На сегодняшний день на рынке серверного программного обеспечения в качестве наиболее популярных операционных систем используются CentOS, Ubuntu и Debian.

Сравнение CentOS и Ubuntu

Принципиальное отличие между этими двумя операционными системами заключается в том, что Ubuntu основывается на архитектуре Debian. В отличие от него, CentOS наследует архитектуру Red Hat Enterprise Linux.

Хотя Ubuntu обновляется чаще, чем CentOS, из этого вовсе не следует, что CentOS менее безопасен. Принципиально более длительные интервалы выхода обновлений делают CentOS оправдано более привлекательным с точки зрения стабильности.

CentOS обеспечивает наибольшую совместимость с различными панелями управления веб-хостингом, такими как cPanel, Webmin и DIrectAdmin. Ubuntu не поддерживает cPanel, но имеет несколько альтернатив, таких как Webmin/Virtualmin и VestaCP.

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

Статистика Amazon по состоянию на конец 2019 г. говорит о практически двукратном превосходстве Ubuntu среди операционных систем, используемых на AWS. Возможно, против CentOS здесь играет несколько менее удобное использование системы конечным пользователем.

Сравнение CentOS и Debian

Debian — один из первых дистрибутивов Linux, на сегодняшний день занимающий порядка 17% рынка веб-серверов Linux. Как и в случае сравнения с Ubuntu, которая, по сути, является ответвлением Debian, принципиальное отличие CentOS от Debian заключается в особенностях архитектуры исходного кода.

Также стоит отметить, что Debian поддерживается и развивается за счет обширного сообщества, в то время как CentOS все же имеет корпоративно-ориентированную коммерческую поддержку Red Hat, что в значительной степени делает CentOS более привлекательным в корпоративной среде.

Жизненный цикл основных версий CentOS значительно превышает аналогичный показатель Debian.

Что касается выхода обновлений, то здесь Debian придерживается строгого принципа и выпускает релизы один раз в два года. Обновления CentOS выходят несколько чаще, при этом сильно зависимы от Red Hat.

Положительным моментом длительных графиков выхода обновлений является более продолжительное время тестирования. Это дает Debian преимущество в плане стабильности по сравнению с решениями конкурентов и в частности по отношению к CentOS.

Debian однозначно превосходит CentOS по объему репозиториев, но CentOS здесь не выглядит значительно уступающим, поскольку все чаще не испытывает недостатков с требуемыми в процессе работы компонентами, а случае необходимости его арсенал может быть расширен за счет сторонних репозиториев.

Сегодня мы анонсируем доступность релиза операционной системы CentOS 7 в облаке InfoboxCloud, основанного на пакетной базе Red Hat Enterprise Linux 7 и полностью совместимого с ним. В конце поста ссылка на бесплатное тестирование в облаке.

CentOS 7 — первый релиз ОС, после перехода команды CentOS в RedHat. Данная ОС стабильна и готова к корпоративному использованию.

Мы начинаем обзор новой ОС, состоящий из серии теоретических и практических статей. В первой главе обзора будет рассказано о поддержке контейнеров Linux в CentOS 7.

InfoboxCloud

В облаке по умолчанию устанавливается минимальная версия CentOS 7 для обеспечения максимальной безопасности через снижение поверхности атаки. Все необходимые компоненты ОС устанавливаются из стандартных репозиториев.

Ключевые изменения CentOS 7
  • Поддержка контейнеров Linux (включая поддержку Docker). Контейнеры расширяют возможности по разработке, доставке и изоляции софта для тестовых и производственных задач. Так же контейнеризация увеличивает безопасность ПО, снижая поверхность атаки;
  • Интеграция Active Directory / Identity Management (IdM)
  • Использование systemd, стандарта управления процессами, сервисами, безопасностью и другими ресурсами;
  • Встроенные профили и инструменты для оптимизации производительности и простого масштабирования;
  • Унифицированные инструменты управления и фреймворк управления OpenLMI, являющийся фактически стандартом индустрии для администрирования и настройки системы;
  • Техническая предварительная версия технологии установки обновлений ядра без перезагрузки kpatch;
Поддержка контейнеров Linux

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

  • Сохраняя возможность управления ядром ОС появляется возможность изоляции приложений друг от друга. В случае сбоя одного приложения система останется стабильной.
  • Разработчики хотят предоставлять программное обеспечение, которое легко развертывать, обновлять и масштабировать. Использование контейнеров позволяет иметь больший контроль над средой исполнения программного обеспечения. Появляется возможность создания портативного образа ПО и окружения, который легко переносить между средами исполнения.
  • Управление ресурсами;
  • Процесс изоляции;
  • Безопасность;
  • Инструменты управления из командной строки.

Изоляция процессов, сердце архитектуры контейнеров Linux, представлена пространствами имен ядра (kernel namespaces) CentOS. Сейчас Linux реализовывает шесть различных типов пространств имен. Цель каждого — обернуть каждый глобальный ресурс системы в абстракции. Каждый ресурс предоставляется в качестве изолированного инстанса для процесса внутри пространства имен, что обеспечивает изоляцию — иллюзию того, что группа процессов одинока в системе. Пространства имен необходимы, потому что ядро Linux ничего не знает о контейнерах. Задача пространства имен — научить ядро понятию изолированного окружения.

Команда RedHat (вы ведь знаете, кто все это разработал на самом деле) начала работать над Docker начиная с версии 0.7. Вкладом Red Hat был новый драйвер хранения, который позволил Docker запуститься на Cent OS 7. В течении дальнейшего сотрудничества и вклада Red Hat в Docker был разработан новый встроенный драйвер исполнения, основанный на libcontainer, разработанный для доступа к API ядра контейнера напрямую, без сторонних зависимостей. Этот нативный набор инструментов может управлять возможностями ядра системы, такими как cgroups, пространства имен, сетевые интерфейсы, файрвол и другие особенности ядра. Благодаря Red Hat в Cent OS 7 Docker сейчас готов для корпоративного применения.

Таким образом, контейнеры Linux — важная open source технология для упаковки и доставки приложений, сочетая легковесную изоляцию и гибкость методов развертывания, основанных на образах.

Читайте также: