Возможности 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 от различных источников данных.