Руководство по настройке мониторинга CPU, RAM и диска
Проверка Counter (в панели New Monitor помечена как Monitor CPU, RAM, HDD) по расписанию читает одно числовое значение и может оповещать, когда это значение пересекает заданный вами порог. Значением может быть нагрузка CPU, использование памяти, использование диска, время соединения с портом, время соединения с базой данных или счетчик производительности Windows. Она отвечает на другой вопрос, чем проверка доступности: не "отвечает ли сайт", а "не заканчивается ли место у машины под ним".
Прежде чем начать
Для этого типа проверки нет устанавливаемого агента HostTracker, и нет отдельного выбора локаций мониторинга для монитора. Опрос идет с собственной приватной инфраструктуры проверки HostTracker, а не с распределенной публичной сети. Проверка устроена наоборот: ваш сервер открывает один небольшой эндпоинт, отвечающий одним числом, а HostTracker запрашивает его по расписанию. Есть три способа предоставить такой эндпоинт, выбираемых настройкой Value provider ниже, и какой бы вы ни выбрали, он должен быть развернут и доступен еще до создания монитора:
- Напишите эндпоинт сами (опция custom). Он отвечает небольшим объектом JSON, и это вариант, который предпочитают многие команды, поскольку на их сервере никогда не выполняется ничего, что они не написали сами.
- Разверните готовый коллектор HostTracker на PHP на веб-сервере Linux/Unix.
- Разверните готовый обработчик HostTracker на ASP.NET 4.0 на сервере IIS/Windows.
Хост вообще без входящего доступа опросить нельзя. То, что нужно открыть, - это один URL только для чтения, возвращающий число, а не управляющий порт, но открыт он должен быть именно для проверяющих серверов HostTracker.
Источник мониторинга
Скриншота этого раздела нет, но каждый элемент управления в нем все равно нужно объяснить, поскольку именно он отличает этот тип проверки от остальной части панели.
- Value provider - выпадающий список из трех вариантов. Value provider - your own web service (custom): ваш эндпоинт отвечает
{"v": 12.34, "e": "error text", "vs": "version string"}, и должно присутствовать хотя бы значение или строка ошибки, так что эндпоинт, возвращающий просто{"v": 42.5}, сообщает 42.5 при каждой проверке. HostTracker collector - PHP, for *nix web servers: требует включенныйshell_execвphp.ini(он вызывает через шеллtop,freeиdf), плюс расширенияmysql/mysqliдля замера времени соединения с MySQL. HostTracker collector - ASP.NET 4.0, for IIS/Windows: у учетной записи пула приложений должны быть права на чтение счетчиков производительности и реестра, обычно достаточно Network Service. Оба готовых коллектора скачиваются из этого раздела и должны быть развернуты на целевом сервере вручную; HostTracker никогда ничего не отправляет на ваш сервер автоматически. - Поле URL монитора чуть ниже называется Full monitor url для опции custom (точный адрес эндпоинта, вызываемый как есть) либо Base monitor url для готового коллектора (корень сайта, под которым развернут скрипт коллектора; HostTracker сам добавляет к нему имя файла коллектора).
- После выбора готового коллектора появляется выпадающий список Counter type: CPU usage %, RAM usage %, Disk or file system usage %, Port connection time (ms), MySQL connection time (ms), а для ASP.NET еще и SQL Server connection time (ms) и Windows performance counter. У каждого свое поле: буква диска или путь *nix, хост и порт, строка соединения (со ссылкой на пример формата), либо тройка категория/имя/экземпляр для счетчика производительности (экземпляр можно оставить пустым для значения по умолчанию, часто
_Total).
Основные настройки
У Main Settings для этого типа нет отдельного скриншота, так что вот каждый элемент управления в ней:
- Interval - от 1 минуты до 24 часов, плюс альтернатива в виде cron-расписания. Одна минута подходит для критичной для бизнеса машины; 5 или 10 минут вполне достаточно для более медленного тренда вроде использования диска.
- Tags - произвольные метки для группировки и фильтрации мониторов.
- Full Log - сохраняет каждое отдельное опрошенное значение вместо только сгруппированных сводок.
- Open Stats - делает страницу статистики и лога этого монитора доступной для просмотра, в том числе людьми без входа в аккаунт.
- Retry on connect fail - переключатель, включенный по умолчанию, повторяющий попытку один раз перед тем, как пометить сбой получения данных как настоящую ошибку.
- Элементы управления Value provider, URL монитора и Counter type, описанные в разделе "Источник мониторинга" выше, тоже живут в этой группе на панели.
Проверка ответа

Именно здесь сырое показание превращается в оповещение, и именно здесь читатели обычно спотыкаются. Слишком жесткий порог срабатывает на любом обычном всплеске, а слишком мягкий не срабатывает вообще, пока не станет слишком поздно, чтобы это имело значение.
- Error condition - на скриншоте показано значение по умолчанию, no condition, что означает, что монитор только сообщает значение без вердикта Down. Выбор equals, not equal to, less than или greater than открывает одно числовое поле для лимита; выбор inside range или outside range открывает два, нижний и верхний лимит.
- Overloads before Down - появляется, как только выбрано любое условие, кроме "no condition". Это ползунок от 0 до 20: число подряд идущих проверок, уже нарушающих условие, необходимое до того, как монитор переключится в Down. При 0 одно же нарушающее показание засчитывается немедленно; при, например, 3, требуется три проверки подряд сверх лимита. HostTracker оценивает это централизованно, а не сама наблюдаемая машина, и именно это решает, полезен ли монитор или постоянно кричит "волк". Серверу с нагрузкой CPU, подскакивающей на несколько секунд по нескольку раз в час, нужен антидребезг выше 0, иначе каждый обычный всплеск становится оповещением.
Выбор самого порога - это оценочное решение, специфичное для того, за чем вы наблюдаете. Единственно верного числа не существует, так что уделите этому настоящее внимание, а не оставляйте значение по умолчанию. Одно полезное свойство этой проверки: сбой получения данных (коллектор недоступен, таймаут, либо возвращает что-то неразбираемое) сообщается как ошибка немедленно и никогда не засчитывается в антидребезг выше, так что нестабильное соединение с коллектором не может удовлетворить счетчик подряд идущих перегрузок, предназначенный для настоящего давления на ресурсы.
Подписки на оповещения

Выберите, какие контакты узнают об этом мониторе и по каким событиям: Up, Down и Repeat (повторное напоминание, пока проверка остается в Down). Один переключатель подписывает всех контактов сразу на Up/Down, либо выберите отдельные контакты и события в таблице под ним.
Подписки на отчеты

Отдельно от оповещений выберите, кто получает периодические отчеты по этому монитору - ежедневные, еженедельные или ежемесячные - по email.
Разобранный пример
Наблюдение за местом на диске Linux-сервера, на котором уже работает PHP: распакуйте готовый коллектор PHP на сервер и убедитесь, что он доступен по собственному URL. Установите Value provider в опцию коллектора PHP, URL монитора - в базовый адрес сайта, Counter type - в Disk or file system usage %, а путь файловой системы - в /dev/sda1. Установите Error condition в greater than с лимитом 90 (процентов), а Overloads before Down - в 3, так что для срабатывания оповещения нужно три подряд идущих показания выше 90%. Кратковременный всплеск от задачи резервного копирования его не вызовет, а устойчивое заполнение - вызовет. Интервал - 10 минут, а CPU и RAM получают собственные отдельные мониторы на том же сервере с тем же коллектором.
Диагностика
- Коллектор недоступен. Хост вообще без входящего доступа опросить нельзя. Убедитесь, что эндпоинт отвечает извне вашей собственной сети, по непредсказуемому пути, если вас беспокоит раскрытие, - поскольку он не принимает никаких команд и ничего не меняет.
- Монитор оповещает по явно неверному числу. Проверка сообщает то, что сообщает коллектор. Исправьте эндпоинт и рассмотрите возможность того, чтобы он сообщал опциональную строку ошибки вместо неверного числа, когда что-то идет не так на его стороне.
- Оповещения срабатывают на каждом незначительном всплеске. Поднимите Overloads before Down, а не сам порог. Оставление его на 0 засчитывает любой единичный всплеск.
- Коллектор PHP сообщает "shell_exec is denied on server." Показания CPU, RAM и диска все вызывают системные команды через шелл, так что убедитесь, что
shell_execнет в списке отключенных функций вphp.ini. - Проверка счетчика производительности Windows выдает ошибку. У учетной записи пула приложений должны быть права на чтение счетчиков производительности и реестра; если это еще не Network Service, попробуйте установить именно ее.
Связанные материалы
- Все руководства по мониторингу - раздел обо всех типах проверок HostTracker.
- Что такое мониторинг сервера - для чего нужны эти показания и как они сочетаются с проверками доступности.
- Мониторинг сервера: CPU, RAM и диск - страница продукта для этого типа проверки.
- Руководство по мониторингу SNMP - альтернативный путь к тем же метрикам на оборудовании, которое не может запустить коллектор, например маршрутизаторы и коммутаторы.
- Мониторинг запросов к базе данных - для наблюдения за запросами и результатами базы данных напрямую, помимо числа времени соединения.
- Руководство по проверке базы данных - еще одна проверка, работающая с приватной инфраструктуры HostTracker.
- Бесплатный инструмент проверки порта - быстрый способ подтвердить, что порт доступен, прежде чем выстраивать вокруг него полноценный монитор времени соединения.
- Режим ассертов и правила проверки ответа - язык правил проверки ответа, используемый и в других местах HostTracker.