Установка и кластеризация XWiki

  • Web, xWiki
  • 23 октября, 2024
  • 0 Комментарии
Оцените статью

Если вы решили кластеризовать вашу XWiki, то вы потенциально столкнетесь с несколькими проблемами. Вам понадобится внешняя база данных Postgresql, распределенное файловое хранилище, например GlusterFS, общий сервер документов и конечно же единая система полнотекстового поиска SOLR.

Установка XWiki

Существует два варианта как вы можете установить вашу XWiki. Первый вариант, это использование Docker-образа и запуск в Docker Composer-е, а второй вариант это запуск локального Tomcat-сервера и запуск приложения как SystemD-сервис.

Для первого варианта вы можете найти Docker Compose файлы на все актуальные версии XWiki и на все поддерживаемые базы данных по адресу https://github.com/xwiki/xwiki-docker/tree/master/15.5/postgres-tomcat (для версии 15.5 и базы данных Postgresql).

Для второго случая можно либо установить Tomcat сервер локально и развернуть war-файл или же пойти другим путем и скопировать уже настроенное окружение из докер-контейнера из первого варианта. 

SystemD-сервис в моем случае выглядит следующим образом:

[Unit]
Description=Xwiki tomcat service

[Service]
Type=simple

User=xwiki
Group=xwiki

Environment="JAVA_HOME=/opt/xwiki/java"
Environment=CATALINA_HOME=/opt/xwiki
Environment=CATALINE_BASE=/opt/xwiki
WorkingDirectory=/opt/xwiki
ExecStart=/opt/xwiki/bin/catalina.sh run

StandardOutput=append:/var/log/xwiki/service.log
StandardError=append:/var/log/xwiki/service_error.log

[Install]
WantedBy=multi-user.target

Активируем и запускаем сервис XWiki:

# systemctl start xwiki
# systemctl enable xwiki
# systemctl status xwiki

Postgresql

Для настройки сервера Postgresql можно использовать заметку: Postgresql — установка и кластеризация

GlusterFS

Для GlusterFS у меня есть отдельная заметка: Пример развертывания GlusterFS в Ubuntu Linux

Office Server

Open Office я просто отключил, так как функцией импорта не пользуюсь.

Для этого просто:

  • Удаляем расширение Office Importer Application
  • Отключаем автозапуск Office Server в конфиге openoffice.autoStart=false

SOLR

Для запуска XWiki в режиме кластеризации вам понадобится развернуть отдельный сервер SOLR и прописать в конфигурации XWiki путь до сервера. Это связано с тем, что каждый контейнер XWiki запускает свой локальный SOLR-сервер и хранит его данные на распределенной файловой системе (а файловая стсема у нас только для хранения файлов и естественно не предполагает запуск нескольких баз полнотекстового поиска на GlusterFS). Причем для размых версий XWiki требуется пределенная версия SOLR-сервера.

XWiki versionSolr version
11.4 to 11.57.7.x (XWiki embeds 7.7.1)
11.6 to 13.28.1.x (XWiki embeds 8.1.1)
12.3 to 13.08.5.x (XWiki embeds 8.5.1)
13.1 to 14.78.8.x (XWiki embeds 8.8.0)
14.8+8.11.x (XWiki embeds 8.11.2)

Приступаем к установке SOLR

Официальный сайт c инструкцией по установке и настройке находится по адресу https://solr.apache.org/guide/8_11/installing-solr.html

  • Фактически нам требуется скачать архив
  • Распаковать в /opt/
  • Создать пользователя для запуска SOLR 
  • Создать сервис и запустить
  • Проверить, что сервис работает

Предварительная подготовка

# cd /tmp/
# wget "https://www.apache.org/dyn/closer.lua/lucene/solr/8.11.2/solr-8.11.2.tgz?action=download"
# tar -xvf ./solr-8.11.2.tgz\?action\=download
# mv ./solr-8.11.2 /opt/solr/
# useradd solr
# chown -R solr:solr /opt/solr/

