Установка и настройка ArangoDB на Debian 11

Что такое ArangoDB
ArangoDB — современная свободная много-модельная СУБД, поддерживающая документы, графы и key/value. AQL (ArangoDB Query Language) — декларативный язык запросов для объединения разных моделей данных в одном запросе.
Краткое определение: AQL — декларативный язык для работы с документами и графами в ArangoDB.
Important: статья описывает установку на Debian 11 и настройку для локального или серверного развёртывания. Для управляемого облачного варианта (ArangoDB Oasis) процесс отличается.
Основные сценарии применения
- Хранение документов + сложные графовые запросы в одной базе
- Микросервисы, которым нужна ACID-поддержка и гибкая модель данных
- Быстрая разработка прототипов с возможностью горизонтального масштабирования
Требования
- Сервер с Debian 11
- Пользователь с sudo-привилегиями
- Доступ в интернет для скачивания репозитория и ключей
Установка ArangoDB
ArangoDB поставляется в виде бинарных пакетов для популярных дистрибутивов. На Debian мы добавим официальный репозиторий, импортируем GPG-ключ и установим пакет.
Сначала установите вспомогательные пакеты:
sudo apt install -y gnupg2 apt-transport-httpsДобавьте GPG-ключ ArangoDB:
curl -OL https://download.arangodb.com/arangodb39/DEBIAN/Release.key
sudo apt-key add - < Release.key
Добавьте репозиторий и обновите индексы пакетов:
echo 'deb https://download.arangodb.com/arangodb39/DEBIAN/ /' | sudo tee /etc/apt/sources.list.d/arangodb.list
sudo apt updateПосле обновления установите пакеты ArangoDB:
sudo apt install arangodb3 arangodb3-dbgВо время установки инсталлятор предложит задать пароль root для ArangoDB и другие опции (автоматическое обновление, резервное копирование старых данных). Следуйте подсказкам в интерактивном установщике.



После установки запустите и включите сервис:
sudo systemctl start arangodb3
sudo systemctl enable arangodb3
sudo systemctl status arangodb3
Оптимизация системы для ArangoDB
Для рабочего развёртывания важно настроить параметры ядра и окружения, чтобы ArangoDB работала стабильно и эффективно. Ниже — пример автозапуска скрипта оптимизации при загрузке.
Установите sysfsutils:
sudo apt install sysfsutils -yСоздайте скрипт /etc/init.d/arangodb-os-optimization:
sudo nano /etc/init.d/arangodb-os-optimizationСодержимое скрипта:
#!/bin/bash
### BEGIN INIT INFO
# Provides: arangodb-memory-configuration
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Set arangodb kernel parameters
# Description: Set arangodb kernel parameters
### END INIT INFO
# 1 - Raise the vm map count value
sudo sysctl -w "vm.max_map_count=2048000"
# 2 - Disable Transparent Huge Pages
sudo bash -c "echo madvise > /sys/kernel/mm/transparent_hugepage/enabled"
sudo bash -c "echo madvise > /sys/kernel/mm/transparent_hugepage/defrag"
# 3 - Set the virtual memory accounting mode
sudo bash -c "echo 0 > /proc/sys/vm/overcommit_memory"Сделайте скрипт исполняемым и добавьте в автозагрузку:
sudo chmod +x /etc/init.d/arangodb-os-optimization
sudo update-rc.d arangodb-os-optimization defaultsПояснения по настройкам:
- vm.max_map_count — увеличивает число отображаемых областей памяти процесса; нужно при больших индексах/сегментах.
- Transparent Huge Pages (THP) — отключение THP (madvise) предотвращает деградацию производительности для некоторых нагрузок на БД.
- overcommit_memory=0 — стандартное значение, которое управляет выделением памяти для процессов; в продакшне настройку стоит согласовать с администратором и тестами нагрузки.
Notes: эти изменения полезны большинству развёртываний, но перед продакшеном выполните тесты под нагрузкой и убедитесь, что политика резервного копирования и мониторинга настроены.

Подключение к ArangoDB, создание базы и пользователя
ArangoDB предоставляет интерактивную оболочку arangosh — похоже на mysql или psql. Подключитесь под root:
sudo arangoshВведите пароль root. В консоли вы можете выполнять JavaScript-подобные команды и использовать встроенные модули.

Пример создания пользователя и базы данных:
const users = require('@arangodb/users');
users.save('testuser', 'testpassword');
db._createDatabase('testdb');
users.grantDatabase('testuser', 'testdb', 'rw');Выполните exit или нажмите Ctrl+C для выхода.

Подключение как новый пользователь к базе testdb:
sudo arangosh --server.endpoint tcp://127.0.0.1:8529 --server.username testuser --server.database testdbВведите пароль testuser и убедитесь, что соединение установлено.

Включение веб-консоли и доступ извне
По умолчанию веб‑интерфейс ArangoDB (порт 8529) слушает 127.0.0.1. Чтобы открыть консоль на внешнем IP, измените конфигурацию:
sudo nano /etc/arangodb3/arangod.confИзмените строку endpoint на адрес сервера, например:
endpoint = tcp://192.168.5.20:8529Сохраните файл и перезапустите сервис:
sudo systemctl restart arangodb3
ss -plntОткройте в браузере: http://192.168.5.20:8529/ и выполните вход под пользователем базы.





