linux supervisor что это

Supervisord — инструмент для контроля запущенных процессов в системе

Администрирование › Supervisord — инструмент для контроля запущенных процессов в системе

Для запуска программ с определенными параметрами и отслеживания их состояния. Запуск процессов supervisord производит от своего имени, как под процессы, поэтому контроль остается за визором. Supervisorctl предоставляет системный- и веб-интерфейсы для мониторинга и управления процессами. Вы можете предоставить пользователям доступ на определенные программы, а они в свою очередь смогут видеть состояние этих программ и совершать действия над ними (start, stop, restart). Также имеется XML-RPC интерфейс, которым вы можете пользоваться для написания своих расширений и приложений, которым нужен доступ к Supervisord.

Установка

sudo apt-get install supervisor

Можно установить еще и так, самая свежая версия из питоновского установщика, но для этого нужно еще тянуть кучу пакетов для питона и компиляторов

Для запуска web интерфейса supervisorctl необходимо в файле /etc/supervisor/supervisord.conf проверить наличие секции:

Для работы через nginx c web версией можно написать прокси сервер:

после чего перезапускаем nginx с supervisor’ ом:

$sudo unlink /tmp/supervisor.sock

Далее из браузера заходим на http://sv.dev, и видим, что-то такое (если есть созданные задачи):
linux supervisor что это. Смотреть фото linux supervisor что это. Смотреть картинку linux supervisor что это. Картинка про linux supervisor что это. Фото linux supervisor что это

Создание задач для supervisor:

Наблюдения

Иногда при останове supervisor’а остается висеть на порту http сервера python — нужно найти кто висит

И грохнуть по pid процесс:

В случае появления нового типа задач для гирмана нужно перезапускать по одному воркеру (так мы отловим возможные ошибки и не будем нарушать общую работоспособность системы)

Источник

Установка и управление Supervisor на сервере Ubuntu и Debian

В среде многих выделенных серверов часто встречается ряд программ, которые должны работать постоянно, будь то небольшие сценарии оболочки, приложения 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 и выглядит так:

#!/bin/bash
while true
do
# Echo current date to stdout
echo `date`
# Echo ‘error!’ to stderr
echo ‘error!’ >&2
sleep 1
done
chmod +x /usr/local/bin/long.sh

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

