Genesis-proc-controller

Утилита служащая для контроля процессов на хосте. Цель не допустить перегрузки хоста и потери доступа к sshd сервису.

Принцип работы - проверяет значение load_avg и в случае превышения установленного значения, в первый раз перезапускает бегущие контейнеры, ждет успешного поднятия контейнеров и снижения нагрузки, в случае если нагрузка остается останавливает все контейнеры.

Installing

Genesis при настройке сервера сам выполнит установку, по следующему алгоритму. Краткое введение в минимальную настройку, необходимую для запуска. Обратите внимание, необходимо указать gitlab-token и tag/версию проекта.

cd ~ ; rm -rf genesis-proc-controller*
python3 -m pip install genesis-proc-controller=={TAG} --index-url https://{username}:{token}@gl.sbdagroup.com/api/v4/projects/2037/packages/pypi/simple --user
wget --header "PRIVATE-TOKEN: {YOUR_TOKEN}" "https://gl.sbdagroup.com/api/v4/projects/2037/repository/archive?sha={TAG}" -O "genesis-proc-controller-{TAG}.tar.gz"
tar xzf genesis-proc-controller*tar.gz
cd genesis-proc-controller*/
# echo 'MAX_LOAD_AVG_1=20.0' > /etc/default/atop   # Если необходимо сменить настройки по умолчанию
make install

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

journalctl -u genesis-proc-controller.service

Configuration

Список переменных окружения. Переменные окружения могут быть переданы как аргументы для вызова или помещены в файл /etc/default/genesis-proc-controller

MAX_LOAD_AVG_1=10.0             # Максимальное значение LOAD_AVG_1 после которого будет рестарт сервисов.
DELAY_RUNTIME_LOOP=1.0          # Задержка основного цикла.
DELAY_CONTAINER_RESTART=600.0   # Задержка до остановки сервисов, после первого рестарта запущенных сервисов.

В случае необходимости изменения значений по умолчанию, их необходимо изменять в файле /etc/default/genesis-proc-controller после чего необходимо перезапустить сервис командой:

systemctl restart genesis-proc-controller.service