Important: выставляя внешний bind‑адрес, обязательно настройте брандмауэр, TLS и учётные записи с минимально необходимыми правами.
Безопасность и рекомендации при развёртывании
- Всегда используйте TLS/HTTPS для внешнего доступа. ArangoDB поддерживает TLS в конфигурации arangod.
- Не используйте root для приложений; создайте привилегированного пользователя с ограниченными правами.
- Настройте брандмауэр: разрешите порт 8529 лишь для доверенных IP или через VPN.
- Включите бэкап и проверьте восстановление: инсталлятор предлагает резервную копию старых данных в /var/lib; дополнительно используйте регулярные дампы и архивы.
- Мониторинг: собирайте метрики, логи и настраивайте алерты на падения сервиса, высокий лаг или ошибки транзакций.
Тесты приёмки и контрольные проверки
Критерии приёмки для базовой инсталляции:
- Сервис arangodb3 запущен и включён в автозагрузку
- arangosh подключается под root
- Создан пользователь и база (users.grantDatabase успешно выполняется)
- Веб‑консоль доступна по настроенному адресу
- Базовые параметры ядра применены (vm.max_map_count, THP и т.д.)
Минимальный набор тестов:
- Проверка статуса: sudo systemctl status arangodb3
- Подключение arangosh под разными пользователями
- CRUD-операции: вставка, чтение, обновление, удаление в тестовой коллекции
- Создание и выполнение простого AQL-запроса на объединение документов и графа
- Тест доступа к веб‑консоли и смена пароля пользователя
Резервирование и откат
Краткий playbook для отката до предыдущей версии/резервной копии:
- Остановите arangodb3: sudo systemctl stop arangodb3
- Найдите резервную папку с датой в /var/lib/ (инсталлятор указывает путь)
- Скопируйте/восстановите данные в рабочий каталог данных ArangoDB (учтите права и владельца)
- Запустите сервис и проверьте логи: journalctl -u arangodb3 -b
Notes: перед ручным восстановлением данных обязательно сделайте полную копию текущей директории данных.
Альтернатива и сценарии, когда этот метод не подходит
Альтернативы:
- Docker-контейнеры: удобны для тестов и изолированных сред, но требуют управления персистентностью томов.
- ArangoDB Oasis: управляемый облачный сервис, подходит если вы не хотите управлять серверами.
- Сборка из исходников: когда требуется патч или специальная сборка
Когда установка через пакет не подходит:
- Нужна специфическая версия пакета, которой нет в официальном репозитории
- Ограничения на установку пакетов системы (изолированные окружения)
- Требуется полноценное горизонтальное кластерное развёртывание со специфической конфигурацией — лучше подготовить план по сетям, балансировщикам и сертификатам
Паттерны использования и ментальные модели
- Думайте о ArangoDB как об “одном хранилище” для микросервисов, где документы покрывают большинство CRUD, а графы решают связи и рекомендации.
- Разделяйте рабочие нагрузки: OLTP в коллекциях, аналитика на отдельной базе/реплике.
Контрольный список для ролей
Администратор:
- Установить пакеты и GPG-ключ
- Настроить systemd и автозапуск
- Настроить брандмауэр и TLS
Разработчик:
- Проверить подключение через arangosh
- Создать тестовую базу и коллекции
- Написать базовые AQL-запросы и пройти тесты приёмки
Оператор (DevOps):
- Настроить мониторинг и бэкапы
- Автоматизировать обновления и откат
Совместимость и заметки по миграции
- Инструкция ориентирована на Debian 11 и пакеты ArangoDB 3.x
- При миграции с более старых версий следуйте официальным указаниям по upgrade, особенно для кластерных развёртываний
- Для systemd-сред убедитесь, что юниты arangodb3 корректно управляют сервисом после обновления
Справочная информация
Fact box:
- Файлы конфигурации: /etc/arangodb3/arangod.conf
- Порт по умолчанию: 8529
- Входная оболочка: arangosh
- Путь данных: /var/lib/arangodb3 (сервис создаёт резервные копии в /var/lib при установке)
- Репозиторий: https://download.arangodb.com/arangodb39/DEBIAN/
Примеры тестовых сценариев
- Установка и запуск
- Выполнить установку, убедиться, что systemctl report положительный
- Аутентификация
- Подключиться arangosh под root, создать testuser и проверить доступ testuser
- Веб‑консоль
- Открыть /_admin/ в браузере и пройти авторизацию
- Нагрузочный тест (рекомендуется на тестовой среде)
- Запустить набор CRUD-тестов и замерить время отклика и использование памяти
Итог
Вы установили ArangoDB на Debian 11, настроили базовые параметры производительности, создали пользователя и базу через arangosh и включили веб-консоль. Следующие шаги: настроить TLS, мониторинг и регулярные бэкапы перед переводом в продакшен.
Ключевые действия для запуска в продакшен:
- Защитить веб‑интерфейс TLS и брандмауэрами
- Настроить мониторинг и резервное копирование
- Провести нагрузочное тестирование и проверить настройки ядра
Спасибо за внимание. Удачного развёртывания ArangoDB!
Похожие материалы
Как устроить идеальную вечеринку для просмотра ТВ
Как распаковать несколько RAR‑файлов сразу
Приватный просмотр в Linux: как и зачем
Windows 11 не видит iPod — способы исправить
PS5: как настроить игровые пресеты