Тестовый локальный запуск

$ bin/solr start

Сервер SOLR будет доступен на порту 8983 и в моем случае можно получить доступ к web-интерфейсу по URL http://10.240.250.10:8983/solr/#/

Следующим этапом мы останавливаем тестовый SOLR-сервер командой:

$ bin/solr stop

Запуск SOLR-сервера в виде SystemD-сервиса

Первое на что стоит обратить внимение, это на предупреждения при тестовом запуске сервиса:

*** [WARN] *** Your open file limit is currently 1024.
 It should be set to 65000 to avoid operational disruption.
 If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh
*** [WARN] ***  Your Max Processes Limit is currently 15310.
 It should be set to 65000 to avoid operational disruption.
 If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh
Warning: Available entropy is low. As a result, use of the UUIDField, SSL, or any other features that require
RNG might not work properly. To check for the amount of available entropy, use 'cat /proc/sys/kernel/random/entropy_avail'.

Как вы видите мы можем просто отключить эту проверку или все-же последовать рекомендациям и установить сообветствующие лимиты. В моем случае получился сервис вот такого вида (/etc/systemd/system/solr.service).

[Unit]
Description=Apache SOLR
ConditionPathExists=/opt/solr
After=syslog.target network.target remote-fs.target nss-lookup.target systemd-journald-dev-log.socket
Before=multi-user.target
Conflicts=shutdown.target
StartLimitIntervalSec=60

[Service]
Type=forking

User=solr
Group=solr

LimitNOFILE=1048576
LimitNPROC=1048576

Environment=SOLR_INCLUDE=/etc/default/solr.in.sh
Environment=RUNAS=solr
Environment=SOLR_INSTALL_DIR=/opt/solr

WorkingDirectory=/opt/solr

Restart=on-failure
RestartSec=5

ExecStart=/opt/solr/bin/solr start
ExecStop=/opt/solr/bin/solr stop
Restart=on-failure

StandardOutput=append:/var/log/solr/service.log
StandardError=append:/var/log/solr/service_error.log

[Install]
WantedBy=multi-user.target

Соответственно, активируем, запускаем и проверям работоспособнось аналогично запуску в тестовом режиме по адресу http://10.240.250.10:8983/solr/#/.

# systemctl enable solr
# systemctl start solr

Настраиваем XWiki на работу с внешним SOLR-сервером

Создаем на сервере xwiki новое Core которое так и назовем xwiki.

# su solr -s /bin/bash
$ cd /opt/solr/
$ bin/solr create -c xwiki

Проверяем что SOLR Core отображается в web-интерфейсе.

Миграция данных из встроенного SOLR во внешний

Самый простой спосом мигрировать данные во внешний SORL

  • Удаляем расширение Solr Indexer for the Extensions Security Vulnerabilities application
  • Вносим правки в конфигурационный файл 
solr.type=embedded
solr.remote.baseURL=http://10.240.250.10:8983/solr
  • Перезапускаем XWiki
  • Проводим полную реиндексацию системы

Реиндексация расширений:

  • Global Administration: Extensions
  • Reindex

Реиндексация полнотекстового поиска:

  • Global Administration: Search
  • Search

Похожие записи

Разворачиваем Managed Kubernetes в облаке Selectel

В предыдущих статьях я уже писал подробную инструкцию как развернуть Managed Kubernetes в облаке Cloud.ru и сегодня давайте рассмотрим аналогичную операцию, но уже для облака Selectel. Kubernetes — популярный инструмент…

Полная настройка Nextcloud: кэширование, интеграция с FreeIPA, S3-хранилище и оптимизация

Продолжаем переезжать на Nextcloud и сегодня мы его донастроим до полноценного использования. Настроим интеграцию с FreeIPA, подключим S3-хранилище от Cloud.ru (а также рассмотрим альтернативу — Adman.com), добавим кэширование, планировщик задач…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читать еще статьи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования