Установка и настройка RethinkDB на Debian 10

О чём эта инструкция
RethinkDB — это свободная NoSQL СУБД, ориентированная на приложения с реальным временем. Она хранит документы в формате JSON, имеет простой язык запросов, умеет делать объединения (joins) и группировки. В этом руководстве вы узнаете, как установить и настроить RethinkDB на Debian 10, получить доступ к веб-интерфейсу и подготовить базовую эксплуатацию.
Предварительные условия
- Сервер под управлением Debian 10 (Buster).
- Настроен root-пароль либо доступ через sudo с правами администратора.
- Базовые навыки работы в терминале и с редактором (nano/vi).
План действий
- Обновить систему.
- Добавить GPG-ключ и репозиторий RethinkDB.
- Установить пакет rethinkdb через APT или собрать из исходников.
- Настроить конфигурацию (включить веб-интерфейс, задать порты и директорию данных).
- Запустить службу, проверить статус и открыть веб-интерфейс.
- Настроить безопасность и мониторинг.
Обновление системы
Перед началом убедитесь, что система актуальна:
apt-get update -y
apt-get upgrade -yПосле обновления рекомендуется перезагрузить систему, если были обновления ядра или системных служб.
Важно: выполняйте обновление в окне обслуживания или на тестовой ноде, если работает продуктивная нагрузка.
Установка через официальный репозиторий
RethinkDB по умолчанию отсутствует в стандартных репозиториях Debian 10, поэтому добавим официальный репозиторий.
- Импортируйте GPG-ключ:
wget -qO- https://download.rethinkdb.com/apt/pubkey.gpg | apt-key add -- Добавьте репозиторий:
echo "deb https://download.rethinkdb.com/apt buster main" | tee /etc/apt/sources.list.d/rethinkdb.list- Обновите список пакетов и установите RethinkDB:
apt-get update -y
apt-get install rethinkdb -y- Запустите и включите службу:
systemctl start rethinkdb
systemctl enable rethinkdbВы увидите сообщение, похожее на:
rethinkdb.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable rethinkdbПроверьте статус службы:
systemctl status rethinkdbОжидаемый результат: служба загрузилась и активна (в некоторых случаях скрипт может завершиться с exited, если не определены инстансы).
Конфигурация RethinkDB
По умолчанию пакет поставляет пример конфигурации. Создайте инстанс на базе шаблона:
cp /etc/rethinkdb/default.conf.sample /etc/rethinkdb/instances.d/instance1.confОтредактируйте файл:
nano /etc/rethinkdb/instances.d/instance1.confИзмените ключевые параметры в файле:
## Port for the RethinkDB web interface
http-port=8080
## Allow RethinkDB to accessible from the remote system.
bind=0.0.0.0
## The name of the server
server-name=server1
## Default directory to store data and metadata.
directory=/var/lib/rethinkdb/defaultПояснения:
- http-port — порт для веб-интерфейса (по умолчанию 8080).
- bind — IP-адрес интерфейса. 0.0.0.0 открывает доступ со всех адресов. Для безопасности указывайте конкретный IP в продуктиве.
- server-name — произвольное имя узла в кластере.
- directory — каталог для данных и метаданных.
Сохраните изменения и перезапустите службу:
systemctl restart rethinkdbДоступ к веб-интерфейсу
Откройте браузер и перейдите по адресу:
Вы попадёте на панель управления RethinkDB.

С веб-интерфейса удобно просматривать базы, таблицы, метрики и управлять кластером.
Установка из исходников (если репозиторий не поддерживает вашу систему)
Если официальный пакет недоступен для вашей архитектуры или версии ОС, соберите RethinkDB из исходников.
- Установите зависимости:
apt-get install build-essential protobuf-compiler python curl libprotobuf-dev libcurl4-openssl-dev libboost-all-dev libncurses5-dev libjemalloc-dev wget m4 -y- Скачайте исходники (пример для 2.4.0):
wget https://download.rethinkdb.com/dist/rethinkdb-2.4.0.tgz- Распакуйте и соберите:
tar -xvzf rethinkdb-2.4.0.tgz
cd rethinkdb-2.4.0
./configure --allow-fetch
make
make install- Запустите службу:
/etc/init.d/rethinkdb startСборка поднимет дополнительные зависимости и займёт время. В некоторых случаях полезно собрать на той же версии ОС, где будет работать сервис.
Базовая проверка и тесты
- Проверить открытые порты:
ss -tuln | grep -E "8080|28015|29015"Ожидаемые порты:
- 8080 — веб-интерфейс
- 28015 — клиентский порт (драйверы)
- 29015 — порт для внутренней связи кластера
Выполнить простой запрос через JavaScript-пакет или Python-драйвер. Пример с RethinkDB Data Explorer в веб UI.
Создать тестовую базу и таблицу, вставить документ и прочитать его.
Безопасность и настройки сети
- Если вы открываете веб-интерфейс в интернет, ставьте обратный прокси с TLS (nginx, Caddy) или туннель (ssh tunnel, VPN).
- Для продакшена задавайте bind на локальный интерфейс и используйте прокси.
- Ограничьте доступ через брандмауэр (ufw/iptables):
ufw allow from <ваш-IP> to any port 8080
ufw allow from <ваш-IP> to any port 28015
ufw allow from <кластер-сеть> to any port 29015- Регулярно делайте резервные копии данных и конфигурации.
Резервное копирование и восстановление (простая методика)
- Остановите сервер RethinkDB или поставьте его в режим read-only для корректного слепка.
- Сделайте копию каталога data (directory) — например, /var/lib/rethinkdb/default.
systemctl stop rethinkdb
tar -czf rethinkdb-backup-$(date +%F).tar.gz /var/lib/rethinkdb/default
systemctl start rethinkdb- Для восстановления распакуйте архив в каталог данных и перезапустите сервис.
Примечание: при восстановлении из бэкапа на другой версии RethinkDB тестируйте совместимость.
Масштабирование и кластер
- Для кластерной конфигурации на каждой ноде укажите server-name и настройте порты для связи.
- На одной ноде запустите несколько инстансов с разными конфигурациями, если нужно.
- Используйте веб-интерфейс или API для добавления/удаления нод в кластер.
Трудности и отладка (частые проблемы)
- “No instances defined” — значит, нет файлов конфигурации в /etc/rethinkdb/instances.d/. Создайте instance1.conf как описано.
- Служба показывает exited — проверьте логи в /var/log/rethinkdb и вывод systemd.
- Порт 8080 занят — измените http-port в конфиге.
- Проблемы с правами доступа к каталогу directory — проверьте права владельца и разрешения.
Примеры команд для логов:
journalctl -u rethinkdb -b --no-pager
tail -n 200 /var/log/rethinkdb/*.logРольные чек-листы
Системный администратор:
- Добавить репозиторий и ключи.
- Настроить брандмауэр и TLS.
- Настроить backup/restore.
Разработчик:
- Проверить работу драйверов и соединения.
- Создать тестовую базу и таблицу.
- Протестировать типичные запросы и задержки.
DBA:
- Планировать шардирование и репликацию.
- Настроить мониторинг метрик и алерты.
- Проводить контроль целостности данных.
Критерии приёмки
- RethinkDB успешно установлен через apt или из исходников.
- Веб-интерфейс доступен по http://
:8080 (или через прокси/TLS). - Клиентские соединения принимаются на порту 28015.
- Данные пишутся и читаются корректно при базовой проверке.
- Налажено резервное копирование и есть план восстановления.
Советы по эксплуатации и производительности
- Для больших нагрузок выделяйте отдельный диск для данных.
- Используйте журналирование и мониторинг метрик (CPU, I/O, задержки).
- Настраивайте ulimit и системные параметры (если нужно) для большого количества файлов.
Когда не стоит использовать RethinkDB
- Если вам нужна реляционная СУБД с ACID-транзакциями между таблицами, лучше рассмотреть PostgreSQL.
- Для очень больших аналитических нагрузок OLAP чаще подходят специализированные решения.
Краткое резюме
RethinkDB легко устанавливается на Debian 10 через официальный репозиторий или из исходников. Основные шаги: добавить ключ и репозиторий, установить пакет, создать конфигурационный инстанс, включить веб-интерфейс и настроить безопасность. Для продакшена обязательно ограничьте доступ к веб-интерфейсу, настройте бэкапы и мониторинг.
Если у вас остались вопросы по конкретным сценариям (кластер, миграция данных, TLS через nginx), напишите, и я добавлю подробную инструкцию.
FAQ
Как изменить порт веб-интерфейса?
Отредактируйте http-port в файле /etc/rethinkdb/instances.d/instance1.conf и перезапустите службу:
systemctl restart rethinkdbКак добавить вторую ноду в кластер?
На новой ноде установите RethinkDB и настройте server-name и порты. Затем в UI или через командную строку добавьте адрес существующей ноды в настройки кластера.
Где находится директория с данными?
Это параметр directory в конфигурационном файле. По умолчанию это /var/lib/rethinkdb/default.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента