Установка и кластеризация 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

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

Подготовка LAMP VPS-сервера и установка Media Wiki

Вот и добрались до подготовки LAMP сервера. Надо перенести несколько внутренних порталов на RedOS, но раз уж добрался до любимых теплых LAMP-овых серверов, то давайте будем вспоминать как их вообще…

Введение в VibeCode — навайбкодим сайт-визитку-резюме

Я долго воздерживался от погружения в это направление, но видимо пришло время запрыгнуть в последний вагон и посмотреть, что это за зверь такой вайбкодинг. Собственно я посмотрел пачку вебинаров, почитал…

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

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

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

Настройка взаимодействия RED ADM и Windows Active Directory

Настройка взаимодействия RED ADM и Windows Active Directory

Подробная инструкция по написанию YAML‑файлов для Docker Compose

Подробная инструкция по написанию YAML‑файлов для Docker Compose

Установка основного контроллера домена на базе REDADM

Установка основного контроллера домена на базе REDADM

zVirt работа с шаблонами виртуальных машин

zVirt работа с шаблонами виртуальных машин

Подробная инструкция по работе с томами (volumes) в Docker

Подробная инструкция по работе с томами (volumes) в Docker

Сетевые возможности Docker

Сетевые возможности Docker