[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 будет управлять программой в случае ее отключения, и имеет три опции:

Последние две строки определяют местонахождение двух основных лог-файлов программы. В соответствии с именами опций, 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. Более подробную информацию можно найти в документации проекта. Если у вас есть какие-либо вопросы или дополнения, пожалуйста, оставьте комментарий под этим руководством.

Источник

Русские Блоги

Установка и настройка Supervisor (инструмент управления процессами Linux / Unix)

Supervisor(http://supervisord.org/) Является ли клиент-серверная служба, разработанная в Python, инструмент управления процессами в системах Linux / Unix, и не поддерживает системы Windows. Он может легко контролировать, запускать, останавливать, перезапускать один илиболееПроцесс. Когда процесс неожиданно завершается, супервизор автоматически перезапустит его, когда обнаружит, что процесс мертв. Очень удобно выполнять функцию защиты пользовательских процессов без необходимости написания сценария оболочки для управления им.

1. Установите инструмент управления пакетами Python easy_install

2. Установите супервизор

После установки супервизора он будет сгенерирован Три исполнительные программы: supervisortd, supervisorctl, echo_supervisord_conf Соответственно Служба демона Supervisor (используется для получения команд управления процессами), клиент (используется для связи с демоном, отправки инструкций по процессу управления) и создания файла начальной конфигурации 。

3. Конфигурация

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

При запуске программы echo_supervisord_conf файл конфигурации инициализации супервизора может быть сгенерирован следующим образом:

4. Описание параметров файла конфигурации

Существует множество параметров конфигурации супервизора. Далее описывается часто используемая конфигурация параметров. Подробную конфигурацию и описание см. ВОфициальный сайт документаВведение.
Примечание. Начните с точки с запятой (;), чтобы указать, что строка закомментирована

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

5. Процесс управления конфигурацией

Ниже приведен пример настройки процесса Tomcat:

5. Запустите службу Supervisor

6. Управление пользовательскими процессами

6.1 Интерактивный терминал

После успешного запуска supervisord пользовательские процессы управляются через клиент supervisorctl: запуск, остановка и перезапуск. Выполнение команды supervisorctl войдет в интерактивный терминал клиента supervisor и выведет список всех процессов, которыми в данный момент управляют.

linux supervisor что это. Смотреть фото linux supervisor что это. Смотреть картинку linux supervisor что это. Картинка про linux supervisor что это. Фото linux supervisor что это

Введите справку, чтобы просмотреть список команд. Если вы хотите увидеть эффект команды, запустите «help command name», например: help stop. Остановить Tomcat означает остановить процесс Tomcat, остановить все означает остановить все процессы.

6.2 Bash Terminal

6.3 Веб-интерфейс управления

linux supervisor что это. Смотреть фото linux supervisor что это. Смотреть картинку linux supervisor что это. Картинка про linux supervisor что это. Фото linux supervisor что это
По соображениям безопасности конфигурация по умолчанию не открывает интерфейс веб-управления, вам необходимо изменить файл конфигурации supervisord.conf, чтобы открыть разрешения доступа http. Поместите следующую конфигурацию

7. Запустите службу Supervisor после загрузки

7.1 Настройка службы systemctl

7.1.1 Войдите в каталог / lib / systemd / system и создайте файл supervisor.service, содержимое которого показано ниже.

7.1.2 Установить загрузку

7.1.3 Изменить права доступа к файлу до 766

7.2 Настройка типа сервиса

Создайте файл /etc/rc.d/init.d/supervisor, содержимое файла выглядит следующим образом:

Измените права доступа к файлу на 755 и настройте загрузку:

Примечание. Измените путь файла конфигурации супервизора в сценарии к пути файла конфигурации супервизора.

Скрипт запуска для других дистрибутивов Linux:https://github.com/Supervisor/initscripts

Примечание. Supervisor может управлять только процессами, не являющимися демонами, а не процессами демонов.В противном случае он выдаст исключение слишком быстро (возможно, в журнале процесса). Tomcat в этом примере запускается демоном по умолчанию, поэтому мы переключились на catalina.sh run и запускаем его как процесс переднего плана.

В приложении: в операционной системе Centos установите его в режиме yum, используйте следующую команду.

Источник

Некоторые аспекты управления VDS-сервером под Linux

VDS (Virtual Dedicated Server) — услуга, в рамках которой пользователь получает виртуальный выделенный сервер с максимальными привилегиями. Это эмуляция реального физического сервера, у него есть рутовый доступ, возможность установки произвольных операционных систем и любого софта. При этом он обходится значительно дешевле аренды сопоставимого по мощности физического сервера.

На сервер можно поставить ОС со своего образа или воспользоваться готовым образом в панели управления.

linux supervisor что это. Смотреть фото linux supervisor что это. Смотреть картинку linux supervisor что это. Картинка про linux supervisor что это. Фото linux supervisor что это

Предположим, мы поставили Debian 10 и веб-сервер Nginx, который идёт в стандартном репозитории ( apt install nginx ). Давайте посмотрим, какие полезные утилиты и команды помогут в управлении сервером под Linux. Рассмотрим и отдельно Nginx, и сам VDS-сервер в целом.

Содержание

Или просто вводим IP-адрес сервера в браузере:

Если мы ещё не скопировали на сервер файлы своего сайта, то будет показана стандартная заглавная страница Nginx.

linux supervisor что это. Смотреть фото linux supervisor что это. Смотреть картинку linux supervisor что это. Картинка про linux supervisor что это. Фото linux supervisor что это

Базовые команды по управлению Nginx

В случае запуска от имени root, команда такая:

Запуск после остановки:

Остановка и повторный запуск (перезапуск):

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

По умолчанию, Nginx сконфигурирован на автоматический запуск при загрузке сервера. Такое поведение можно изменить следующей командой:

Снова включить автозапуск Nginx при загрузке сервера:

Это делается следующими командами.

Сначала создаём нужную директорию на сервере.

Потом нужно создать соответствующий набор правил для Nginx. В любом текстовом редакторе создаём файл /etc/nginx/sites-available/your_domain и копируем туда конфигурацию из файла по умолчанию, только с изменённым адресом и доменом:

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

Какие вопросы чаще всего возникают у пользователей при управлении Linux-сервером? Какие инструменты можно порекомендовать даже не очень опытным администраторам?

Установка супервизора

Supervisor — это система клиент/сервер, при помощи которой администратор контролирует процессы на сервере. Инструмент создает процессы в виде подпроцессов от своего имени.

Установка supervisord в Debian или Ubuntu предельно простая:

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

Соответственно, скрипт будет автоматически запускаться при каждой загрузке системы и автоматически перезапускаться в случае выхода. Это значение может быть ‘false’ (не перезапускаться) или ‘unexpected’ (перезапускаться только в случае выхода с неожиданным кодом ошибки, по умолчанию, с любым кодом, кроме 0 или 2).

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

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

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

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

В этом режиме supervisorctl изначально выводит статус и время работы всех программ под управлением супервизора, а потом свю командную строку. Там можно ввести help — и увидеть список доступных команд:

Как видим, можно запускать, останавливать и перезапускать программы из командной строки с помощью команд start, stop и restart.

Выход из супервизорпа осуществляется по Ctrl-C или командой quit:

Анализ свободного места на диске

Информация о конкретной директории (например, /home):

Информация о разделах с заданной файловой системой:

Поиск файлов командой find

Поиск по названию файла:

Поиск по названию без учёта регистра:

«Обратный» поиск файлов, которые не соответствуют указанному шаблону:

Поиск по типу файла

Некоторые из распространённых дескрипторов::

Есть фильтр по размеру и времени доступа/изменения. Например, вот команда для поиска всех файлов менее 50 байт:

Поиск всех файлов более 700 мегабайт:

Для поиска по времени доступа, модификации или изменения метаинформации файла используются параметры ‘-atime’, ‘-mtime’ и ‘-ctime’ с символами плюса и минуса для указания диапазона больше и меньше указанного, соответственно.

Поиск файлов, которые были модифицированы менее суток назад:

Файлы с временем доступа более трёх суток назад:

Файлы, которые изменялись за последнюю минуту:

Файлы, которые новее указанного файла:

Доступен поиск по владельцу (‘-user’, ‘-group’) и по файлам с конкретными разрешениями (‘-perm’). На всех найденных файлах можно сразу провести какое-нибудь действие (‘-exec’).

Тестирование TCP и UDP-соединений

Сканирование портов

Выдача будет выглядеть примерно так:

Эта утилита выдаёт более подробную информацию о портах. Реестр известных портов /usr/share/nmap/nmap-services содержит более 20 тысяч строк, в том числе дополнительные поля, такие как средняя частота открытия конкретного порта на серверах в интернете (третья колонка):

Некоторые команды требует длительного времени для выполнения.

Сканирование операционной системы на хосте:

Сканирование диапазона хостов от xxx.xxx.xxx.xxx до yyy.yyy.yyy.yyy:

Сканирование сетевого диапазона с поиском доступных сервисов:

Сканирование конкретного порта:

Сканирование всех открытых портов TCP и UDP:

Изучение версий ПО, работающего на хосте:

Есть много других команд, параметров и вариантов использования nmap. Сканирование портов своего VDS-сервера позволяет определить потенциальные векторы атак и уязвимости, поскольку злоумышленник начнёт свои действия именно со сканирования.

Пересылка сообщений и файлов

На другой машине мы указываем подключиться к машине по данному порту:

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

Таким способом можно даже передать файл. Для этого команду прослушивания направляем сразу в файл:

На другом компьютере вместо текстового сообщения подаём на вход оригинальный файл:

Аналогично можно передавать самые разные вещи, например, содержимое директорий, заархивированное на лету в tarball :

Таким же способом можно на одной стороне создать образ диска ( dd ), отправить его в указанный порт по созданному TCP-соединению — и принять на другой системе.

Добавление и удаление пользователей

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

После этого добавляем пользователя:

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

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

Вместо user1 указываем имя пользователя, которого добавили ранее. Теперь он сможет запускать любые команды через sudo :

Имея такие права, этот пользователь может удалять других пользователей:

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

Источник

Русские Блоги

Инструмент управления процессами Linux supervisord

1. Введение

2. Серверная сторона супервизора называется супервизором, который в основном отвечает за запуск управляемого подпроцесса, когда он запускается сам, ответ на команду клиента, перезапуск сбойного или завершенного подпроцесса, запись выходных данных подпроцесса. stdout и stderr, генерирующие и обрабатывающие жизненный цикл подпроцесса В событии. Вы можете настроить связанные параметры в файле конфигурации, включая состояние самого Supervisord и соответствующие атрибуты каждого подпроцесса, которым он управляет. Файл конфигурации обычно находится в /etc/supervisord.conf.

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

2. Установка

Необходимо использовать Python2, потому что 3 не поддерживает

Проверьте, прошла ли установка успешно:

Создайте файл конфигурации:

3. Настройки файла конфигурации

Бинарные файлы, созданные при установке pip, находятся в /home/jinhan/.local/bin/supervisord под

4. Часто используемые команды:

1. Запустить все процессы, управляемые супервайзером. supervisorctl start all

2. Остановить все процессы, управляемые супервизором. supervisorctl stop all

3. Запустить определенный процесс, управляемый супервайзером.

4. Остановить определенный процесс, управляемый супервайзером.

5. Перезапустите все процессы или определенный процесс.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *