Что такое Arenadata Toolkit
Arenadata Toolkit — это набор вспомогательных инструментов, скриптов и утилит, разработанных Arenadata для упрощения сопровождения, мониторинга, диагностики и эксплуатации компонентов экосистемы: ADPG, ADB, ADQM, Arenadata Streaming, ADCM и др.
Toolkit состоит из Bash-скриптов, Python-утилит, конфигурационных шаблонов и CLI-инструментов, часто поставляется вместе с кластерами в виде директории /opt/arenadata/toolkit или через GitHub/репозитории ADCM.
Назначение: облегчить жизнь DevOps-инженерам и администраторам при рутинных задачах.
Основные компоненты Arenadata Toolkit
|
Компонент |
Назначение |
|---|---|
|
health-check.sh |
Проверка состояния сервисов, портов, пинг-ответов, кластеров |
|
adb-collect-info.sh |
Сбор статистики и логов ADB (Greenplum) |
|
adpg-vacuum-stats.py |
Анализ потребности в VACUUM и анализ bloating |
|
adqm-table-checks.py |
Проверка структуры и распределения данных в ADQM |
|
nifi-flow-backup.sh |
Бэкап и выгрузка всех потоков данных в NiFi |
|
adcm-audit-export.py |
Выгрузка событий аудита ADCM в CSV или JSON |
|
pg-log-analyzer.py |
Анализ логов PostgreSQL по частоте ошибок |
|
adb-config-checker.sh |
Проверка рекомендуемых параметров конфигурации |
|
adpg-backup-wrapper.sh |
Обёртка над pgBackRest/pg_dumpall с логированием и алертами |
Как использовать Toolkit на практике
Пример: развёрнут кластер ADPG с ADCM, Toolkit установлен в /opt/arenadata/toolkit
1. Проверка состояния компонентов
cd /opt/arenadata/toolkit sudo ./health-check.sh
Результат:
- ping до всех узлов
- доступность портов (5432, 2181, 8443)
- статус сервисов systemd
- ошибки в логах последних 10 минут
2. Сбор статистики VACUUM в ADPG
python3 adpg-vacuum-stats.py --db mydb
Покажет:
- таблицы с высоким bloating
- оценку необходимости VACUUM FULL
- время последнего анализа
3. Аудит действий в ADCM
python3 adcm-audit-export.py --from "2024-01-01" --to "2024-01-31" --format json > audit.json
Позволяет выгрузить:
- изменения кластеров и компонентов
- запуск ручных задач
- IP-адреса, пользователей, timestamps
4. Проверка распределения таблиц в ADQM (ClickHouse)
python3 adqm-table-checks.py --host click1.local --port 8123
Результаты:
- таблицы без партиций или с неэффективным layout
- рекомендации по ReplacingMergeTree, TTL, Merge оптимизации
5. Резервное копирование NiFi-потоков
./nifi-flow-backup.sh --nifi-url https://nifi.local:8443 --output /backups/flows/
Позволяет выгрузить .json-шаблоны всех текущих потоков с версионированием.
Преимущества использования Arenadata Toolkit
|
Преимущество |
Обоснование |
|---|---|
|
Оптимизация времени |
Упрощает рутинные проверки, анализ и аудит |
|
Совместимость |
Работает со всеми Arenadata-продуктами |
|
Интеграция в CI/CD |
Скрипты CLI-формата, легко встраиваются в пайплайны |
|
Автоматизация |
Можно запускать по cron, в Scheduled Jobs в ADCM |
|
Полезная экспертиза |
Инструменты основаны на лучших практиках от инженеров Arenadata |
Ограничения и минусы
|
Минус |
Комментарий |
|---|---|
|
Требует ручной установки |
В некоторых кластерах Toolkit не предустановлен |
|
Документация фрагментарна |
Описание скриптов не всегда есть — нужен предварительный анализ |
|
Версионность |
Некоторые утилиты зависят от версий Python, PostgreSQL и др. |
|
Нет GUI-интерфейса |
Только CLI — не всегда удобно для начинающих |
Как добавить Toolkit в новый кластер
- Установить зависимости:
sudo yum install python3 jq net-tools -y
- Скачать Toolkit:
git clone https://github.com/arenadata/arenadata-toolkit /opt/arenadata/toolkit cd /opt/arenadata/toolkit chmod +x *.sh
- Добавить в cron:
crontab -e 0 * * * * /opt/arenadata/toolkit/health-check.sh >> /var/log/ad-health.log
Возможности расширения
- Добавить кастомные плагины под свои задачи (на Python/Bash)
- Связать с Telegram/Slack через curl и webhook
- Интеграция с Grafana через json exporter
Заключение
Arenadata Toolkit — это инженерный must-have, особенно при поддержке отказоустойчивых кластеров в продуктиве. Он покрывает частые задачи мониторинга, аудита, диагностики и резервного копирования, повышая стабильность и снижая человеческий фактор.



