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


Агент

Агент Okmeter (далее – okagent) представляет собой статически собранный бинарный файл, написанный на языке Go, что позволяет ему работать в любой Linux-подобной ОС. Поддерживаются архитектуры x86_64 и ARM.

Okagent ставится одной командой и автоматически начинает собирать метрики как с операционной системы, так и с прикладного программного обеспечения, установленного на серверы. Okagent уже имеет более 15 различных интеграций с прикладным программным обеспечением, что позволяет Okagent автоматически обнаруживать, подключаться и собирать ключевые метрики с этого ПО. При этом, в большинстве случаев конфигурация Okagent не требуется, но иногда для сбора метрик необходимо предоставить соответствующий доступ (система оповестит об этом автоматически и подскажет какие команды нужно выполнить).

Возможности Okagent:

  • Сбор базовых метрик по утилизации серверов:
    • CPU;
    • Disk;
    • RAM + SWAP;
    • Сети/сетевых подключений (netstat);
    • Ресурсов ОС в разрезе по процессам.
  • Автоматическое обнаружение следующих приложений, установленных на серверах:
    • PostgreSQL;
    • Pgbouncer;
    • MySQL;
    • MongoDB;
    • Redis;
    • Memcached;
    • Cassandra;
    • Elasticsearch;
    • Zookeeper;
    • Kafka;
    • Sphinx;
    • RabbitMQ;
    • Nginx;
    • PHPfpm;
    • Java/jmx;
    • Envoy.
  • Сбор собственных (custom) метрик различными способами:
    • SQL-query – получение метрик посредством выполенения SQL-запросов;
    • Redis-query – получение метрик посредством выполенения запросов в Redis;
    • Exec – выполнение исполняемого файла и получение от него метрик;
    • Logparser – парсинг логов и преобразование полей лога в метрики;
    • HTTP-query – получение метрик посредством выполенения HTTP-запросов;
    • StatsD – встроенный в агента StatsD-сервер позволяет быстро собирать любые счетчики;
    • Prometheus exporters – получение метрик из любого OpenMetrics-совместимого exporter.

Интерфейс

Управление системой и просмотр мониторинговых данных производится с помощью пользовательского веб-интерфейса.

Интерфейс имеет на две зоны:

  • Интерфейс мониторинга;
  • Интерфейс управления хранилищем;

В интерфейсе мониторинга доступно:

  • Создание любых дашбордов, графиков и триггеров (алертов) по собираемым метрикам.
  • Управление пользователями и их доступами в систему;
  • Настройка канала доставки алертов:
    • HTTP push – при срабатывании триггера вы получите информацию в HTTP-запросе на настроенный URL;
    • Email, SMS (необходимо подключение дополнительных провайдеров Email и SMS);
    • Telegram;
    • Prometheus Alertmanager;
    • Opsgenie;
    • PagerDuty;
  • Просмотр сработавших алертов.

В интерфейсе управления хранилищем доступно:

  • Создание организаций и проектов (тенантов) внутри организаций для изоляции потоков мониторинговых данных;
  • Управление доступами пользователей к организациям и проектам;
  • Запуск общего инстанса Grafana, с правами доступа к данным от запустившего пользователя;
  • Инструкции по управлению Prometheus Recording Rules, Alerting Rule, Alertmanager.

Хранилище

Это Prometheus-совместимое хранилище мониторинговых данных, основанное на Grafana Mimir.

Ключевые характеристики:

  • Горизонтальная масштабируемость и отказоустойчивость;
  • Возможность хранить десятки миллионов уникальных серий;
  • Длительность хранения метрик не ограничена (возможно хранить данные 5 лет и более);
  • Хранилище имеет систему разграничения потоков метрик и прав доступа к ним:
    • Разделение метрик по тенантам – каждый проект/сервис может отправлять метрики в свой тенант;
    • Выдача доступов на запись и чтение метрик в рамках тенанта;
    • Режим “супертенанта” – возможность сделать запрос для отображения метрик одновременно во все тенанты.
  • Хранение не только метрик собираемых самой системой Okmeter, так и любых метрик из любых источников, поддерживающих протокол Remote Write: Prometheus, VictoriaMetrics и прочих.
  • Статистика утилизации ресурсов хранилища по тенантам.
  • Отображение мониторинговых данных с помощью Grafana и любых других Prometheus/PromQL-совместимых UI.
  • Поддержка Prometheus Recording Rule и Alerting Rule, что позволяет трансформировать метрики и настраивать триггеры на данные из внешних источников.
  • Поддержка Alertmanager, что позволяет настраивать каналы доставки уведомлений при срабатывании триггеров.

Хранилище разделено на две зоны:

  • Зона метрик от Okagent;
  • Зона метрик, принимаемых по протоколу Remote Write от различных источников данных.