Перейти к основному содержимому

Руководства / Руководства по мониторингу: каждый тип проверки шаг за шагом

Руководство по настройке мониторинга 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» и списком контактов со столбцами Down и Up, выбранными для одного email-контакта

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

Подписки на отчеты

Раздел подписок на отчеты с включенным переключателем «Подписать все контакты на еженедельные/ежемесячные отчеты» и контактом с выбранными столбцами Weekly и Monthly

Отдельно от оповещений выберите, кто получает периодические отчеты по этому монитору - ежедневные, еженедельные или ежемесячные - по 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, попробуйте установить именно ее.

Связанные материалы

Проверить сейчас

Запустите бесплатную проверку своего сайта - аккаунт не нужен.

Cpu ram disk loads

Следить за этим постоянно

Получайте оповещение в момент сбоя: HostTracker проверяет более чем из 300 локаций и уведомляет по email, SMS, в Slack, Telegram и не только.

Возможности HostTracker

Ещё в этом разделе: Руководства по мониторингу: каждый тип проверки шаг за шагом