Собираем метрики cPanel в Zabbix

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Многие провайдеры виртуального хостинга для предоставления услуги используют программу cPanel

cPanel
cPanel

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

Провайдер предлагает клиенту выбрать тарифный план. Среди параметров тарифного плана могут быть такие пункты:

Дисковое пространство Ресурсы RAM Ресурсы CPU И многое другое.

Для контроля использования ресурсов клиенту предлагается довольно бедный пункт меню - "Использование ресурсов". Без возможности установки каких либо уведомлений. Многие клиенты узнают, что причиной сбоя в работе сайта является, например исчерпание свободного дискового пространства, но уже по факту.

Что в общем то и понятно, ведь cPanel не профессиональный комплекс мониторинга с построением дашбордов, отчетов, порогов, уведомлений и эскалаций.

Работая с мониторингом я применяю систему мониторинга Zabbix. Теперь рассмотрим, как можно метрики cPanel передать в Zabbix.

Для этого из коробки у cPanel есть API, на ряду с управлением можно запросить и параметры метрик. К сожалению не каждый провайдер хостинга настраивает cPanel с возможностью удаленной работы с WEB API, хотя возможность создания соответствующих токенов сохраняют.

Меня это не сильно расстроило ведь есть утилита uapi и доступ к консоли и cron. Вызываем утилиту uapi с следующими ключами:

uapi --output=json ResourceUsage get_usages

Пример вывода:

{"apiversion":3,"module":"ResourceUsage","func":"get_usages","result":{"status":1,"messages":null,"warnings":null,"errors":null,"data":[{"error":null,"usage":.....и так далее

Что бы иметь возможность забрать данные:

Запускаем запрос к этой утилите раз в минуту (или как вам нравится) Вывод направляем в файл, который будет доступен из интернета на одном из Ваших доменов. Например в кроне записано так:

*	*	*	*	*	uapi --output=json ResourceUsage get_usages > /home/USERNAME/DOMEN/FILE.log

Далее переходим к конфигурированию Zabbix.

zabbix
zabbix

1. Создаем элемент данных типа HTTP agent и указываем точный URL до файла, не путать с путем для cron.

2. Тип данных выбираем Text и раз в минуту, или как вам удобней, забираем данные из файла в Zabbix. Текст у нас уже приходит в JSON формате.

Затем к нашему основному элементу данных создаем зависимые элементы данных с соответствующим парсингом. Например:

Для получения CPU будет следующий Preprocessing

 JSONPath:    $.result.data[12].usage

И так по каждому интересующему элементу данных.

Далее у меня получился следующий дашборд:

Сюда ж можно вывести метрику внешнего мониторинга WEB, например Response time - время ответа и Download speed - скорость скачивания.

Zabbix позволяет установить по каждой метрике свои пороги и отправлять уведомления при их достижении, например в Telegram. К примеру если вы используете 70% выделенный Вам ресурсов CPU в течении 10 минут, то получите соответствующее уведомление, или если выделенное дисковое пространство будет подходить к концу, то можно так ж получать уведомление.

Если у вас есть вопросы или непреодолимое желание поблагодарить, - пишите.

Источник: https://habr.com/ru/post/574520/


Интересные статьи

Интересные статьи

В предыдущих туториалах (часть 1, часть 2) мы изучали методы, моделирующие uplift. Это величина, которая оценивает размер влияния на клиента, если мы взаимодействуем с ни...
Чтобы применять любые принципы правильно, сначала нужно их понять — то есть осознать, откуда они взялись и для чего нужны. Если применять вслепую всё, что угодно — результат будет хуж...
Статистике еще только предстоит в точных цифрах оценить титанические сдвиги в медиапотреблении 2020 года, однако  — и это ясно, как день — мы стали заметно больше смотреть фильмов и...
Мы продолжаем рассказывать об удобных многофункциональных веб-консолях (панелях управления хостингом и сайтами), которые вы можете приобрести у нас вместе с VPS — об условиях приобретения читайте...
В статье описаны необходимые параметры сервера для оптимальной работы сайта на платформе 1С-Битрикс.