Скрипт для обновления конфигурации Monit в зависимости от количества процессоров

Я хочу создать скрипт для установки конфигурации monit для мониторинга средней нагрузки на сервер. Есть ли способ сказать: «Используйте этот порог, если на сервере 1 ЦП, или используйте этот порог, если на сервере 2 ЦП? У меня примерно 24 сервера, и каждый день я добавляю больше, и я хотел бы просто установить файл, и он адаптируется к сервер или если сервер обновлен, чтобы иметь больше процессоров.Есть идеи?Спасибо


person Lockcuff    schedule 24.09.2019    source источник
comment
Возможно, вы также могли бы рассмотреть возможность использования инструмента подготовки, такого как Ansible, для развертывания и управления вашей конфигурацией в соответствии с фактами серверов.   -  person TheCodeKiller    schedule 25.09.2019


Ответы (1)


Просто просмотрите последние примечания к выпуску Monit 5.26.0. Появилась новая опция проверки на ядро.

if loadavg(1m) per core > 2 then alert
if loadavg(1m) > 8 then alert # same test on a 4 core system
if loadavg(1m) > 18 then alert # same test on a 9 core system

Единственная проблема заключается в том, что большинство репозиториев ОС не предоставляют такой последней версии. Таким образом, вы можете в конечном итоге скомпилировать его самостоятельно или создать файл конфигурации с помощью сценария bash, например

#!/usr/bin/env bash

# Integers only!
percore=2

cores=$(grep processor /proc/cpuinfo | wc -l)
load=$(expr $cores \* $percore)

echo "if loadavg(1m) > ${load} then alert" >> myMonitRcTemporaryFile

это - точно - не будет реагировать, если будут добавлены процессоры (например, в виртуальной машине)...

person boppy    schedule 25.09.2019
comment
Это потрясающе! Я еще не видел, чтобы они добавили эту способность. Спасибо, что показали мне, что это полностью решает проблему. - person Lockcuff; 01.10.2019
comment
Большой! Не могли бы вы пометить этот ответ как правильный, пожалуйста? - person boppy; 01.10.2019