1. УСТАНОВКА И ОБНОВЛЕНИЕ WISLA
- Программные требования
- Сетевые доступы
- Инструкция по ручному развертыванию Kafka для Wisla
- Подготовка операционной системы к запуску программы установки
- Подготовка системы, установка и обновление wisla (ручная)
- Установка wiSLA 5
- Инструкция по ручному развертыванию Kafka в кластерном режиме для Wisla
- Настройка Kafka для работы с wiSLA (и с wiProbe Aggregator)
- Изменение одного или нескольких параметров wiSLA
- Экранные формы хода установки (Работа с программой установки)
- Инструкция по ручному развертыванию Wisla-wiprobe-agregator для Wisla
- Активация модуля автокорреляции
- Действия при неудачной попытке установки и восстановление работоспособности в случае сбоя
- Действия по обслуживанию wiSLA
- Установка wiSLA в контейнер podman
- Скрипты для взаимодействия с wiSLA
- Инструкция по полуавтоматическому обновлению wiSLA (alfa-test)
Программные требования
Перед началом установки убедитесь, что сервер соответствует следующим программным требованиям.
Предварительные условия
- На время установки сервер должен иметь доступ к стандартным репозиториям вашей операционной системы для их автоматической загрузки.
- Если доступ к репозиториям невозможен, необходимо заранее подготовить локальный набор пакетов. Для получения инструкций обратитесь в службу технической поддержки.
- Для корректного заполнения адресов и автоматического определения координат точек доступа серверы wiSLA и рабочие места пользователей должны иметь доступ к сети интернет. Если доступ к сети интернет невозможен, потребуется развернуть локальный сервер карт (обратитесь в службу поддержки за получением инструкций).
- Для возможности рассылки уведомлений по электронной почте серверам wiSLA должен быть доступен корпоративный или внешний сервер электронной почты.
- Для корректной работы механизмов системы требуется обеспечить синхронизацию времени по протоколу NTP на серверах wiSLA, зондах и программных агентах. Настройка NTP не описывается в настоящем документе.
- Для редактирования конфигурационных файлов в процессе настройки рекомендуется установить удобный редактор, например: Nano, Vim , Vi или mcedit.
Аппаратные требования (минимальные/рекомендуемые)
Минимальные:
-
Архитектура: x86_64
-
CPU: 4 ядер
-
RAM: 12 ГБ
-
Диск: 60 ГБ SSD (рекомендуется) / HDD (c минимальным хранением резервных копий) , 100 ГБ SSD (рекомендуется) / HDD (с хранением резервных копий)
Рекомендуемые:
-
Архитектура: x86_64
-
CPU: 8 ядер
-
RAM: 16 ГБ
-
Диск: 250 ГБ SSD (рекомендуется) / HDD (с долгосрочным хранением резервных копий)
Поддерживаемые операционные системы
Система wiSLA поддерживает развертывание на серверах со следующими 64-битными (x86_64) операционными системами:
- Astra Linux Special Edition 1.8
- Astra Linux Special Edition 1.7
- Debian 11 , 12, 13
- Ubuntu 20, 22 , 24, 25 LTS
- RedOS 7.3, 8.0
- ОС Атлант Giant
- Alt linux 10.4
- CentOS 8, 9
Примечание: Использование операционных систем, не указанных в списке, требует предварительного анализа и согласования со службой технической поддержки.
Зависимости
- Astra Linux Special Edition 1.8 astra.zip
- Astra Linux Special Edition 1.7 astra.zip
- Debian 11 , 12, 13 deb.zip
- Ubuntu 20, 22 , 24, 25 LTS
- RedOS 7.3, 8.0 redos.zip
- ОС Атлант Giant
- Alt linux 10.4
- CentOS 8, 9 astra.zip
Требования к браузерам для работы с веб-порталом
Для корректной работы с веб-интерфейсом (порталом) wiSLA используйте актуальные версии браузеров:
-
Mozilla Firefox версии 134.0 и выше
-
Google Chrome версии 132.0.6834.83 и выше
-
Яндекс. Браузер версии 24.12.2.856 и выше
Сетевые доступы
Используемые сетевые доступы представлены в таблице.
| Описание | Адреса источников | Адрес назначения | Протокол | Порт назначения |
| web portal access | clients (lan) | wisla-01 | TCP | 8080,8443,80,443 |
| Utest | agent | agent | UDP | 8787 |
| TWAMP | agent | agent | UDP | 10862 |
| telnet | wisla-01 | agent | TCP | 5555 |
| UDP | agent-server | agent-client | UDP | 5001 |
| MTU | agent-server | agent-client | UDP | 5002 |
| SNMP | wisla-01 | snmp | UDP | 161 |
| agent-to-wisla | agent | wisla-01 | TCP | 8080,8443,80,443 |
Инструкция по ручному развертыванию Kafka для Wisla
В данной инструкции описано как установить Kafka в ручном режиме без использования скрипта предварительной настройки системы.
Этап 1. Переход под пользователя wisla:
На первом этапе необходимо перейти под пользователя Wisla используя команду:
sudo su - wisla
Если пользователь wisla еще не существует в системе его необходимо создать используя следующие команды пошагово.
1.Команда создания пользователя:
sudo useradd -d /home/wisla -m -s /bin/bash wisla
2.Команда установки пароля:
sudo passwd wisla
3.Добавление пользователя в файлы sudoers:
echo "wisla ALL=(ALL:ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/wisla
4.Настройка системных лимитов для пользователя wisla:
# Создаем файл лимитов
cat > /etc/security/limits.d/wisla << 'EOF'
wisla soft nofile 32768
wisla hard nofile 32768
wisla soft nproc 32768
wisla hard nproc 32768
EOF
5. Добавляем в PAM (если нет):
echo "session required pam_limits.so" >> /etc/pam.d/common-session
Этап 2. Подготовка каталога kafka.
После перехода под пользователя wisla вам необходимо создать каталог где будет располагаться портативная Java и бинарный дистрибутив Kafka использую следующие команды:
1.Создание директории в /opt/:
sudo mkdir -p /opt/kafka
2.Проверить кому принадлежит каталог kafka:
ls -l /opt/
3.Сменить пользователя для каталога kafka если принадлежит не wisla используя следующую команду:
sudo chown wisla:wisla /opt/kafka
Этап 3. Копирование архива Java:
После создания каталога необходимо подготовить портативную Java для распаковки, предполагаем, что архив Java уже скачан и находится в доступном месте.
1.Скопируем его в домашнюю директорию wisla используя следующую команду:
cp OpenJDK17U-jdk_x64_linux_hotspot_17.0.17_10.tar.gz /home/wisla/
2.Переходим в каталог kafka используя следующую команду:
cd /opt/kafka
3.Распаковка Java:
tar -xzf ~/OpenJDK17U-jdk_x64_linux_hotspot_17.0.17_10.tar.gz
4.Проверяем результат распаковки Java:
ls -la /opt/kafka/
5.Устанавливаем переменную окружения:
export JAVA_HOME="/opt/kafka/jdk-17.0.17+10"
export PATH="$JAVA_HOME/bin:$PATH"
6.Проверяем версию Java:
java -version
Этап 4. Копирование архива Kafka:
После подготовки портативной Java, необходимо подготовить бинарный дистрибутив Kafka, предполагаем, что Kafka уже скачана и находится в доступном месте.
1.Копируем архив Kafka в домашнюю директорию:
cp kafka_2.13-4.1.1.tgz /opt/kafka/
2.Переходим в каталог kafka используя следующую команду:
cd /opt/kafka
3.Распаковываем Kafka в /opt/kafka:
tar -xzf ~/kafka_2.13-4.1.1.tgz --strip-components=1 -C /opt/kafka
4.Проверяем результат распаковки Kafka:
ls -la /opt/kafka/bin/kafka-server-start.sh
5.Создаем дополнительные рабочие директории для Kafka:
mkdir -p /opt/kafka/logs
mkdir -p /opt/kafka/config
mkdir -p /opt/kafka/config/kraft
sudo mkdir -p /var/lib/kafka
sudo chown wisla:wisla /var/lib/kafka
Этап 5. Конфигурация Kafka:
Теперь нам необходимо сконфигурировать Kafka.
1.Для начала определим IP адрес который будем использовать для конфигурации Kafka:
IP_ADDRESS=$(ip route get 1 2>/dev/null | awk '{print $7; exit}')
2.Генерируем Cluster ID:
CLUSTER_ID=$(/opt/kafka/bin/kafka-storage.sh random-uuid)
echo "Сгенерированный Cluster ID: $CLUSTER_ID"
ЗАПИШИТЕ ЭТОТ ID - он понадобится позже! (Пример моего ID : IdLVHil7RvCVrR9U2DEvKQ)
3.Создание конфигурационного файла:
sudo cat > /opt/kafka/config/kraft/server.properties << EOF
process.roles=broker,controller
node.id=1
controller.quorum.voters=1@${IP_ADDRESS}:9093
listeners=PLAINTEXT://${IP_ADDRESS}:9092,CONTROLLER://${IP_ADDRESS}:9093
advertised.listeners=PLAINTEXT://${IP_ADDRESS}:9092
log.dirs=/var/lib/kafka
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
controller.listener.names=CONTROLLER
sasl.mechanism.controller.protocol=PLAINTEXT
auto.create.topics.enable=true
EOF
4.Проверяем созданный файл:
cat /opt/kafka/config/kraft/server.properties
5.Форматирование хранилища
if [ ! -f /var/lib/kafka/meta.properties ]; then
echo "Инициализируем хранилище Kafka..."
/opt/kafka/bin/kafka-storage.sh format \
-t $CLUSTER_ID \
-c /opt/kafka/config/kraft/server.properties
echo "Хранилище инициализировано с Cluster ID: $CLUSTER_ID"
else
echo "Хранилище уже инициализировано"
cat /var/lib/kafka/meta.properties
fi
6.Создание файла службы:
Создаем файл службы
sudo cat > /etc/systemd/system/kafka.service << EOF
[Unit]
Description=Apache Kafka Service (KRaft mode)
After=network.target
[Service]
Type=simple
User=wisla
Group=wisla
WorkingDirectory=/opt/kafka
Environment="JAVA_HOME=/opt/kafka/jdk-17.0.17+10"
Environment="PATH=/opt/kafka/jdk-17.0.17+10/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
ExecStartPre=/bin/bash -c "if [ ! -f /var/lib/kafka/meta.properties ]; then /opt/kafka/bin/kafka-storage.sh format -t $CLUSTER_ID -c /opt/kafka/config/kraft/server.properties; fi"
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/kraft/server.properties
SuccessExitStatus=143
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
Создание скрипта запуска:
sudo cat > /usr/local/bin/kafka-start << 'EOF'
#!/bin/bash
KAFKA_DIR="/opt/kafka"
KAFKA_LOG_DIR="/var/lib/kafka"
CLUSTER_ID="$CLUSTER_ID" # ВСТАВЬТЕ ВАШ Cluster ID!
if [ ! -f $KAFKA_LOG_DIR/meta.properties ]; then
$KAFKA_DIR/bin/kafka-storage.sh format -t $CLUSTER_ID -c $KAFKA_DIR/config/kraft/server.properties
fi
systemctl start kafka
echo "Kafka запущен в режиме KRaft"
EOF
Создаем скрипт остановки:
sudo cat > /usr/local/bin/kafka-stop << 'EOF'
#!/bin/bash
systemctl stop kafka
echo "Kafka остановлен"
EOF
Создаем скрипт статуса:
sudo cat > /usr/local/bin/kafka-status << 'EOF'
#!/bin/bash
echo "Kafka статус:"
systemctl status kafka --no-pager
EOF
Создаем скрипт сброса:
sudo cat > /usr/local/bin/kafka-reset << 'EOF'
#!/bin/bash
echo "Сброс Kafka хранилища..."
systemctl stop kafka
KAFKA_DIR="/opt/kafka"
KAFKA_LOG_DIR="/var/lib/kafka"
CLUSTER_ID="$CLUSTER_ID" # ВСТАВЬТЕ ВАШ Cluster ID!
rm -rf $KAFKA_LOG_DIR/*
$KAFKA_DIR/bin/kafka-storage.sh format -t $CLUSTER_ID -c $KAFKA_DIR/config/kraft/server.properties
echo "Хранилище сброшено. Запустите: systemctl start kafka"
EOF
Выдача прав на исполнение:
chmod +x /usr/local/bin/kafka-*
Этап 6. Запуск и проверка Kafka:
Обновляем systemd:
sudo systemctl daemon-reload
Включаем автозагрузку:
sudo systemctl enable kafka
Запускаем Kafka
sudo systemctl start kafka
Проверяем статус
sudo systemctl status kafka
Смотрим логи:
sudo journalctl -u kafka -f
Проверяем, что порты открыты
netstat -tlnp | grep -E "9092|9093"
Проверяем метаданные
ls -la /var/lib/kafka/
Установка завершена! Kafka готова к использованию.
Подготовка операционной системы к запуску программы установки
Программа установки представляет собой консольное псевдографическое приложение с набором скриптов и настроек, работающее в Linux-окружении (bash). Дистрибутив и программа установки, как правило, поставляются как единый самораспаковывающийся run-файл. Шаблоны отчётов и плагины могут поставляться в виде отдельных файлов.
Если система wiSLA устанавливается на несколько серверов, один экземпляр программы установки, запущенный на одном сервере, может управлять процессом установки, настройки и резервного копирования данных на всех серверах. Для этого создаётся пользователь wisla, которому обеспечивается посредством SSH доступ по ключу ко всем серверам контура.
Перед запуском программы установки требуется выполнить следующие шаги:
- На непосредственном рабочем месте администратора подготовить к работе приложение – SSH-клиент, с помощью которого будет производиться взаимодействие с консолями серверов. Для Windows рекомендуется PuTTY. Для операционных систем семейства Linux можно воспользоваться стандартным эмулятором терминала и утилитой ssh.
- Назначить уникальные сетевые имена (hostname) серверам (например, добавить запись в /etc/hosts). Этот шаг можно пропустить, если серверы централизовано получают hostname в автоматическом режиме или действие было выполнено ранее (например, в процессе установки операционной системы).
Подготовка системы, установка и обновление wisla (ручная)
Установка системы
Программно-аппаратные требования
Платформа: аппаратный сервер или виртуальная машина (с учетом будущей инфраструктуры рекомендуется не менее 30 Гбайт свободного пространства на диске, минимум 8 Гбайт оперативной памяти без GUI и 10 Гбайт оперативной памяти с GUI).
Операционная система: CentOS 7, Debian 11, Ubuntu 20.04 LTS, Astra Linux Special Edition 1.6 Smolensk, RedOS 7.3, Astra Linux Special Edition 1.7(Орел и Воронеж).
Архитектура: x86_64.
Пакеты: deb.zip | astra.zip | centos.zip | redos.zip
Настройка ОС
Ниже описаны шаги по подготовке окружения операционной системы к выполнению программы установки.
1. Установка и запуск клиента SSH
Для Linux-совместимых операционных систем можно воспользоваться стандартной консолью и утилитой ssh, авторизоваться можно как Administrator.
2. Настройка hostname
Задайте имя сервера в файлах /etc/hostname и /etc/hosts как указано на примерах ниже.
Пример структуры файла /etc/hostname:
wisla
Пример структуры файла /etc/hosts:
127.0.0.1 localhost
192.168.159.136 wisla
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Обратите внимание!
В некоторых Linux-дистрибутивах в файле /etc/hosts указанный во время установки системы hostname может ссылаться на 127.0.1.1, для корректной работы сервисов WiSLA эту запись нужно изменить в соответствии с примером выше.
Если сетевые настройки получены по DHCP, в будущем могут возникнуть проблемы при изменении IP-адреса сервера, так как сервисы будут ссылаться на записи в файле /etc/hosts, который останется без изменений. Рекомендуется использовать статический IP-адрес на сетевом интерфейсе сервера.
В файле /etc/hosts имя хоста должно соответствовать IP-адресу, отличному от 127.0.0.1 и 127.0.1.1.
3. Создание пользователя “wisla”
Если на вашем сервере присутствует только учётная запись суперпользователя Admin, тогда вам необходимо создать сервисную учётную запись для работы с системой. В данном примере будет создана учётная запись wisla:
sudo useradd -d /home/wisla -m wisla && sudo passwd wisla
В терминале сервера появится запрос на ввод пароля, задайте надёжный пароль для сервисной учётной записи.
4. Изменение привилегий для пользователя “wisla”
Чтобы все сервисы WiSLA работали корректно необходимо предоставить сервисной учётной записи привилегированный доступ без запроса пароля:
cat << EOF > /etc/sudoers.d/wisla
## Allow wisla to run any commands anywhere
wisla ALL=(ALL:ALL) NOPASSWD:ALL
EOF
Данное действие обязательно, иначе могут возникнуть проблемы из-за того, что группа, в которой состоит пользователь, не имеет NOPASSWD и будут унаследованы её права.
5. Создайте подкаталог /opt/wisla5
Для хранения файлов системы WiSLA необходимо создать подкаталог /opt/wisla5:
# Если вы работаете из под учётной записи Administrator переключитесь на ранее созданного пользователя wisla
su -l wisla
# Если вы уже переключились на сервисную учётную запись используйте sudo
sudo mkdir -p /opt/wisla5 && sudo chown wisla:wisla /opt/wisla5
Скопируйте файлы дистрибутива wisla*.run с помощью программы winSCP или другим доступным способом в подкаталог /home/wisla/:
mv wisla*.run /home/wisla
sudo chown -R wisla:wisla /home/wisla/
chmod +x /home/wisla/wisla*
6. Установка зависимостей
В зависимости от операционной системы на вашем сервере список необходимых пакетов может отличаться, нажмите на соответствующий блок для получения информации.
RedOS
С доступом к сети или внутреннему репозиторию:
sudo yum install ntp lzo dialog rsync uuid zip unzip wget tar python3 fontconfig curl pv uuid python3-paramiko
Без доступа к сети:
#Копируем архив на хост удобным способом
# Разархивируем
unzip redos.zip
cd redos
# Устанавливаем
#Все по очереди:
for i in $(ls *.rpm)
do
rpm -i $i || exit
done
#Вручную:
rpm -i libtomcrypt-1.18.2-1.el7.x86_64.rpm libtommath-1.2.0-3.el7.x86_64.rpm dialog-1.3-14.20171209.el7.x86_64.rpm pv-1.6.6-1.x86_64.rpm uuid-1.6.2-26.el7.x86_64.rpm
rpm -i python3-pynacl-1.5.0-1.el7.x86_64.rpm python3-bcrypt-3.2.2-1.el7.x86_64.rpm python3-paramiko-3.2.0-1.el7.noarch.rpm
CentOS
С доступом к сети:
sudo yum install ntp lzo dialog rsync uuid zip unzip wget tar python3 fontconfig curl
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
python3 -m pip install --upgrade pip
pip install paramiko
sudo rpm -i http://www.ivarch.com/programs/rpms/pv-1.6.6-1.x86_64.rpm
Без доступа к сети:
#Копируем архив на хост удобным способом
# Разархивируем
unzip centos.zip
cd centos-pgks
# Устанавливаем
#Все по очереди:
for i in $(ls *.rpm)
do
rpm -i $i || exit
done
#Вручную:
rpm -i wget-1.14-18.el7_6.1.x86_64.rpm
rpm -i uuid-1.6.2-26.el7.x86_64.rpm
rpm -i rsync-3.1.2-10.el7.x86_64.rpm
rpm -i python-crypto-2.6.1-1.el7.centos.x86_64.rpm
rpm -i python-paramiko-2.1.1-9.el7.noarch.rpm
rpm -i pv-1.6.6-1.x86_64.rpm
rpm -i dialog-1.2-5.20130523.el7.x86_64.rpm
# Возможно потребуется установить дополнительные пакеты из этого архива
Debian и Ubuntu
sudo apt install -y ntp pv liblzo2-2 dialog rsync uuid zip unzip wget tar python3 python3-paramiko fontconfig curl language-pack-ru
Astra Linux 1.6 и 1.7
С доступом к сети:
sudo apt install -y ntp liblzo2-2 dialog rsync zip unzip wget tar python3 python3-paramiko fontconfig curl
Обратите внимание!
В репозиториях Astra Linux нет пакетов pv, paramiko и uuid, поэтому их необходимо установить из исходников используя .deb-пакеты.
Следуйте приведённой ниже инструкции в секции "Без доступа к сети".
Без доступа к сети:
unzip astra.zip
cd astra-pkgs
#Все по очереди:
ls *.deb > /tmp/packages.list && sudo dpkg -i $(cat /tmp/packages.list) && rm -rf /tmp/packages.list
#Вручную:
sudo dpkg -i pv_1.6.6-1_amd64.deb
sudo dpkg -i rsync_3.1.3-6+ci202302061937+astra1_amd64.deb
sudo dpkg -i libossp-uuid16_1.6.2-1.5+b4_amd64.deb
sudo dpkg -i uuid_1.6.2-1.5+b4_amd64.deb
sudo dpkg -i wget_1.20.1-1.1_amd64.deb
sudo dpkg -i python3-paramiko_2.6.0-1~bpo10+1_all.deb
sudo dpkg -i python3-*
sudo dpkg -i dialog_1.3-20190211-1_amd64.deb
Установка и настройка pip для Python
Обязательно для работы Paramiko на Astra Linux 1.7
Скачайте установочный скрипт get-pip.py(Версии могут отличатся от обновления Astra Linux, сравнивать с версией Python в системе ):
wget https://bootstrap.pypa.io/pip/3.7/get-pip.py
Запустите скрипт для установки pip:
python3 get-pip.py
Установите необходимые зависимости:
sudo apt install python3-distutils
Добавьте путь к локальным бинарным файлам в переменную PATH:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
Обновите pip до последней версии:
python -m pip install --upgrade pip
Обновите библиотеку Paramiko:
pip install --upgrade paramiko
Astra Linux 1.8
С доступом к сети:
sudo apt install -y rsync libossp-uuid16 uuid wget python3 python3-paramiko dialog dialog fontconfig liblzo2-2 python3-asn1crypto python3-bcrypt python3-cffi-backend python3-cryptography python3-nacl rsync unzip zip
Обратите внимание!
В репозиториях Astra Linux нет пакета pv, поэтому его необходимо установить из исходников используя .deb-пакет.
Следуйте приведённой ниже инструкции в секции "Без доступа к сети".
Без доступа к сети:
unzip astra.zip
cd astra-pkgs
#Все по очереди:
ls *.deb > /tmp/packages.list && sudo dpkg -i $(cat /tmp/packages.list) && rm -rf /tmp/packages.list
#Вручную:
sudo dpkg -i pv_1.6.6-1_amd64.deb
sudo dpkg -i rsync_3.1.3-6+ci202302061937+astra1_amd64.deb
sudo dpkg -i libossp-uuid16_1.6.2-1.5+b4_amd64.deb
sudo dpkg -i uuid_1.6.2-1.5+b4_amd64.deb
sudo dpkg -i wget_1.20.1-1.1_amd64.deb
sudo dpkg -i python3-paramiko_2.6.0-1~bpo10+1_all.deb
sudo dpkg -i python3-*
sudo dpkg -i dialog_1.3-20190211-1_amd64.deb
Ручная установка пакета pv:
sudo dpkg -i pv_1.6.6-1_amd64.deb
Alt Linux (Simply Linux)
С доступом к сети:
sudo apt-get install -y ntp pv dialog rsync zip unzip wget tar python3 fontconfig curl python3-module-paramiko ossp-uuid
В ходе тестирования было замечено, что для установки WiSLA в altLinux необходимо подключаться по ssh, либо используйте sudo su $(whoami)), иначе будет возникать окно с авторизацией. Также необходимо увеличить размер /tmp в /etc/fstab, добавьте через запятую size=4G (4G указаны в качестве примера) и mount -o remount, rw /tmp.
7. Установить python3 по умолчанию
Укажите системе использовать python3 в качестве основной версии:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1
8. Настройка правил firewall
В зависимости от операционной системы на вашем сервере стандартные утилиты для управления сетевым фильтром будут отличаться, нажмите на соответствующий блок для получения информации.
CentOS
Правила для firewalld:
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload
Наcтройка SELinux:
Настройки SELinux по умолчанию могут блокировать доступ к серверу с системой WiSLA, рекомендуется настроить режим Permissive.
# Открываем файл
sudo nano /etc/selinux/config
# Утсанавливаем значение и сохраняем
SELINUX=permissive
# Выключаем на текущий момент чтобы не перезагружаться
setenforce 0
Debian, Ubuntu и Astra Linux
Правила для UFW:
sudo ufw allow 8080/tcp
9. Настройка limits.conf:
Выполните команду ниже или создайте файл вручную как указано на примере ниже:
cat << EOF > /etc/security/limits.d/wisla
wisla soft nofile 32768
wisla hard nofile 32768
wisla soft nproc 32768
wisla hard nproc 32768
EOF
10. Настройка locale
В зависимости от операционной системы на вашем сервере набор команд может отличаться, нажмите на соответствующий блок для получения информации.
CentOS
Выполните команды приведённые ниже:
sudo dnf install glibc-locale-source glibc-langpack-ru
sudo localectl set-locale LANG=ru_RU.UTF-8
Затем заново авторизуйтесь на сервере.
Ubuntu
Выполните команды приведённые ниже:
sudo apt install -y locales
sudo sed -i 's|# ru_RU.UTF-8 UTF-8|ru_RU.UTF-8 UTF-8|g' /etc/locale.gen
sudo locale-gen ru_RU
sudo locale-gen ru_RU.UTF-8
sudo update-locale
localectl set-locale LANG=ru_RU.UTF-8
Затем заново авторизуйтесь на сервере.
Debian
Выполните команды приведённые ниже:
sudo locale-gen ru_RU.UTF-8
sudo dpkg-reconfigure locales
Затем заново авторизуйтесь на сервере.
Обратите внимание!
Перед запуском программы установки следует выполнить команду locale и убедиться, что активна ru_RU.UTF-8. При возникновении проблем необходимо обратиться к документации по дистрибутиву для установки нужной локали. Также следует проверить вывод timedatectl, часовой пояс должен иметь буквенное обозначение вместо n/a.
11. Подготовка системы к установке
Сгенерируйте SSH-ключ для беспарольного доступа по SSH для пользователя wisla:
# Переключитесь на пользователя wisla, если вы не сделали этого ранее
su -l wisla
# Сгенерируйте SSH-ключ
ssh-keygen -P ""
# В случае если установка в кластере нужно выполнить следующую команду для каждого сервера,
# где вместо $(hostname) dns имя или ip адрес в зависимости от того как будут указаны сервера в конфигурации при установки
username=$(whoami)
ssh-copy-id $username@$(hostname)
ssh-copy-id $username@localhost
# Проверьте работу аутентификации по ключам
ssh $username@$(hostname) exit
ssh $username@localhost exit
Обратите внимание!
Запроса пароля быть не должно! Если пароль запрашивается, тогда требуется найти причину и добиться входа без пароля, иначе в процессе установки будут происходить многократные запросы пароля. Причиной может быть неразрешённый тип ключа или несоответствие сетевого (доменного) имени.
Отключите опцию KillUserProcesses:
sudo sed -i 's/#KillUserProcesses=yes/KillUserProcesses=no/g' /etc/systemd/logind.conf
Перезагрузите сервер, чтобы применить изменения:
sudo reboot
Проделав указанные выше действия ваша операционная система подготовлена к запуску программы установки.
12. Запуск программы установки
Программа установки позволяет выполнить установку, настройку, обновление, удаление, запуск и остановку системы и её компонентов, резервное копирование и восстановление, а также предоставляет централизованный доступ к журналам работы. В случае распределённой или отказоустойчивой схемы установки программа запускается на одном из серверов, остальные серверы перечисляются в её настройках.
Внесение изменений в настройки работающей системы должно производиться через интерфейс программы установки. В этом случае они будут корректно внесены в соответствующие конфигурационные файлы системы и сохранены при обновлении системы.
Обратите внимание!
Программа установки должна запускаться под сервисной учётной записью в её окружении, в данном примере это пользователь wisla.
В ходе тестирования выявлено, что при развёртывании окна терминала на весь экран программа установки не запустится.
Чтобы запустить установку не разворачивайте окно на весь экран!
Если установка системы будет аварийно прервана или завершена с ошибкой, журналы установки можно найти в каталоге с программой (install*.log, runtime.log). Информация о ходе установки также доступна в буфере эмулятора терминала.
Переключитесь на каталог, в который была скопирована программа установки:
cd /home/wisla
Запустите программы установки от имени пользователя wisla выполнив команду ниже:
./wisla*.run
Если программа установки не стартует попробуйте выполнить export TERM=xterm перед её запуском.
Если приложение не запускается, следует проанализировать сообщения об ошибках и созданные в текущем каталоге log-файлы.
Навигация в программе установки осуществляется с помощью стрелок управления курсором, клавиш Home, End, Tab, Esc и Enter.
Если требуется аварийно прервать работу программы, можно использовать комбинацию клавиш CTRL+C, для штатного завершения программы установки следует использовать кнопку Exit.
В процессе установки вам также необходимо проверить следующие конфигурации:
Окно 'Installer startup configuration'
Проверьте параметры 'Install master', при установке всех компонентов на один сервер его имя должно быть указано здесь.
Окно 'Select action'
Нажмите 'Install'.
Окно 'JRE* configuration'
Нажмите 'OK'.
Окно 'Postgresql* configuration'
Проверить параметр 'Trust host or network'.
Нужно проверить и заполнить Trusted network/host, иначе будут проблемы с подключением Postgres и патчами.
Окно 'Wildfly* configuration'
Проверить значение memory size.
Окно 'Hadoop* configuration'
Проверить имя hostname в 'HDFS master' и 'Tracker host' fields'.
Окно 'HBase* configuration'
Проверить имя hostname в 'Zookeeper quorum'.
Окно 'wiSLA* data collection configuration'
Если планируется использование зондов wiProbe, нужно прокрутить список и изменить настройку «wiProbe destination». В ней задаётся адрес, который будет использоваться зондом для отправки данных в систему wiSLA, в форме URL. Остальные параметры менять без необходимости не рекомендуется.
Окно 'wiSLA* LDAP configuration'
Если не планируется интегрировать систему с MS Active Directory или OpenLDAP Server, рекомендуется оставить значения по умолчанию.
Окно 'wiSLA* resources configuration'
Убедиться, что имя hostname указано в URL.
Окно 'wiSLA* notification and ASI configuration'
Требуется указать параметры подключения к почтовому серверу. Если этого не сделать, новые пользователи не смогут получать письма о добавлении учётной записи и другие уведомления, отсылаемые на email. Также здесь можно включить отправку SNMP-уведомлений по определённым событиям.
Настройка email-уведомлений:
1.Необходимо выбрать почту с которой буду отправляться уведомления и выполнить настройку по инструкции.
2.Устанавливаем конфиги:
- Notification enabled: true
- Profile-status notification enabled: false
- Service notification enabled: false
- Wisla notification op_link: wisla
- Wisla notification cp_link: wisla
- Wisla inter-hop master:
- Wisla inter-hop slaves:
- Wisla inter-hop slave: false
- Mail host: smtp.{домен почты}.ru
- Mail from: email (например: test_push@yandex.ru)
- Mail from alias: email без домена (например: test_push )
- Mail port: 587
- Mail protocol: smtp
- Mail smtp auth: true
- Mail smtp starttls: true
- Mail user: email с которого планируется отправка уведомлений (например: test_push@yandex.ru)
- Mail password: "пароль приложения" сформированный на шаге 1
- ASI notification enabled: false
- ASI hendlers: genericSnmp
- ASI SNMP distation:
- Events limit for notification: 10
- No data duration: 10
- Reports use en filenames: false
Окно 'wiSLA* operator portal configuration'
Обращаем ваше внимание, если вы получаете доступ к порталу с помощью проброса портов или через прокси сервер, то вам необходимо отредактировать пункт HOST и в Whitelisted domains установить необходимые IP-адреса.
- Подтверждение настроек
На этом этапе можно вернуться назад и внести исправления в настройки. После подтверждения начинается процесс установки.
Процесс установки
Во время установки в каталог /opt/wisla5 будут добавлены следующие компоненты:
- Zookeeper;
- Hadoop;
- HBase;
- PostgreSQL;
- Java Runtime Environment;
- WildFly Application Server;
- wiSLA Portal.
Процесс можно прервать, нажав CTRL+C, все настройки будут сброшены.
После завершения установки будет предложено добавить систему в список автозагрузки – нажмите кнопку Нет.
Обратите внимание!
В ходе тестирования выявлено, что на Astra Linux в некоторых сценариях не создается systemd unit, при возникновении данной проблемы нужно создать его руками.
Выполните команду ниже или создайте файл вручную с содержанием как на примере ниже:
cat << EOF > /etc/systemd/system/wisla.service
[Unit]
Description=Starts JBoss process with wiSLA 5 system
After=network-online.target
Requires=network-online.target
[Service]
Type=forking
RemainAfterExit=true
WorkingDirectory=/opt/wisla5
ExecStart=/opt/wisla5/scripts/wisla5.sh start
ExecStop=/opt/wisla5/scripts/wisla5.sh stop
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable wisla.service
13. Запуск WiSLA
Выйдите из программы установки и дождитесь завершения процесса в фоне.
Первичный запуск системы может занимать до двух минут, ход установки можно отследить в журналах работы:
less -f /opt/wisla5/wildfly/current/standalone/log/server.log
less -f /opt/wisla5/wildfly/current/standalone/log/communicator.log
Маркером успешного запуска является следующее сообщение в журнале (server.log):
INFO [com.wellink.wisla.communicator.impl.state.AvailabilitySystemStateSingletonImpl] (http-0.0.0.0-0.0.0.0-8080-1) !*** THE ALL wiSLA
COMPONENTS ARE FULLY DEPLOYED, INTERCONNECTED AND READY TO WORK! ***!
13:48:30,028 INFO [com.wellink.wisla.communicator.impl.state.AvailabilitySystemStateSingletonImpl] (http-0.0.0.0-0.0.0.0-8080-1) !********************
**********************************************************************!
Теперь можно запустить веб-браузер и открыть страницу системы указав IP-адрес сервера и порт.
В данном примере система будет доступна по адресу http://192.168.159.136:8080.
Обновление wiSLA
Важно: После обновления на версию wiSLA 5.2.13 необходимо пересохранить пароль для доступа к серверу LDAP и пароль приложений для почтовых уведомлений. Необходимо зайти под учетной записью "Admin" и в настройках системы поменять пароль Email & Ldap на тот же, что и был и сохранить. Это необходимо, т.к. начиная с версии 5.2.13 был изменен алгоритм шифрования паролей.
Рекомендуется обновляться с предыдущей минорной версии wiSLA (5.1->5.2->5.2.1->5.2.2->5.2.3).\
1) Запустить программу установки wiSLA 5.2.3;
2) В основном меню выбрать пункт Update;
2.1) Подтвердить или отклонить создание резервной копии (рекомендуется сделать);
2.2) Подтвердить остановку компонентов wiSLA;
2.3) После загрузки настроек системы, в каждом окне проверить настройки (по необходимости внести правки) и подтвердить для продолжение установки;
2.4) После обновления и запуска всех компонентов системы подтвердить или отклонить добавление wiSLA в автозагрузку;
3) После успешного запуска сервера приложений, выполнить индексацию (Maintenance > wiSLA > Reindex (Не путать со Standalone Reindex!);
4) Открыть портал, проверить работу системы;
5) Очистить кэш браузера на всех рабочих местах.
Возможные ошибки в процессе обновления:
Иногда при обновлении до новой версии может зависнуть сервис wildfly, на это будут указывать следующие записи в журнале server.log:
13:24:21,676 ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 2)
WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "wisla-engine-5.2.4-SNAPSHOT.war")]) - failure description: {"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"wisla-engine-5.2.4-SNAPSHOT.war\".undertow-deployment" => "java.lang.RuntimeException: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'expireSessionSchedulerSingleton': Unsatisfied dependency expressed through field 'eventLoggerService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'eventLoggerService' defined in class path resource [audit/conf/spring/services.xml]: Cannot resolve reference to bean 'hibernateAuditLogAppender' while setting bean property 'appenders' with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateAuditLogAppender' defined in class path resource [audit/conf/spring/services.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [engine/conf/spring/datasource.xml]: Invocation of init method failed; nested exception is org.hibernate.search.exception.SearchException: HSEARCH000103: Unable to initialize IndexManager named 'sap'
Caused by: java.lang.RuntimeException: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'expireSessionSchedulerSingleton': Unsatisfied dependency expressed through field 'eventLoggerService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'eventLoggerService' defined in class path resource [audit/conf/spring/services.xml]: Cannot resolve reference to bean 'hibernateAuditLogAppender' while setting bean property 'appenders' with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateAuditLogAppender' defined in class path resource [audit/conf/spring/services.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [engine/conf/spring/datasource.xml]: Invocation of init method failed; nested exception is org.hibernate.search.exception.SearchException: HSEARCH000103: Unable to initialize IndexManager named 'sap'
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'expireSessionSchedulerSingleton': Unsatisfied dependency expressed through field 'eventLoggerService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'eventLoggerService' defined in class path resource [audit/conf/spring/services.xml]: Cannot resolve reference to bean 'hibernateAuditLogAppender' while setting bean property 'appenders' with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateAuditLogAppender' defined in class path resource [audit/conf/spring/services.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [engine/conf/spring/datasource.xml]: Invocation of init method failed; nested exception is org.hibernate.search.exception.SearchException: HSEARCH000103: Unable to initialize IndexManager named 'sap'
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'eventLoggerService' defined in class path resource[audit/conf/spring/services.xml]: Cannot resolve reference to bean 'hibernateAuditLogAppender' while setting bean property 'appenders' with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateAuditLogAppender' defined in class path resource [audit/conf/spring/services.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [engine/conf/spring/datasource.xml]: Invocation of init method failed; nested exception is org.hibernate.search.exception.SearchException: HSEARCH000103: Unable to initialize IndexManager named 'sap' Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateAuditLogAppender' defined in class path resource [audit/conf/spring/services.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [engine/conf/spring/datasource.xml]: Invocation of init method failed; nested exception is org.hibernate.search.exception.SearchException: HSEARCH000103: Unable to initialize IndexManager named 'sap'
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [engine/conf/spring/datasource.xml]: Invocation of init method failed; nested exception is org.hibernate.search.exception.SearchException: HSEARCH000103: Unable to initialize IndexManager named 'sap'
Caused by: org.hibernate.search.exception.SearchException: HSEARCH000103: Unable to initialize IndexManager named 'sap'
Caused by: org.hibernate.search.exception.SearchException: Unable to open Lucene IndexReader for IndexManager sap
Caused by: org.apache.lucene.index.CorruptIndexException: file mismatch, expected id=42hlomvwa71vvwwn7vem94t0p, got=7mz5ojw75crmjs1kxhmc322p2 (resource=BufferedChecksumIndexInput(MMapIndexInput(path=\"/opt/wisla5/wildfly/wildfly-14.0.1.Final/bin/searchindexes/engine/sap/_q.si\")))"}}
Чтобы решить эту проблему удалите содержимое каталога /opt/wisla5/wildfly/wildfly-14.0.1.Final/bin/searchindexes/engine/sap/:
sudo rm -rf /opt/wisla5/wildfly/wildfly-14.0.1.Final/bin/searchindexes/engine/sap/*
Затем повторно запустите процесс обновления с помощью инсталлятора wisla, после обновления системы не забудьте запустить индексацию.
Если перед началом обновления требуется удалить данные из базы данных:
Иногда при обновлении wiSLA структура таблиц в БД может кардинально измениться и для корректной работы мониторинга потребуется повторная постановка инфраструктуры на мониторинг.
В данной ситуации нужно проделать следующие действия:
- Сделать резервную копию БД для возможности восстановления данных на другой машине со старой версией приложения;
- Остановите приложения wiSLA;
- Подключиться к БД используя клиент, например DBviewer;
- Переключиться на БД wisla и выполнить скрипт wisla_init_schema.sql;
- Затем выполнить скрипт wisla_init_schema.sql;
- После выполнения скриптов отключитесь от БД и вернитесь к терминалу сервера с инсталлером;
- Загрузите на сервер пустую БД wiSLA clear1.backup;
- Перейдите в раздел backup и загрузите пустую БД в базу в режиме восстановления;
- Загрузив БД перейдите к настройке PostgreSQL (Maintenance > PostrgeSQL) и запустите патч для создания необходимых таблиц;
- После того как таблицы будут сформированы запустите приложения wiSLA и проверьте работу веб-портала.
Установка wiSLA 5
Оглавление
Системные требования
Платформа:
- Физический сервер или виртуальная машина с поддержкой микроархитектуры x86-64;
- Объём накопителя не менее 40 ГБайт;
- Не менее 16 ГБ оперативной памяти;
- Совместимая операционная система.
Список поддерживаемых операционных систем:
- Ubuntu 24.04 LTS;
- Ubuntu 22.04 LTS;
- Ubuntu 20.04 LTS;
- Astra Linux 1.7.5;
Подготовка операционной системы
1. Загрузка файлов на сервер
Подключитесь к серверу через протокол SSH используя учётную запись пользователя с привилегированным доступом. Затем с помощью SFTP или scp скопируйте файлы программы wisla-pre-installation-program и инсталлятор wiSLA 5 на сервер, например в домашний каталог текущего пользователя.
2. Подготовка к запуску.
1. Перенесите архив в домашний каталог пользователя на целевом компьютере или сервере.
Пример архива расположенного в каталоге пользователя:
2. Распакуйте архив:
unzip wisla-pre-installation-program-2.1.zip -d wisla-pre-installation-program-2.1
3. Перейди в каталог программы:
cd wisla-pre-installation-program-2.1
4. Предоставьте программе права на выполнение:
sudo chmod +x preparing-os.start
3. Запуск программы.
Запустите программу с правами суперпользователя:
sudo ./preparing-os.start
После запуска откроется меню:
4. Подготовка операционной системы
1. В главном меню выберите пункт 1 и нажмите ENTER.
2. Программа запросит пароль для учётной записи Wisla. Введите новый пароль дважды.
3. При появлении запроса на изменение Hostname:
Если имя устраивает, введите Н
Если хотите изменить, введите Д , затем введите wisla.
4. Выберите тип обновления:
1 - с доступом в Интернет
2 - без доступа в Интернет
5. После завершения настройки введите пароль для генерации SSH-ключа.
6. Согласитесь на перезагрузку системы.
5. Установка Kafka
1. После перезагрузки снова перейдите в каталог с программой:
cd wish-pre-installation-program-2.1
2. Запустите программу
sudo ./preparing-os.start
3. В главном меню выберите пункт 2.
4. Выберите операционную систему (например, 1 для Astra Linux 1.7).
5. Дождитесь завершения установки.
После успешной установки вы увидите информацию о каталогах, портах и командах для управления Kafka.
6. Установка Wisla WIProbe Aggregator
1. В главном меню выберите пункт 3.
2. Введите адрес сервера Kafka в формате:
IP:PORT, например: 10.0.2.15:9092
3. Введите адрес Wisla в формате:
http://IP:PORT, например: http://10.0.2.15:8080/
4. Нажмите ENTER для начала установки
После завершения установки вы увидите информацию о каталогах и командах для управления службой.
7. Завершение работы
После успешной установки всех компонентов вы можете закрыть программу, нажав CTRL+C.
Ваша система полностью готова к работе с WISLA.
Если у вас возникнут вопросы, обратитесь в техническую поддержку.
Установка системы мониторинга wiSLA 5
1. Запуск программы установки
1. Завершив предварительную подготовку системы переключитесь на сервисную учётную запись wisla:
sudo su - wisla
2. Загрузите на сервер программу установки wiSLA 5 нужной версии с помощью утилиты scp или любым другим удобным для вас способом.
3. Затем добавьте права на выполнение:
sudo chmod +x ./wisla-5.2.*.run
Программа установки обеспечивает выполнение всех основных операций с системой и её компонентами: установку, настройку, обновление, удаление, запуск и остановку. Она также поддерживает резервное копирование и восстановление данных, а также предоставляет централизованный доступ к журналам компонентов.
В распределённых или отказоустойчивых конфигурациях программа установки запускается на одном из серверов, при этом остальные сервера указываются в её настройках.
Изменения конфигурации работающей системы следует вносить исключительно через интерфейс программы установки. Это гарантирует корректное обновление соответствующих конфигурационных файлов и их сохранение при последующих обновлениях системы.
Обратите внимание!
Программа установки должна запускаться под сервисной учётной записью и в её окружении, в данном примере это пользователь wisla.
Информация
В ходе тестирования выявлено, что при развёртывании окна терминала на весь экран программа установки не запустится.
Чтобы запустить установку не разворачивайте окно терминала на весь экран!
Если установка системы будет аварийно прервана или завершена с ошибкой, журналы установки можно найти в каталоге с программой (install*.log, runtime.log). Информация о ходе установки также доступна в буфере эмулятора терминала.
Запустите программу установки от имени пользователя wisla выполнив команду ниже:
./wisla-5.2.*.run
Если программа установки не стартует попробуйте выполнить export TERM=xterm перед её запуском.
Если приложение не запускается, следует проанализировать сообщения об ошибках и созданные в текущем каталоге журналы.
Информация
Навигация в программе установки осуществляется с помощью стрелок управления курсором, клавиш Home, End, Tab, Esc и Enter.
Если требуется аварийно прервать работу программы, можно использовать комбинацию клавиш CTRL+C, для штатного завершения программы установки следует использовать кнопку Exit.
2. Работа с программой установки wiSLA 5
Во время установки в каталог /opt/wisla5 будут добавлены следующие компоненты:
- Zookeeper;
- Hadoop;
- HBase;
- PostgreSQL;
- Java Runtime Environment;
- WildFly Application Server;
- wiSLA Portal.
Процесс можно прервать, нажав CTRL+C, все настройки будут сброшены.
1. Окно "Installer startup configuration"
Проверьте параметры "Install master", при установке всех компонентов на один сервер его имя должно быть указано здесь.
2. Окно "Old installation was not found. Select an action"
Выберете вариант "Install" чтобы перейти к дальнейшей настройке.
3. Окно "Topology configuration"
При установке на сервер в одном экземпляре необходимо указать его hostname для всех модулей системы, при работе в кластере необходимо указать полную топологию.
Задав топологию запустится процесс инициализации модулей.
4. Окно "Versions select"
Выберете нужную версию чтобы продолжить.
5. Окно "Zookeeper Configuration"
6. Окно "Hadoop configuration"
Проверьте имя hostname в "Hadoop cluster name" и порт, при развёртывании одного экземпляра укажите localhost.
7. Окно "HBase configuration"
Проверьте имя hostname в "Zookeeper quorum".
8. Окно "Postgresql configuration"
Нужно проверить и заполнить "Trusted network/host", иначе будут проблемы с подключением Postgresql и патчами.
* Чтобы принимать все подключения укажите значение all или 0.0.0.0/0.
9. Окно "Wildfly configuration"
Проверьте значение "Heap size", для локальной установки хватит стандартного значения 2048, при мониторинге инфраструктуры с большим числом устройств рекомендуется увеличить данное значение. При работе в кластере минимальное значение должно быть 8192.
10. Окно "wiSLA Topology Configuration"
11. Окно "wiSLA Data Collection Configuration"
Нужно проверить и заполнить wiProbe destination, указать адрес агрегатора
wiProbe destination = http://IP_СЕРВЕРА:18080/aggregator
12. Окно "wiSLA Resources Configuration"
Укажите адрес и порт службы Kafka
Убедитесь, что имя hostname указано в URL.
13. Окно "wiSLA Notification and ASI Configuration"
Если по умолчанию параметр "wiSLA notification enabled" принимает значение "false" измените на "true"
На данном этапе необходимо указать параметры почтового клиента, если этого не сделать, тогда новые пользователи не смогут получать письма о добавлении учётной записи и другие уведомления, отсылаемые на email.
Также здесь можно включить отправку SNMP-уведомлений по определённым событиям.
14. Окно "wiSLA Cloud System"
15. Окно "Operator Portal Configuration"
Обратите внимание!
Если вы получаете доступ к порталу с помощью проброса портов или через прокси сервер, тогда вам необходимо отредактировать пункт HOST и в Whitelisted domains установить необходимые IP-адреса.
16. Окно "Confirm the installation"
На этом этапе вы ещё можете вернуться назад и внести исправления в настройки, после подтверждения начинается процесс установки.
17. Окно "Add wiSLA to the autorun list"
После установки системы будет предложено добавить службу в список автозагрузки, нажмите кнопку Yes, если вы установили её на Debian или Ubuntu.
Astra Linux
Если вы используете Astra Linux нажмите кнопку No, т.к. systemd unit для wiSLA 5 был создан ранее программой предварительной настройки узла.
После установки wiSLA 5 вам необходимо вручную добавить службу в автозагрузку, для этого выполните приведённую ниже команду:
sudo systemctl enable wisla.service
Система мониторинга wiSLA 5 установлена на ваш сервер.
3. Запуск wiSLA
Выйдите из программы установки и дождитесь завершения процесса в фоне.
Первичный запуск системы может занимать до двух минут, ход установки можно отследить в журналах работы:
less -f /opt/wisla5/wildfly/current/standalone/log/server.log
less -f /opt/wisla5/wildfly/current/standalone/log/communicator.log
Маркером успешного запуска является следующее сообщение в журнале (server.log):
INFO [com.wellink.wisla.communicator.impl.state.AvailabilitySystemStateSingletonImpl] (http-0.0.0.0-0.0.0.0-8080-1) !*** THE ALL wiSLA
COMPONENTS ARE FULLY DEPLOYED, INTERCONNECTED AND READY TO WORK! ***!
13:48:30,028 INFO [com.wellink.wisla.communicator.impl.state.AvailabilitySystemStateSingletonImpl] (http-0.0.0.0-0.0.0.0-8080-1) !********************
**********************************************************************!
Теперь можно запустить веб-браузер и открыть страницу системы указав доменное имя или IP-адрес сервера и порт.
В данном примере система будет доступна по адресу https://wisla.it-superman.keenetic.pro.
Инструкция по ручному развертыванию Kafka в кластерном режиме для Wisla
В данном руководстве описано как подготовить систему и развернуть Kafka в кластерном режиме для работы с Wisla в отказоустойчивом контуре.
Предварительные условия:
1.Архив OpenJDK 17 ()
2.Архив Kafka 2.13-4.1.1
3.Как минимум 3 сервера для развертывания
4.Пользователь wisla
Если пользователь wisla еще не существует в системе его необходимо создать используя следующие команды пошагово.
1.Команда создания пользователя:
sudo useradd -d /home/wisla -m -s /bin/bash wisla
2.Команда установки пароля:
sudo passwd wisla
3.Добавление пользователя в файлы sudoers:
echo "wisla ALL=(ALL:ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/wisla
4.Настройка системных лимитов для пользователя wisla:
# Создаем файл лимитов
cat > /etc/security/limits.d/wisla << 'EOF'
wisla soft nofile 32768
wisla hard nofile 32768
wisla soft nproc 32768
wisla hard nproc 32768
EOF
5. Добавляем в PAM (если нет):
echo "session required pam_limits.so" >> /etc/pam.d/common-session
Этап 1. Подготовка каталогов на всех узлах
1.Создание каталогов:
sudo mkdir -p /opt/kafka
sudo mkdir -p /var/lib/kafka
sudo mkdir -p /var/log/kafka
2.Выдача прав:
sudo chown -R wisla:wisla /opt/kafka
sudo chown -R wisla:wisla /var/lib/kafka
sudo chown -R wisla:wisla /var/log/kafka
3.Проверка прав:
ls -ld /opt/kafka /var/lib/kafka /var/log/kafka
Этап 2. Копирование и распаковка Java на всех узлах
1.Скопируем архив Java в домашнюю директорию wisla используя следующую команду:
cp OpenJDK17U-jdk_x64_linux_hotspot_17.0.17_10.tar.gz /home/wisla/
2.Смена пользователя у архива:
sudo chown wisla:wisla /home/wisla/OpenJDK17U-jdk_x64_linux_hotspot_17.0.17_10.tar.gz
3.Распаковка архива в /opt/kafka:
- Переходим в каталог kafka используя следующую команду:
cd /opt/kafka - Распаковка архива:
tar -xzf /home/wisla/OpenJDK17U-jdk_x64_linux_hotspot_17.0.17_10.tar.gz - Проверка распаковки:
ls -la /opt/kafka/
4.Настройка переменных окружения:
export JAVA_HOME="/opt/kafka/jdk-17.0.17+10"
export PATH="$JAVA_HOME/bin:$PATH"
export KAFKA_HOME="/opt/kafka"
5.Применение изменений:
source ~/.bashrc
6.Проверка:
java -version
Этап 3. Копирование и распаковка Kafka на всех узлах
1.Скопируем архив Kafka в домашнюю директорию wisla используя следующую команду:
cp kafka_2.13-4.1.1.tgz /opt/kafka/
2.Смена пользователя у архива:
sudo chown wisla:wisla /opt/kafka/kafka_2.13-4.1.1.tgz
3.Распаковка архива в /opt/kafka:
- Переходим в каталог kafka используя следующую команду:
cd /opt/kafka - Распаковка архива:
tar -xzf kafka_2.13-4.1.1.tgz --strip-components=1 - Проверка распаковки:
ls -la /opt/kafka/bin/
Этап 4. Генерация уникального ID кластера (только на 1 сервере)
1.Переходим в каталог kafka используя следующую команду:
cd /opt/kafka
2.Запускаем скрипт генерации ID:
./bin/kafka-storage.sh random-uuid
Записать полученный ID, например:
Этап 5. Конфигурация кластера на всех узлах
1.Настройка конфигурации на сервере 1:
cat > /opt/kafka/config/kraft/server.properties << 'EOF'
# Базовые настройки
process.roles=broker,controller
node.id=1
# Кворум контроллеров (3 узла для отказоустойчивости)
controller.quorum.voters=1@wisla01:9093,2@wisla02:9093,3@wisla03:9093
# Сетевые настройки wisla01
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
advertised.listeners=PLAINTEXT://wisla01:9092
advertised.controller.listener.name=CONTROLLER
# Директории данных
log.dirs=/var/lib/kafka
# Настройки репликации для 3 узлов
num.partitions=3
default.replication.factor=3
min.insync.replicas=2
# Системные топики (репликация на все узлы)
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=2
# Настройки отказоустойчивости контроллеров
controller.listener.names=CONTROLLER
controller.quorum.election.timeout.ms=1000
controller.quorum.fetch.timeout.ms=2000
controller.quorum.request.timeout.ms=2000
# Настройки брокера
num.io.threads=8
num.network.threads=3
num.replica.fetchers=2
# Настройки логов
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
log.flush.interval.messages=10000
log.flush.interval.ms=1000
# Настройки безопасности (опционально)
# ssl.client.auth=required
# ssl.keystore.location=/path/to/keystore.jks
# ssl.keystore.password=password
# ssl.truststore.location=/path/to/truststore.jks
# ssl.truststore.password=password
EOF
2.Настройка конфигурации на сервере 2:
cat > /opt/kafka/config/kraft/server.properties << 'EOF'
# Базовые настройки
process.roles=broker,controller
node.id=2
# Кворум контроллеров
controller.quorum.voters=1@node1:9093,2@node2:9093,3@node3:9093
# Сетевые настройки node2
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
advertised.listeners=PLAINTEXT://node2:9092
advertised.controller.listener.name=CONTROLLER
# Директории данных
log.dirs=/var/lib/kafka
# Настройки репликации
num.partitions=3
default.replication.factor=3
min.insync.replicas=2
# Системные топики
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=2
# Настройки контроллеров
controller.listener.names=CONTROLLER
controller.quorum.election.timeout.ms=1000
controller.quorum.fetch.timeout.ms=2000
controller.quorum.request.timeout.ms=2000
# Настройки брокера
num.io.threads=8
num.network.threads=3
num.replica.fetchers=2
# Настройки логов
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
log.flush.interval.messages=10000
log.flush.interval.ms=1000
EOF
3.Настройка конфигурации на сервере 3:
cat > /opt/kafka/config/kraft/server.properties << 'EOF'
# Базовые настройки
process.roles=broker,controller
node.id=3
# Кворум контроллеров
controller.quorum.voters=1@wisla01:9093,2@wisla02:9093,3@wisla03:9093
# Сетевые настройки wisla03
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
advertised.listeners=PLAINTEXT://wisla03:9092
advertised.controller.listener.name=CONTROLLER
# Директории данных
log.dirs=/var/lib/kafka
# Настройки репликации
num.partitions=3
default.replication.factor=3
min.insync.replicas=2
# Системные топики
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=2
# Настройки контроллеров
controller.listener.names=CONTROLLER
controller.quorum.election.timeout.ms=1000
controller.quorum.fetch.timeout.ms=2000
controller.quorum.request.timeout.ms=2000
# Настройки брокера
num.io.threads=8
num.network.threads=3
num.replica.fetchers=2
# Настройки логов
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
log.flush.interval.messages=10000
log.flush.interval.ms=1000
EOF
4.Проверка конфигураций:
cat /opt/kafka/config/kraft/server.properties
Этап 6. Инициализация хранилищ на всех узлах
1.На каждом сервере по очереди
- Экспорт кластер ID:
export CLUSTER_ID="wisla-3node-cluster-12345" - Переходим в каталог kafka:
cd /opt/kafka - Добавляем кластер ID:
./bin/kafka-storage.sh format \ -t $CLUSTER_ID \ -c /opt/kafka/config/kraft/server.properties - Проверяем
cat /var/lib/kafka/meta.properties
Этап 7. Создаем сервис службы Kafka на всех узлах
1.Создаем Unit:
sudo cat > /etc/systemd/system/kafka.service << 'EOF'
[Unit]
Description=Apache Kafka Service (Kraft mode) - Wisla 3-Node Cluster
After=network.target
Wants=network.target
[Service]
Type=simple
User=wisla
Group=wisla
WorkingDirectory=/opt/kafka
Environment="JAVA_HOME=/opt/kafka/jdk-17.0.17+10"
Environment="PATH=/opt/kafka/jdk-17.0.17+10/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Environment="CLUSTER_ID=wisla-3node-cluster-12345"
Environment="KAFKA_HEAP_OPTS=-Xmx4G -Xms4G"
Environment="KAFKA_JVM_PERFORMANCE_OPTS=-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -Djava.awt.headless=true"
Environment="KAFKA_OPTS=-Dlog4j.configuration=file:/opt/kafka/config/log4j.properties"
# Инициализация хранилища при первом запуске
ExecStartPre=/bin/bash -c "if [ ! -f /var/lib/kafka/meta.properties ]; then echo 'Инициализация хранилища для кластера...' && /opt/kafka/bin/kafka-storage.sh format -t $CLUSTER_ID -c /opt/kafka/config/kraft/server.properties; fi"
# Запуск Kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/kraft/server.properties
# Остановка
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
# Логи
StandardOutput=journal
StandardError=journal
SuccessExitStatus=0 143
# Перезапуск при сбоях
Restart=on-failure
RestartSec=10
# Ограничения
LimitNOFILE=65536
LimitNPROC=65536
[Install]
WantedBy=multi-user.target
EOF
2.Создание конфигурации log4j:
cat > /opt/kafka/config/log4j.properties << 'EOF'
log4j.rootLogger=INFO, stdout, kafkaAppender
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c)%n
log4j.appender.kafkaAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.kafkaAppender.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.kafkaAppender.File=/var/log/kafka/kafka.log
log4j.appender.kafkaAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.kafkaAppender.layout.ConversionPattern=[%d] %p %m (%c)%n
log4j.logger.kafka=INFO
log4j.logger.kafka.network.RequestChannel$=WARN
log4j.logger.kafka.server.KafkaApis=WARN
log4j.logger.org.apache.zookeeper=WARN
log4j.logger.org.I0Itec.zkclient=WARN
EOF
Этап 8. Создание скриптов управления кластером
1. Создаем скрипт запуска кластера на первом сервере:
sudo cat > /usr/local/bin/kafka-cluster-start << 'EOF'
#!/bin/bash
echo "Запуск кластера Kafka на всех узлах..."
# Запуск на локальном узле
systemctl start kafka
echo "Node $(hostname): Kafka запущен"
# Если настроен SSH-доступ к другим узлам, можно добавить:
# ssh wisla@wisla02 "systemctl start kafka"
# ssh wisla@wisla03 "systemctl start kafka"
# echo "wisla02: Kafka запущен"
# echo "wisla03: Kafka запущен"
echo "Кластер Kafka (3 узла) запущен"
echo "Для проверки выполните: kafka-cluster-status"
EOF
2.Создаем скрипт остановки кластера на первом сервере:
sudo cat > /usr/local/bin/kafka-cluster-stop << 'EOF'
#!/bin/bash
echo "Остановка кластера Kafka..."
# Остановка в правильном порядке (сначала реплики, потом лидеры)
systemctl stop kafka
echo "Node $(hostname): Kafka остановлен"
echo "Кластер Kafka остановлен"
EOF
3.Создание скрипта проверки статуса на первом сервере:
sudo cat > /usr/local/bin/kafka-cluster-status << 'EOF'
#!/bin/bash
echo "=== Статус кластера Kafka (3 узла) ==="
echo ""
echo "Локальный узел ($(hostname)):"
systemctl status kafka --no-pager | grep -A 3 "Active:"
echo ""
echo "Для проверки репликации выполните на любом узле:"
echo " cd /opt/kafka && ./bin/kafka-topics.sh --describe --bootstrap-server wisla01:9092"
echo ""
echo "Для просмотра логов: sudo journalctl -u kafka -f"
EOF
4.Создание скрипта управления топиками:
sudo cat > /usr/local/bin/kafka-topic-manage << 'EOF'
#!/bin/bash
KAFKA_HOME="/opt/kafka"
BOOTSTRAP_SERVER="wisla01:9092,wisla02:9092,wisla03:9092"
case $1 in
create)
echo "Создание топика: $2"
$KAFKA_HOME/bin/kafka-topics.sh --create \
--bootstrap-server $BOOTSTRAP_SERVER \
--replication-factor 3 \
--partitions 3 \
--topic $2
;;
list)
echo "Список топиков:"
$KAFKA_HOME/bin/kafka-topics.sh --list \
--bootstrap-server $BOOTSTRAP_SERVER
;;
describe)
echo "Описание топика: $2"
$KAFKA_HOME/bin/kafka-topics.sh --describe \
--bootstrap-server $BOOTSTRAP_SERVER \
--topic $2
;;
delete)
echo "Удаление топика: $2"
$KAFKA_HOME/bin/kafka-topics.sh --delete \
--bootstrap-server $BOOTSTRAP_SERVER \
--topic $2
;;
*)
echo "Использование: $0 {create|list|describe|delete} [topic-name]"
echo "Пример:"
echo " $0 create wisla-topic"
echo " $0 list"
echo " $0 describe wisla-topic"
echo " $0 delete wisla-topic"
;;
esac
EOF
5.Предоставление прав на исполнение:
sudo chmod +x /usr/local/bin/kafka-*
6. Настройка /etc/hosts
sudo cat >> /etc/hosts << 'EOF'
# Kafka Cluster Nodes
192.168.1.101 Wisla01
192.168.1.102 Wisla02
192.168.1.103 Wisla03
EOF
7.Настройка брандмауэра (Опционально):
sudo ufw allow 9092/tcp # Client connections
sudo ufw allow 9093/tcp # Controller connections
sudo ufw allow 9094/tcp # Inter-broker connections (если настроены)
Этап 9. Запуск кластера
1.Перезагрузка systemd на всех узлах:
sudo systemctl daemon-reload
2.Добавление в автозапуск на всех узлах:
sudo systemctl enable kafka
3.Запуск кластера (ВАЖНО: запускать на всех узлах в течение 30 секунд):
# На wisla01:
sudo systemctl start kafka
# На wisla02 (в течение 30 секунд после wisla01):
sudo systemctl start kafka
# На wisla03 (в течение 30 секунд после wisla02):
sudo systemctl start kafka
4.Проверка статуса службы:
sudo systemctl status kafka
Дополнительная проверка:
Так же после установки и запуска службы Kafka можно создать скрипт проверки статусов работы кластера Kafka.
1.Создать файл скрипта командой:
sudo nano /usr/local/bin/kafka-cluster-monitor
2.Предоставить права на исполнение:
sudo chmod +x /usr/local/bin/kafka-cluster-monitor
3.Добавить скрипт в файл
#!/bin/bash
echo "========================================="
echo " Мониторинг кластера Kafka (3 узла) "
echo "========================================="
echo ""
echo "1. СТАТУС СЛУЖБ:"
for node in cluster01 cluster02 cluster03; do
if [ "$node" = "cluster01" ]; then
status=$(sudo systemctl is-active kafka 2>/dev/null || echo "unknown")
else
status=$(ssh wisla@$node "sudo systemctl is-active kafka 2>/dev/null" 2>/dev/null || echo "unknown")
fi
case $status in
active) color="\e[32m" ;;
inactive|failed) color="\e[31m" ;;
unknown) color="\e[33m" ;;
*) color="\e[33m" ;;
esac
echo -e " $node: ${color}${status}\e[0m"
done
echo -e "\n2. СПИСОК БРОКЕРОВ:"
cd /opt/kafka 2>/dev/null
if [ -f /opt/kafka/bin/kafka-broker-api-versions.sh ]; then
/opt/kafka/bin/kafka-broker-api-versions.sh \
--bootstrap-server cluster01:9092 2>/dev/null | grep -E "^cluster" | head -3
else
echo " Kafka не установлен локально"
fi
echo -e "\n3. СПИСОК ТОПИКОВ:"
cd /opt/kafka 2>/dev/null
if [ -f /opt/kafka/bin/kafka-topics.sh ]; then
/opt/kafka/bin/kafka-topics.sh \
--list --bootstrap-server cluster01:9092 2>/dev/null | head -10
else
echo " Kafka не установлен локально"
fi
echo -e "\n4. ПРОВЕРКА РЕПЛИКАЦИИ:"
cd /opt/kafka 2>/dev/null
if [ -f /opt/kafka/bin/kafka-topics.sh ]; then
result=$(/opt/kafka/bin/kafka-topics.sh \
--describe --bootstrap-server cluster01:9092 \
--under-replicated-partitions 2>/dev/null)
if echo "$result" | grep -q "Topic"; then
echo " Есть недореплицированные партиции"
else
echo " Все партиции реплицированы"
fi
else
echo " Kafka не установлен локально"
fi
echo -e "\n5. ПОСЛЕДНИЕ СОБЫТИЯ:"
for node in cluster01 cluster02 cluster03; do
if [ "$node" = "cluster01" ]; then
errors=$(sudo journalctl -u kafka --since '5 minutes ago' 2>/dev/null | grep -E 'ERROR|WARN' | tail -2)
else
errors=$(ssh wisla@$node "sudo journalctl -u kafka --since '5 minutes ago' 2>/dev/null | grep -E 'ERROR|WARN' | tail -2" 2>/dev/null)
fi
if [ -n "$errors" ]; then
echo " $node:"
echo "$errors" | sed 's/^/ /'
fi
done
echo -e "\n========================================="
echo " Кластер готов к работе!"
echo "========================================="
4.Запустить скрипт для проверки
./kafka-cluster-monitor
Настройка Kafka для работы с wiSLA (и с wiProbe Aggregator)
1. Установка Docker
Перед началом работы необходимо убедиться, что Docker установлен и работает.
Для систем без выхода в интернет
Скачайте архив Docker.zip и распакуйте из него нужные версии deb-пакетов.
Далее вам необходимо загрузить на сервер следующие пакеты:
- containerd.io;
- docker-ce;
- docker-ce-cli;
- docker-buildx-plugin.
Загрузив файлы на сервер установите Docker-engine из бинарных файлов выполнив следующую команду:
sudo dpkg -i ./containerd.io_1.6.9-1_amd64.deb ./docker-ce_23.0.6-1~debian.10~buster_amd64.deb \
./docker-ce-cli_24.0.2-1~debian.10~buster_amd64.deb ./docker-buildx-plugin_0.10.5-1~debian.10~buster_amd64.deb
Проверка наличия Docker:
docker --version
Установка Docker (для Ubuntu/Debian):
Если Docker не установлен, выполните следующие команды:
sudo apt-get update
sudo apt-get install docker.io docker-compose
sudo systemctl enable docker
sudo systemctl start docker
Добавление пользователя в группу docker:
Чтобы избежать необходимости использовать sudo при каждом вызове Docker:
sudo usermod -aG docker $USER
newgrp docker
Примечание для Astra Linux:
В Astra Linux установка Docker имеет специфические особенности, особенно в изолированных средах без доступа к интернету. Рекомендуется ознакомиться с инструкцией: Установка wiCore без доступа к сети интернет
2. Развертывание Kafka через Docker Compose
2.1 Создайте файл docker-compose.yml со следующим содержимым и замените в KAFKA_CFG_ADVERTISED_LISTENERS адрес 127.0.0.1 на актуальный IP-адрес сервера wiSLA:
Пути к докер манифестам bitnami обновлены в связи с недоступностью новых, Bitnami объявила о переходе многих своих Docker-образов в статус "legacy".
Актуальные данные файла docker-compose.yml на 01.10.2025:
version: '3.8'
services:
zookeeper:
image: docker.io/bitnamilegacy/zookeeper:3.9
container_name: zookeeper
ports:
- "2187:2181"
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
volumes:
- "zookeeper_data:/bitnami/zookeeper"
restart: unless-stopped
kafka:
image: docker.io/bitnamilegacy/kafka:3.7
container_name: kafka
ports:
- "9092:9092"
- "29092:29092"
environment:
- KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
- ALLOW_PLAINTEXT_LISTENER=yes
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,INTERNAL://:29092
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.110.128:9092,INTERNAL://kafka:29092
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,INTERNAL:PLAINTEXT
- KAFKA_CFG_INTER_BROKER_LISTENER_NAME=INTERNAL
- KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true
- KAFKA_CFG_NUM_PARTITIONS=1
- KAFKA_CFG_DELETE_TOPIC_ENABLE=true
- KAFKA_CFG_LOG_RETENTION_HOURS=24
- KAFKA_CFG_LOG_SEGMENT_BYTES=5242880
- KAFKA_CFG_MESSAGE_MAX_BYTES=1048576
- KAFKA_CFG_SOCKET_REQUEST_MAX_BYTES=10485760
- KAFKA_CFG_LOG_RETENTION_BYTES=53687091
volumes:
- "kafka_data:/bitnami/kafka"
depends_on:
- zookeeper
restart: unless-stopped
kafka-console:
image: docker.redpanda.com/redpandadata/console:latest
container_name: kafka-console
ports:
- "8085:8080"
environment:
KAFKA_BROKERS: kafka:29092
SERVER_PORT: 8080
CONSOLE_LOG_LEVEL: info
CONSOLE_FEATURES_TOPIC_INSPECTOR: "true"
depends_on:
- kafka
restart: unless-stopped
volumes:
zookeeper_data:
driver: local
kafka_data:
driver: local
Необходимо прописать конфиг:
KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://{hostname}:9092
Данный параметр определяет адрес (listeners), по которым клиенты могут подключаться к брокеру Kafka.
Примечание: В этом же файле можно дополнительно настроить параметры работы системы, такие как срок хранения данных (по умолчанию - 24 часа), который может очищаться основываясь на указанный временной период, либо при максимальном объеме хранимой информации.
2.2 Запустите Kafka:
sudo docker-compose up -d
2.3 Проверьте работоспособности
Убедитесь, что запущены три контейнера: zookeeper, kafka, kafka-console:
sudo docker ps
Проверьте логи Kafka-контейнера (замените CONTAINER_ID_KAFKA на реальный ID):
sudo docker logs CONTAINER_ID_KAFKA
3. Установка и настройка wiProbe Aggregator (не обязательно)
3.1.Скачивание архива
Скачайте файл wisla-wiprobe-aggregator.jar с GitLab.
Подробная инструкция: Установка wiProbe Aggregator .
Примечание: Установка Nginx (который упоминался в статье) не обязательна, если не требуется балансировка нагрузки между несколькими агрегаторами.
3.2. Создайте каталог для логов (желательно рядом с агрегатором), иначе при запуске агрегатора будут ошибки, что нет прав для записи логов):
mkdir -p /home/wisla/aggrlog chown wisla:wisla /home/wisla/aggrlog
3.3. Настройка конфигурации JAR-файла
Откройте JAR-архив с помощью архиватора (например, 7-Zip, WinRAR) и отредактируйте:
BOOT-INF/classes/config/application.propertiesуказав в параметрахbootstrap.serversиwisla.dc-nodesнеобходимый ip:
server.servlet.context-path=/aggregator server.port=18080 aggregator.kafka-enabled=true aggregator.wisla-kafka.bootstrap.servers=ВАШ_IP:9092 # Например: 10.11.11.52:9092 aggregator.wisla-kafka.consumer-threads-count=4 aggregator.wisla.dc-nodes=http://ВАШ_DC_УЗЕЛ:8080 # Например: http://10.11.11.51:8080
BOOT-INF/classes/logback-spring.xmlв параметрах property и fileNamePattern прописать правильные пути для логов:
<property name="LOG_FILE" value="/home/wisla/aggrlog/aggregator.log" />
.....
<fileNamePattern>/home/wisla/aggrlog/aggregator.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
3.4. Настройка автозапуска через systemd
- Создайте systemd unit для автоматического запуска агрегатора, с указанием пути, где лежит агрегатор:
sudo nano /etc/systemd/system/aggr-jar.service
- Вставьте конфигурацию (адаптируйте пути и имя пользователя!):
[Unit]
Description=WiProbeAggregator
[Service]
ExecStart=/usr/bin/java -jar /home/smpsadmin/wisla-wiprobe-aggregator.jar
Restart=always
User=wisla
[Install]
WantedBy=multi-user.target
3.5. Запуск и проверка:
# Обновить конфигурацию
sudo systemctl daemon-reload
# Включить автозагрузку
sudo systemctl enable aggr-jar.service
# Запустить службу
sudo systemctl start aggr-jar.service
# Проверить статус
sudo systemctl status aggr-jar.service
# Просмотр логов (реальный режим)
journalctl -u aggr-jar.service -f
4. Настройка wiSLA для работы с Kafka и Aggregator
4.1. В wiSLA Data Collection Configuration укажите адрес агрегатора:
wtProbe destination = http://ВАШ_IP_АГРЕГАТОРА:18080/aggregator
4.2. В wiSLA Resources Configuration укажите адрес Kafka:
Kafka bootstrap servers = ВАШ_IP_КАФКА:9092
5. Особенности работы с Kafka и агрегатором
5.1. Варианты конфигурации системы
Standalone-режим (один сервер wiSLA):
- Полноценная работа с логированием
- Данные идут через агрегатор → Kafka
- Просмотр логов через Redpanda Console (http://IP_KAFKA:8085)
- Конфиг: WISLA_WIPROBE_DESTINATION = http://aggregator_ip:18080/aggregator
Рекомендуется для новых установок
Кластерный режим:
-
✅ Только с Kafka + агрегатор:
-
Агрегатор - модуль системы принимает данные (результаты измерений) от агентов/зондов (по rest) и складывает в соответствующие топики kafka.
-
Конфиг:
WISLA_WIPROBE_DESTINATION= http://aggregator_ip:18080/aggregator
-
5.2. Важные замечания
-
Redpanda доступен по указанному в
docker-compose.ymlпорту консоли кафки, через:http://IP_СЕРВЕРА:8085 -
Настройки
WISLA_WIPROBE_DESTINATION- url получаемая wiProbe при авторегистрации для отправки данных (результатов измерений). (url авторегистрации можно изменить только при выполнении команды slamon-conf url .....) -
В кластере и standalone обязательно указывайте адрес агрегатора (
http://aggregator_ip:18080/aggregator)
Примечание: Даже для standalone необходимо развернуть Kafka и агрегатор – это обеспечит единый подход к логированию и упростит переход на кластерную архитектуру в будущем.
Изменение одного или нескольких параметров wiSLA
Если требуется внести изменения в настройки уже установленной системы wiSLA, следует:
- Запустить программу установки. Перейти в основное меню. Внешний вид основного меню показан на рисунке 27.
Рис. 27 Главное меню программы установки в случае обнаружения установленной wiSLA
- Выбрать пункт меню «Config update». Если этого пункта меню нет в списке, установка была
выполнена некорректно или на первом экране при запуске программы установки были
указаны ошибочные данные. - Найти, изменить требуемый параметр.
- Выполнить перезапуск wiSLA.
Экранные формы хода установки (Работа с программой установки)
Программа установки позволяет выполнить установку, настройку, обновление, удаление, запуск и остановку системы и её компонентов, резервное копирование и восстановление, а также предоставляет централизованный доступ к журналам работы. В случае распределённой или отказоустойчивой схемы установки программа запускается на одном из серверов, остальные серверы перечисляются в её настройках.
Внесение изменений в настройки работающей системы должно производиться через интерфейс программы установки. В этом случае они будут корректно внесены в соответствующие конфигурационные файлы системы и сохранены при обновлении системы. Программа установки должна выполняться от имени пользователя wisla и в его окружении. Для корректной работы программы не рекомендуется разворачивать окно на весь экран. Если установка wiSLA будет аварийно прервана или завершена с ошибкой, журналы установки можно найти в рабочем каталоге (install*.log, runtime.log). Информация о ходе установки также доступна в буфере эмулятора терминала.
Запуск программы установки
Для запуска программы установки требуется:
1. Выполнить вход от имени пользователя wisla с инициализацией переменных окружения:
su -l wisla
2. Войти в каталог, куда была скопирована программа установки, и выполнить команду
запуска:
./wisla*.run
Должно открыться окно, показанное на рисунке 9
Рис. 9 Интерфейс программы установки: окно предварительных настроек
Если показанное на рисунке 9 окно не открылось, следует проанализировать сообщения об ошибках и созданные в текущем каталоге log-файлы.
Навигация в программе установки осуществляется с помощью стрелок управления курсором, клавиш Home, End, Tab, Esc и Enter. Если требуется аварийно прервать работу программы, можно использовать комбинацию клавиш CTRL+C. Для штатного завершения программы установки следует использовать кнопку Exit. После выхода из программы установки экраны с историей выполнения доступны в буфере терминала.
Перечень действий для установки wiSLA
Ниже будут описаны действия для установки wiSLA на один сервер. В примере сервер будет назван VM1.
1. Запустить программу установки.
2. На первом экране принять предложенные настройки, нажав Enter. Программа установки проанализирует окружение. Если это первый запуск, откроется меню, показанное на рисунке 10.
Рис. 10 Интерфейс программы установки: меню при первом запуске
Из заголовка окна видно, что система не обнаружила установленной wiSLA на данном сервере. В описании к действию Install отображается версия, которая будет установлена, и номер сборки. Номер сборки на рисунке (цифры после «build») приведён на момент написания документа и может отличаться, так как любое изменение программного кода сопровождается пересборкой дистрибутива. Для перехода к следующему шагу нужно нажать Enter (выполнив тем самым действие «Next»), на выделенной строке «Install».
3. На следующем экране задаётся топология будущего контура wiSLA. В примере, показанном на рисунке 11, установка всех компонентов проводится на один сервер VM1. В зависимости от размера окна некоторые настройки могут оказаться вне области видимости. Для доступа к ним нужно последовательно нажимать кнопку «вниз». По достижении самой нижней строки настройки на уровне границы окна под настройкой появляется отметка «100%».
Настройка топологии выполняется один раз при первой установке системы. Впоследствии смена топологии через настройки программы установки не приведёт к желаемому результату (потребуется скорректировать ряд настроек вручную или выполнить установку «с нуля» с восстановлением данных из резервной копии), поэтому рекомендуется внимательно проверять введённые данные на данном этапе установки. После выполнения настроек переход к следующему экрану осуществляется кнопкой Next.
Если требуется распределить компоненты по разным серверам, нужно указать соответствующие доменные или сетевые имена серверов. В этом случае нужно, чтобы между серверами был организован беспарольный доступ по ключу (SSH) для пользователя wisla.
ноды для апп серверов(сбор данных c slamon агентов) можно сделать 6 штук + op,cont по 2 штуки
Рис. 11 Интерфейс программы установки: топология
4. После задания топологии система может запросить пароль пользователя wisla. Это нужно для выполнения команды создания рабочего каталога в /opt, что требует привилегий sudo.
5. После создания рабочего каталога будет выполнена инициализация необходимых модулей и распаковка дистрибутива во временный каталог. Время ожидания зависит от производительности дисковой подсистемы сервера.
6. На следующем экране (рисунок 12) требуется выбрать версию и архитектуру Java Runtime Environment (как правило, используется архитектура x86_64, а версия представлена одна).
Рис.12 Интерфейс программы установки: выбор версии JRE
7. После распаковки и выбора версии JRE программа установки оценит параметры сервера и автоматически рассчитает значения по распределению оперативной памяти для различных компонентов системы. Впоследствии их можно будет изменить, однако это стоит делать только в том случае, когда администратору точно известно, что предложенные значения неоптимальны или ошибочны.
8. Настройка компонента Zookeper (рисунок 13). Рекомендуется оставить настройки, предложенные по умолчанию.
Рис.13 Интерфейс программы установки: настройки компонента Zookeeper
9. Настройка компонента Hadoop (рисунок 14). Рекомендуется оставить настройки, предложенные по умолчанию
Рис.14 Интерфейс программы установки: настройки компонента Hadoop
10. Настройка компонента HBase (рисунок 15). Рекомендуется оставить настройки, предложенные по умолчанию.
Рис.15 Интерфейс программы установки: настройки компонента HBase
11. Настройка компонента PostgreSQL (рисунок 16). Требуется прокрутить список настроек и изменить параметр «Trusted network/host». В примере сервер БД будет принимать все подключения от адресов 10.0.2.x. В случае неудачной настройки параметра установка wiSLA завершится ошибкой, так как сервер БД не сможет инициализировать БД.
Рис. 16 Интерфейс программы установки: настройки компонента PostgreSQL
12. Настройка компонента Wildfly (рисунок 17). Рекомендуется оставить настройки, предложенные по умолчанию.
Рис.17 Интерфейс программы установки: настройки сервера приложений Wildfly
13. Настройка топологии wiSLA. В примере все компоненты устанавливаются на сервер с именем VM1 (рисунок 18).
Рис. 18 Интерфейс программы установки: настройки топологии wiSLA
14. Настройки модуля сбора данных. Если планируется использование зондов wiProbe, нужно прокрутить список и изменить настройку «wiProbe destination». В ней задаётся адрес, который будет использоваться зондом для отправки данных в систему wiSLA, в форме URL (рисунок 19). Остальные параметры менять без необходимости не рекомендуется.
Рис. 19 Интерфейс программы установки: настройки модуля сбора данных
15. Настройки интеграции LDAP (в том числе, Active Directory), рисунок 20. Если LDAP не планируется использовать, рекомендуется оставить значения по умолчанию.
Рис. 20 Интерфейс программы установки: настройки интеграции LDAP
16. Настройки дополнительных ресурсов wiSLA. Рекомендуется оставить значения по умолчанию (рисунок 21).
При необходимости ограничения исторических данных рекомендуется изучить рисунок 21.1
Рис. 21 Интерфейс программы установки: настройки дополнительных ресурсов
a. "Store metrics data only for this period" - Данный параметр отвечает за период в течении которого будет осуществляться хранение данных. Указывается в днях. Стандартное значение не указано. Минимально возможное значение 0 дней. Дробные значения и значения <0 недопустимы.
Не рекомендуется устанавливать параметр "Store metrics data only for this period" = 0, в таком случае будут удалены все исторические данные показателей.
b. "Metrics eraser schedule period" - Данный параметр отвечает за периодичность запуска механизма удаления данных из нереляционной базы Hbase. Указывается в днях. Стандартное значение - 7 дней. Минимально возможное значение 1 день. Дробные значения и значения <0 недопустимы.
Не рекомендуется устанавливать параметр "Metrics eraser schedule period" = 0, в таком случае механизм удаления данных не будет запускаться.
*Реализована возможность гибкой настройки параметров удаления данных. Например, можно удалять данные раз в год, оставляя при этом данные за последний месяц (Значение для первого параметра = 30, для второго параметра = 365)
Рис. 21.1. Экран инсталлятора wiSLA (Вкладка wiSLA Resources Configuration)
17. Настройка рассылки уведомлений (рисунок 22). На этом экране, как минимум, требуется указать параметры подключения к почтовому серверу. Если этого не сделать, новые пользователи не смогут получать письма о добавлении учётной записи и другие уведомления, отсылаемые на адрес электронной почты. Также здесь можно включить отправку SNMP-уведомлений по определённым событиям. Обязательные для настройки параметры перечислены в таблице 3.
Рис.22 Интерфейс программы установки: настройка рассылки уведомлений
Таблица 3 – Параметры подключения к почтовому серверу.
|
Параметр |
Назначение |
Пример значения |
|
Notification enabled |
Включает рассылку по электронной почте |
true |
|
Mail host |
IP или DNS-адрес почтового сервера |
smtp.gmail.com |
|
Mail port |
Порт, прослушиваемый почтовым сервером |
587 |
|
Mail protocol |
Протокол, используемый почтовым сервером |
smtps |
|
Mail SMTP auth |
Включается, если почтовый сервер поддерживает smtp-авторизацию |
true |
|
Mail SMTP STARTTLS |
Включается, если почтовый сервер поддерживает SMTP STARTTLS |
true |
|
Mail user |
Имя пользователя, от имени которого выполняется рассылка |
wisla.vm1 |
|
Mail password |
Пароль пользователя, от имени которого выполняется рассылка |
пароль |
|
Tickets per notification |
Используется для группировки писем по инцидентам в блоки по N штук. Если установлена единица, на каждый инцидент отправляется по одному письму |
1 |
18. Настройки wiSLA.Cloud (рисунок 23) позволяют включить или выключить облачный режим системы wiSLA и выполнить его настройку. Подробно данный режим работы рассмотрен в разделе «Облачный режим wiSLA».
Рис. 23 Интерфейс программы установки: настройки wiSLA.Cloud
19. Настройки портала оператора (Рис. 24) позволяют настроить URL для работы системы и задать, сколько дней актуален сохранённый профиль пользователя (имеется в виду сохранение, которое проводится флажком «Запомнить меня» на портале).
Обращаем ваше внимание, если вы получаете доступ к порталу с помощью проброса портов или через прокси сервер, то вам необходимо отредактировать пункт HOST и в Whitelisted domains установить необходимые IP-адреса.
Рис. 24 Настройки портала оператора
20. Подтверждение настроек (рисунок 25). Программа установки отображает топологию. На этом этапе можно вернуться назад и внести забытые настройки. После подтверждения начинается процесс установки.
Рис.25 Интерфейс программы установки: просмотр топологии и подтверждение настроек
21. Если установка прошла удачно, программа выведет запрос на добавление сервиса wisla в автозагрузку. Данное действие возможно только в том случае, если пользователь wisla был добавлен в sudoers. В противном случае требуется отказаться от действия.
22. После установки система автоматически запускается. Ход запуска можно отслеживать в журналах работы (Logs viewer – wiSLA logs) и статусах (Status). Признаком успешного запуска является сообщение в журнале server.log, выделенное на рисунке 26. Для полного запуска новой системе без инфраструктуры обычно требуется до 5 минут.
Рис.26 Сообщение об успешном запуске системы wiSLA в communicator.log
23. После запуска сервера приложений можно начинать работу с порталом. По умолчанию в системе присутствует пользователь Admin с паролем Admin@123. Зайдя с этими учётными данными, можно создать пользователя с ролью «Системный администратор», который сможет далее создавать инфраструктуру. Необходимо сменить пароль Admin при первом входе в целях безопасности.
24. Если система в ходе установки добавлялась в список автозагрузки, рекомендуется выполнить пробный перезапуск сервера с целью проверки механизма автоматического запуска wiSLA.
Инструкция по ручному развертыванию Wisla-wiprobe-agregator для Wisla
В данной инструкции описано как установить Wisla WiProbe Aggregator в ручном режиме без использования скрипта предварительной настройки системы.
Этап 1. Переход под пользователя wisla:
На первом этапе необходимо перейти под пользователя Wisla используя команду:
sudo su - wisla
Если пользователь wisla еще не существует в системе его необходимо создать используя следующие команды пошагово.
1.Команда создания пользователя:
sudo useradd -d /home/wisla -m -s /bin/bash wisla
2.Команда установки пароля:
sudo passwd wisla
3.Добавление пользователя в файлы sudoers:
echo "wisla ALL=(ALL:ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/wisla
4.Настройка системных лимитов для пользователя wisla:
# Создаем файл лимитов
cat > /etc/security/limits.d/wisla << 'EOF'
wisla soft nofile 32768
wisla hard nofile 32768
wisla soft nproc 32768
wisla hard nproc 32768
EOF
5. Добавляем в PAM (если нет):
echo "session required pam_limits.so" >> /etc/pam.d/common-session
Этап 2. Подготовка каталога Wisla-wiprobe-agregator.
После перехода под пользователя wisla вам необходимо создать каталог где будет располагаться Wisla-wiprobe-agregator, использую следующие команды:
1.Создание директории в /opt/:
sudo mkdir -p /opt/aggr-wisla
sudo mkdir -p /opt/aggr-wisla/config
sudo mkdir -p /opt/aggr-wisla/logs
2.Проверить кому принадлежит каталог kafka:
ls -l /opt/
3.Сменить пользователя для каталога agg-wisla если принадлежит не wisla используя следующую команду:
sudo chown -R wisla:wisla /opt/aggr-wisla
4.Переходим в каталог:
cd /opt/aggr-wisla
Этап 3. Копирование архива Java:
Предполагается, что архив OpenJDK11U-jdk_x64_linux_hotspot_11.0.28_6.tar.gz уже передан или скачан с корпоративного файла обменника.
1.Скопируем его из домашней директории wisla используя следующую команду:
sudo cp ~/OpenJDK11U-jdk_x64_linux_hotspot_11.0.28_6.tar.gz /opt/aggr-wisla/
2.Распаковка архива Java:
sudo tar -xzf OpenJDK11U-jdk_x64_linux_hotspot_11.0.28_6.tar.gz
3.Добавление в переменные среды:
JAVA_HOME="/opt/aggr-wisla/$(ls -d jdk-11* 2>/dev/null | head -1)"
echo "Java Home: $JAVA_HOME"
4.Проверка java:
$JAVA_HOME/bin/java -version
Этап 4. Настройка переменного окружения:
Выполнить следующие команды для добавления переменных окружений для пользователя wisla:
sudo -u wisla bash -c "echo 'export JAVA_HOME=\"$JAVA_HOME\"' >> /home/wisla/.bashrc"
sudo -u wisla bash -c "echo 'export PATH=\"\$JAVA_HOME/bin:\$PATH\"' >> /home/wisla/.bashrc"
Этап 5. Копирование JAR файла:
Предполагается, что архив wisla-wiprobe-aggregator.jar уже передан или скачан с корпоративного файла обменника.
1.Скопируем его из домашней директории wisla используя следующую команду:
sudo cp ~/wisla-wiprobe-aggregator.jar /opt/aggr-wisla/
2.Выдача прав на исполнение и изменение владельца:
sudo chmod +x /opt/aggr-wisla/wisla-wiprobe-aggregator.jar
sudo chown wisla:wisla /opt/aggr-wisla/wisla-wiprobe-aggregator.jar
3.Создаем конфигурационный файл
sudo cat > /opt/aggr-wisla/config/application.properties << EOF
server.servlet.context-path=/aggregator
server.port=18080
aggregator.kafka-enabled=true
aggregator.wisla-kafka.bootstrap.servers="Указать Ip Адресс сервера кафка :9092"
aggregator.wisla-kafka.consumer-threads-count=4
aggregator.id=1
aggregator.buffered-data-processing.interval=5000
aggregator.refresh-data-senders.interval=30000
aggregator.data-batch-length.limit=1000000
aggregator.buffer-size.limit=1500
aggregator.wisla.dc-nodes="Указать Ip Адресс сервера кафка :8080"
aggregator.round.robbin.algorithm=true
spring.servlet.multipart.enabled=true
spring.application.name=wisla-wiprobe-aggregator
logging.level.root=WARN
logging.level.com.wisla=INFO
logging.file.name=/opt/aggr-wisla/logs/aggregator.log
logging.pattern.console=
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss} - %msg%n
management.endpoints.web.exposure.include=health,info,metrics
management.endpoint.health.show-details=always
EOF
4.Изменение пользователя:
sudo chown wisla:wisla /opt/aggr-wisla/config/application.properties
5.Создать юнит для wisla-wiprobe-aggregator:
sudo cat > /etc/systemd/system/wisla-wiprobe-aggregator.service << EOF
[Unit]
Description=Wisla WiProbe Aggregator Service
After=network.target kafka.service
[Service]
Type=simple
User=wisla
Group=wisla
WorkingDirectory=/opt/aggr-wisla
Environment="JAVA_HOME=$JAVA_HOME"
Environment="PATH=$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
ExecStart=$JAVA_HOME/bin/java -jar /opt/aggr-wisla/wisla-wiprobe-aggregator.jar
SuccessExitStatus=143
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
Этап 6. Запуск и проверка:
Обновляем systemd:
sudo systemctl daemon-reload
Включаем автозагрузку:
sudo systemctl enable wisla-wiprobe-aggregator
Запускаем Kafka:
sudo systemctl start wisla-wiprobe-aggregator
Проверяем статус:
sudo systemctl status wisla-wiprobe-aggregator
Активация модуля автокорреляции
Для активации модуля автокорреляции необходимо:
Автокоррелятор wiCore должен быть установлен и запущен (см. Руководство администратора wiCore).
1. Запустить программу установки. Перейти в основное меню. Внешний вид основного меню показан на рисунке 1.
Рис. 1 Главное меню программы установки в случае обнаружения установленной wiSLA
2. Выбрать пункт меню «Config update». Если этого пункта меню нет в списке, установка была
выполнена некорректно или на первом экране при запуске программы установки были
указаны ошибочные данные.
3. Перейти на экран wiSLA Resources Configuration.
За активацию автокоррелятора отвечают два параметра:
- Auto correlator url (по умолчанию значение locahost:8083),
- Enabling auto correlator (по умолчанию значение false).
Для активации:
- указать ссылку модуля автокорреляции "Auto correlator url" (доменное имя + порт, если в наличии),
- указать значение "Enabling auto correlator" как true.
4. Подтвердить настройки.
5. Выполнить перезапуск wiSLA.
Действия при неудачной попытке установки и восстановление работоспособности в случае сбоя
Действия при неудачной попытке установки wiSLA
В случае если установка wiSLA завершилась c ошибкой, требуется:
- Проанализировать причину сбоя установки. Для этого можно использовать log-файлы программы установки в текущем каталоге, а также прокрутку в окне для просмотра хода установки.
- Завершить все процессы, связанные с java.
- Выйти из программы установки и удалить новые каталоги в /home/wisla (hadoop, hbase, postgresql, zookeeper).
Повторить попытку установки с исправленными настройками.
Регламент по восстановлению работоспособности системы wiSLA в случае сбоя
Как правило, внешние проявления не дают информации об основной причине сбоя. Ими могут быть:
- повторяющиеся проблемы при открытии страниц портала;
- нехарактерное поведение элементов интерфейса;
- ошибки при сохранении объектов инфраструктуры;
- отсутствие данных от всех измерительных зондов;
- отсутствие писем о неисправностях;
- ошибочные даты на календарях;
- ошибочная дата и время в событиях;
- недоступный портал.
При возникновении одного или нескольких проявлений требуется провести первичную диагностику для установления причины сбоя (таблица 5).
Таблица 5 – Первичная диагностика и устранение проблемы.
|
Возможная причина сбоя |
Действия по выявлению |
Устранение проблемы |
|
1. Отказ одного из компонентов wiSLA (не является самостоятельной причиной, требует продолжения диагностики) |
Просмотр статусов компонентов wiSLA в программе установки |
Поиск основной причины сбоя, перезапуск всех компонентов wiSLA |
|
2. Резкий скачок времени на сервере |
Проверка времени на каждом из узлов, где установлена wiSLA. Проверка работоспособности службы NTP |
Установка корректных даты и времени, запуск NTP, перезапуск всех компонентов wiSLA. Если база данных испорчена некорректными данными, потребуется выполнить восстановление из резервной копии (обратитесь в службу технической поддержки) |
|
3. Продолжительный разрыв связи между узлами wiSLA |
Определение доступности серверов, изучение журналов работы системы, опрос системных администраторов |
Перезапуск всех компонентов wiSLA |
|
4. Аварийная перезагрузка одного или нескольких узлов |
Сравнение времени непрерывной работы серверов wiSLA, изучение журналов работы операционной системы сервера с наименьшим временем непрерывной работы |
Перезапуск всех компонентов wiSLA |
|
5. Исчерпано свободное место на одном из дисков |
Получение информации об использовании дискового пространства на всех серверах wiSLA |
Очистка дисков, добавление дисков, перезапуск всех компонентов wiSLA. Если перезапуск не решает проблему, возможно, повреждена база данных или программные файлы. В этом случае потребуется восстановить систему из резервной копии или выполнить полную переустановку системы (обратитесь в службу технической поддержки) |
|
6. Вмешательство в работу сервера (изменение настроек сети, файловой системы и т.п. при работающей wiSLA) |
Опрос системных администраторов |
Перезапуск всех компонентов wiSLA |
|
7. Неудачное обновление wiSLA |
Чтение журнальных файлов после обновления |
Обратитесь в службу технической поддержки |
|
8. Аппаратные проблемы на сервере |
Определение проблемного сервера, перезагрузка, просмотр данных POST, изучение журналов операционной системы, проверка диска, тестирование ОЗУ, замена компонентов на заведомо исправные и т.д. Выходит за рамки настоящего Руководства |
Действия зависят от характера сбоя. Если потери данных не было, будет достаточно перезапустить все компоненты wiSLA. Если в ходе перезапуска возникли проблемы или требуется восстановить программные файлы, обратитесь в службу технической поддержки |
Действия по обслуживанию wiSLA
Основные действия по обслуживанию wiSLA перечислены в таблице 4.
Таблица 4 – Действия по обслуживанию системы wiSLA.
|
Что требуется сделать? |
Последовательность действий |
|
1. Просмотреть информацию о статусах всех компонентов wiSLA |
1. Запустить программу установки wiSLA. 2. Выбрать и открыть "Status". 3. Выбрать "All ". Незапущенные компоненты можно определить по наличию "[FAIL]" и "NOT STARTED" в строке. |
|
2. Остановить все компоненты wiSLA с помощью программы установки |
1. Запустить программу установки wiSLA. 2. В программе установки wiSLA выбрать "Maintenance" - "Stop All". 3. Проверить результат. Посмотреть информацию по статусам всех компонентов wiSLA. |
|
3. Управление запуском wiSLA с помощью скрипта запуска (для варианта установки всех компонентов на 1 сервер) |
Для управления запуском следует получить доступ к консоли сервера wiSLA, пользователь “wisla". Запуск всех компонентов: $ sudo systemctl start wisla5 или $ sudo /opt/wisla5/scripts/wisla5.sh start Остановка всех компонентов: $ sudo systemctl stop wisla5 или $ sudo /opt/wisla5/scripts/wisla5.sh stop Проверка статусов всех компонентов: $ sudo systemctl status wisla5 или $ sudo /opt/wisla5/scripts/wisla5.sh status Запуск только сервера приложений: $ sudo /opt/wisla5/scripts/wisla5.sh start-wildfly Остановка только сервера приложений: $ sudo /opt/wisla5/scripts/wisla5.sh stop-wildfly Перезапуск только сервера приложений: $ sudo /opt/wisla5/scripts/wisla5.sh restart-wildfly Проверка состояния сервера приложений: $ sudo /opt/wisla5/scripts/wisla5.sh status-wildfly |
|
4. Перезапустить все компоненты wiSLA |
1. Запустить программу установки wiSLA. 2. В программе установки wiSLA выбрать "Maintenance" - "Stop All", дождаться завершения выполнения команды. 3. Выбрать в меню "Start All". 4. Дождаться полного запуска системы. 5. Проверить статусы компонентов. |
|
5. Узнать, что система полностью запущена |
1. Запустить программу установки. 2. Выбрать в меню программы установки раздел "Log viewer" - "wiSLA” – “Server.log at..." 3. Нажать SHIFT+F для автоматического обновления файла. Запись об удачном запуске: wiSLA COMPONENTS ARE FULLY DEPLOYED, INTERCONNECTED AND READY TO WORK. 4. Завершить просмотр файла: CTRL+C, затем q. 5. Проверить статусы всех компонентов. |
|
6. Перезапустить сервер приложений |
1. Запустить программу установки wiSLA. 2. В программе установки wiSLA выбрать "Maintenance" – “wiSLA” – "Stop All", дождаться завершения выполнения команды. 3. Выбрать в меню "Start All", выполнить команду. 4. Дождаться полного запуска системы. 5. Проверить статус wiSLA. |
|
7. Получить информацию о свободном месте на диске |
В ssh-сессии выполнить команду: $ df -h |
|
8. Получить информацию о времени непрерывной работы сервера |
В ssh-сессии выполнить команду: $ uptime |
|
9. Просмотреть журналы работы операционной системы |
В SSH-сессии выполнить команду: $ less /var/log/messages |
|
10. Просмотреть журналы работы системы wiSLA |
1. Запустить программу установки. 2. Открыть "Logs viewer". 3. Выбрать компонент системы. 4. Выбрать журнал для просмотра. |
|
11. Проверить время и дату в операционной системе |
В ssh-сессии выполнить команду: $ date Обратить внимание не только на год, месяц, день, часы, минуты и секунды, но и на часовой пояс. |
|
12. Проверить работу службы NTP |
В SSH-сессии выполнить команду: $ sudo systemctl status ntpd Если служба запущена, проверить доступность NTP-серверов для синхронизации и статус синхронизации: $ ntpq –npcrv |
|
13. Добавить новый плагин |
Для добавления нового плагина требуется: 1. Скопировать файл плагина в каталог /opt/wisla5/wildfly/current/wisla_plugins/. 2. Выдать пользователю wisla права на файл: $ chown wisla.wisla *.jar 3. Запустить программу установки wiSLA. 4. Перейти в меню «Maintenance» - «wiSLA» и выполнить «Reload_plugins». |
|
14. Загрузить модуль коллектора Netflow |
Для загрузки коллектора Netflow требуется: 1. Получить в службе поддержки или найти в комплекте поставки файл модуля коллектора wisla-netflow-collector-web-5.1-SNAPSHOT.war. 2. Скопировать файл в каталог /opt/wisla5/wildfly/current/standalone/deployments 3. Перезапустить сервер приложений. Вместо перезапуска можно вручную создать файл, который обеспечит загрузку коллектора: $ touch /opt/wisla5/wildfly/current/standalone/deployments/wisla-netflow-collector-web-5.1-SNAPSHOT.war.dodeploy После получения доступа на портал оператора потребуется добавить коллектор в качестве зонда «Netflow collector» с IP-адресом 127.0.0.1 (раздел «Зонды», кнопка «+ Создать», тип «Netflow collector»). |
Установка wiSLA в контейнер podman
Установка wiSLA может быть произведена с помощью самораспаковывающегося архива.
Необходимо создать не root пользователя и настроить использование sudo без пароля
Необходимые действия:
1)Установить podman и zstd
2)Скачать executable tarball
3)Задать права для исполняемого файла
chmod +x podmanizedWisla.sh
4)Запустить
./podmanizedWisla.sh
5)Будет создан и запущен podman контейнер wisla-app
Имеется возможность управлять wiSLA с помощью systemd сервиса:
Проверить статус сервиса
systemctl --user status wisla-podman
Запустить сервис
systemctl --user start wisla-podman
Остановить сервис
systemctl --user stop wisla-podman
Дополнительно имеется возможность управлять wiSLA с помощью скрипта tool.sh (устанавливается в домашнюю папку пользователя)
изменить внешний хост с портом
./tool.sh change-external-host 10.9.0.1 80 443
изменить адрес для подключения зонда к wisla
./tool.sh change-wiprobe-dst 10.9.0.1 80
запустить скрипт wisla5.sh для остановки и запуска wisla (необходимо остановить перед остановкой контейнера)
./tool.sh wisla-script start
открыть логи application server и дождаться следующего сообщения
./tool.sh wisla-wildfly-log
запустить скрипт wisla5.sh для остановки и запуска wisla (необходимо остановить перед остановкой контейнера)
./tool.sh wisla-script stop
остановить контейнер
./tool.sh stop-container
запустить контейнер
./tool.sh start-container
Скрипты для взаимодействия с wiSLA
Поддерживаемые параметры установщика Wisla
Чтобы узнать доступные параметры установщика Wisla, выполнить команду:
./wisla-5.2.9-2502251017.run --help
Будет следующий вывод:
wiSLA 5.2.9 build 2502251017 installer
usage: ./wisla-5.2.9-2502251017.run <options>
This script installs the wiSLA system cluster.
OPTIONS:
Installer options
-h Show this message
-t Text mode only
--hadoop-install Install hadoop system only
--silent-install Silent install
--silent-update Silent update
--silent-fast-update Silent update without backup stage
--silent-fast-update-with-new-db <Postrgres DB dump path> Silent update without backup stage with new database restoring
--silent-fast-update-replace-db-n-hbase <Postgres DB dump path> <HBase data dump path> Silent update without backup stage with complete data overwrite
Package options
-x Unpack distribution from self
-v Display version information
ENVIRONMENT:
INSTALL_TEMP - directory used to store temporary files. Default: /tmp/
INSTALL_LOG - installation log name. Default: install.YYYY-MM-dd_HH:mm:ss.log
EXTERNAL_DISTRIBUTION_FILE - used to specify external distribution file
SCENARIO - used to switch default scenario
Варианты обновления системы
1. Установка wisla с нуля
Убедиться что в системе отсутствуют установленные ранее папки : hadoop, postgresql, zookeeper, hbase. Иначе будет полуавтоматический режим установки, где необходимо будет подтверждать очистку каталогов, а при попытке нажать No процесс установки будет прерван.
./wisla-5.2.9-xxxxxxxx.run --silent-install
2. Стандартное обновление (с резервным копированием)
./wisla-5.2.9-xxxxxxxx.run --silent-update
Этот режим выполняет обновление системы с сохранением резервных копий данных.
3. Быстрое обновление без резервного копирования
./wisla-5.2.9-xxxxxxxx.run --silent-fast-update
Этот режим пропускает этап создания резервных копий, ускоряя процесс обновления.
4. Быстрое обновление с восстановлением новой базы данных PostgreSQL
./wisla-5.2.9-xxxxxxxx.run --silent-fast-update-with-new-db /path/to/postgres_dump.sql
Здесь /path/to/postgres_dump.sql — путь к файлу дампа PostgreSQL, который будет использован для восстановления данных.
5. Полная замена базы данных и HBase
./wisla-5.2.9-xxxxxxxx.run --silent-fast-update-replace-db-n-hbase /path/to/postgres_dump.sql /path/to/hbase_data
Где:
/path/to/postgres_dump.sql— путь к дампу PostgreSQL./path/to/hbase_data— путь к данным HBase.
6. Установка только Hadoop
./wisla-5.2.9-xxxxxxxx.run --hadoop-install
Дополнительно:
- Просмотр логов
По умолчанию логи установки сохраняются в файл install.YYYY-MM-dd_HH:mm:ss.log. Изменить имя лога можно так:
export INSTALL_LOG=my_install_log.txt
- Изменение временной директории
export INSTALL_TEMP=/custom/temp/dir
- Режим текстового интерфейса
./wisla-5.2.9-xxxxxxxx.run -t
Управление всеми сервисами Wisla
- Проверка статуса запущенных сервисов
/opt/wisla5/scripts/wisla5.sh status
- Остановка всех сервисов
/opt/wisla5/scripts/wisla5.sh stop
- Запуск всех сервисов
/opt/wisla5/scripts/wisla5.sh start
- Перезапуск всех сервисов
/opt/wisla5/scripts/wisla5.sh restart
Управление только сервисом Wisla
- Проверка статуса запущенных сервисов
/opt/wisla5/scripts/wisla.sh status
- Остановка всех сервисов
/opt/wisla5/scripts/wisla.sh stop
- Запуск всех сервисов
/opt/wisla5/scripts/wisla.sh start
- Перезапуск сервиса Wisla
/opt/wisla5/scripts/wisla.sh restart
Скрипт:
#!/bin/bash
# Source function library.
WILDFLY_WORK=/opt/wisla5/wildfly/current
wildfly_pid_calc=$(pgrep -u wisla -f "jboss.home.dir=${WILDFLY_WORK}" | wc -l)
keyphrase_blank_wildfly_started="WildFly .* started in"
function start_blank_wildfly() {
# анализ log-файла
[ -r $WILDFLY_WORK/standalone/log/server.log ] && basic_blank_wildfly_started_counter=$(egrep -c "keyphrase_blank_wildfly_started" $WILDFLY_WORK/standalone/log/server.log)
[ -z "basic_blank_wildfly_started_counter" ] && basic_blank_wildfly_started_counter=0
# запуск пустого Wildfly
cd $WILDFLY_WORK/bin
nohup ./standalone.sh > /dev/null 2>&1&
}
function start_deploy() {
cd $WILDFLY_WORK/standalone/deployments
for file in *.?ar;
do
touch "$file".dodeploy
done
}
function wait_for_blank_wildfly() {
timeout=300
blank_wildfly_counter_started=0
blank_wildfly_current_counter_started=0
if [ ! -e "$WILDFLY_WORK/standalone/log/server.log" ] ; then
touch "$WILDFLY_WORK/standalone/log/server.log"
fi
basic_blank_wildfly_started_counter=$(egrep -c "$keyphrase_blank_wildfly_started" $WILDFLY_WORK/standalone/log/server.log)
for i in $(seq 1 $timeout);
do
blank_wildfly_started_counter=$(egrep -c "$keyphrase_blank_wildfly_started" $WILDFLY_WORK/standalone/log/server.log)
((total_wildfly_start_time = total_wildfly_start_time + 1))
if [ $blank_wildfly_started_counter -eq $((basic_blank_wildfly_started_counter+1)) ]
then
echo "Starting blank Wildfly..."
return
fi
sleep 1
done
echo "Error during blank Wildfly start!"
}
function start() {
wildfly_pid_calc=$(pgrep -u wisla -f "jboss.home.dir=${WILDFLY_WORK}" | wc -l)
if [ "$wildfly_pid_calc" -eq 0 ]
then
total_wildfly_start_time=0
# очистка каталогов deployments (кроме war, ear) и tmp перед запуском
find $WILDFLY_WORK/standalone/deployments -regextype posix-egrep ! -regex ".*(ear|war)" -type f -exec rm -f {} \;
rm -rf $WILDFLY_WORK/standalone/tmp/*
rm -rf /tmp/workspace_*-*-*-*-*
cd $WILDFLY_WORK/standalone
# запуск пустого wildfly
echo "Waiting for the blank Wildfly application server to start (up to 5 minutes)... "
start_blank_wildfly
# ожидание запуска пустого Wildfly
wait_for_blank_wildfly
# начало деплоя артефактов (в порядке, выбранном Wildfly)
start_deploy
else
echo "Error. Wildfly is already running!"
return 1
fi
}
function stop() {
echo "wiSLA is stopping..."
kill `pgrep -f "jboss.home.dir=${WILDFLY_WORK}"` &> /dev/null
ATTEMPTS=0
while [[ ! -z `pgrep -f "jboss.home.dir=${WILDFLY_WORK}"` ]]; do
echo "Waiting for the Wildfly application server to stop..."
(( ATTEMPTS = ATTEMPTS + 1 ))
if [ $ATTEMPTS -gt 10 ]
then
echo "60 seconds is elapsed, trying to stop the process with -9 signal"
kill -9 `pgrep -f "jboss.home.dir=${WILDFLY_WORK}"`
fi
sleep 5
done
}
function status() {
PID=`pgrep -f "jboss.home.dir=${WILDFLY_WORK}"`
[[ ! -z $PID ]] && echo "Started with PID : $PID" || echo "Stopped"
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
try-restart)
stop
start
;;
status)
status
;;
*) exit 1
esac
exit 0
Реиндексация
- Стандартная реиндексация (требует запущенной системы)
/opt/wisla5/scripts/wi-reindex.sh
Скрипт:
#!/bin/bash
# Source function library.
JRE_WORK="/opt/wisla5/jre/current"
echo "Reindexing wisla engine lucene database..."
${JRE_WORK}/bin/java -jar /opt/wisla5/util/jmx/cmdline-jmxclient-0.10.3.jar - localhost:1090 "wisla-engine:name=nodeReindexer" reindexFullTextSearch
exit 0
- Независимая реиндексация (не зависит от состояния деплоя)
/opt/wisla5/scripts/wi-reindex-standalone.sh
Скрипт:
#!/bin/bash
# Source function library.
JRE_WORK="/opt/wisla5/jre/current"
POSTGRES_HOST="alfa-test"
DB_NAME="wisla"
USER="wisla"
echo "Reindexing database"
${JRE_WORK}/bin/java -jar -Dhibernate.connection.username="${USER}" \
-Dhibernate.search.base_indexes_directory="/opt/wisla5/wildfly/current/bin/searchindexes/engine/" \
-Dhibernate.connection.url="jdbc:postgresql://${POSTGRES_HOST}:5462/${DB_NAME}" \
-Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true \
/opt/wisla5/util/reindexer/wisla-reindexer.jar
echo "Reindex finished"
exit 0
Создание резервных копий баз данных
- PostgreSQL
Файл шаблона скрипта: /opt/wisla5/backup_scripts/postgres_backup_template.sh
Пример запуска резервного копирования:
pg_dump --host "wisla" --port 5432 --username "wisla" --format custom --blobs --no-owner --encoding UTF8 --verbose --file /home/wisla/backup/wisla.backup
Альтернативный способ через шаблонный скрипт:
sed "s|{{FILE-NAME}}|/home/wisla/backup/wisla.backup|" /opt/wisla5/backup_scripts/postgres_backup_template.sh | bash
Скрипт:
#!/bin/bash
pg_dump --host "alfa-test" --port 5432 --username "wisla" --format custom --blobs --no-owner --encoding UTF8 --verbose --file {{FILE-NAME}} wisla
ssh {{LOGIN}}@{{BACKUP-SERVER}} "mkdir -p {{DESTINATION}}"
scp ./{{FILE-NAME}} {{LOGIN}}@{{BACKUP-SERVER}}:{{DESTINATION}}
rm -f ./{{FILE-NAME}}
- HBase
Файл шаблона скрипта: /opt/wisla5/backup_scripts/hbase_backup_template.sh, но корректность работы проверить не удалось, пробовал переписать скрипт, но возникает проблема при выполнении команды импорта снимков в папку.
#!/bin/bash
BACKUP_DIR=$(mktemp -d -t -p ~/ hbase_backup.XXXXXXXX)
mkdir ${BACKUP_DIR}/backup
BACKUP_PARRENT_DIR=${BACKUP_DIR}
BACKUP_DIR=${BACKUP_DIR}/backup
hbase org.apache.hadoop.hbase.mapreduce.Export -D mapred.output.compress=true {{TABLE-PREFIX}}-tsdb {{TABLE-PREFIX}}-tsdb-backup 1 {{START-TIMESTAMP}} {{END-TIMESTAMP}}
hbase org.apache.hadoop.hbase.mapreduce.Export -D mapred.output.compress=true {{TABLE-PREFIX}}-tsdb-uid {{TABLE-PREFIX}}-tsdb-uid-backup 1 {{START-TIMESTAMP}} {{END-TIMESTAMP}}
hbase org.apache.hadoop.hbase.mapreduce.Export -D mapred.output.compress=true {{TABLE-PREFIX}}-tsdb-nf {{TABLE-PREFIX}}-tsdb-nf-backup 1 {{START-TIMESTAMP}} {{END-TIMESTAMP}}
hbase org.apache.hadoop.hbase.mapreduce.Export -D mapred.output.compress=true {{TABLE-PREFIX}}-tsdb-uid-nf {{TABLE-PREFIX}}-tsdb-uid-nf-backup 1 {{START-TIMESTAMP}} {{END-TIMESTAMP}}
hbase org.apache.hadoop.hbase.mapreduce.Export -D mapred.output.compress=true {{TABLE-PREFIX}}-tsdb-lts {{TABLE-PREFIX}}-tsdb-lts-backup 1 {{START-TIMESTAMP}} {{END-TIMESTAMP}}
hdfs dfs -copyToLocal /user/wisla/{{TABLE-PREFIX}}-tsdb-backup ${BACKUP_DIR}/{{TABLE-PREFIX}}-tsdb
hdfs dfs -copyToLocal /user/wisla/{{TABLE-PREFIX}}-tsdb-uid-backup ${BACKUP_DIR}/{{TABLE-PREFIX}}-tsdb-uid
hdfs dfs -copyToLocal /user/wisla/{{TABLE-PREFIX}}-tsdb-nf-backup ${BACKUP_DIR}/{{TABLE-PREFIX}}-tsdb-nf
hdfs dfs -copyToLocal /user/wisla/{{TABLE-PREFIX}}-tsdb-uid-nf-backup ${BACKUP_DIR}/{{TABLE-PREFIX}}-tsdb-uid-nf
hdfs dfs -copyToLocal /user/wisla/{{TABLE-PREFIX}}-tsdb-lts-backup ${BACKUP_DIR}/{{TABLE-PREFIX}}-tsdb-lts
cd ${BACKUP_DIR}/..
tar -czvf {{FILE-NAME}} backup
hdfs dfs -rm -r /user/wisla/{{TABLE-PREFIX}}-tsdb-backup
hdfs dfs -rm -r /user/wisla/{{TABLE-PREFIX}}-tsdb-uid-backup
hdfs dfs -rm -r /user/wisla/{{TABLE-PREFIX}}-tsdb-nf-backup
hdfs dfs -rm -r /user/wisla/{{TABLE-PREFIX}}-tsdb-uid-nf-backup
hdfs dfs -rm -r /user/wisla/{{TABLE-PREFIX}}-tsdb-lts-backup
ssh {{LOGIN}}@{{BACKUP-SERVER}} "mkdir -p {{DESTINATION}}"
scp ./{{FILE-NAME}} {{LOGIN}}@{{BACKUP-SERVER}}:{{DESTINATION}}
rm -f ./{{FILE-NAME}}
cd ../
rm -r ${BACKUP_PARRENT_DIR}
!!!Но для выполнения скрипта надо настраивать hbase и hadoop
Дополнительно:
- Перезагрузка плагинов в приложении wiSLA
/opt/wisla5/scripts/reload-plugins.sh
Скрипт:
#!/bin/bash
# Source function library.
JRE_WORK=/opt/wisla5/jre/current
${JRE_WORK}/bin/java -jar /opt/wisla5/util/jmx/cmdline-jmxclient-0.10.3.jar - localhost:1090 "wisla-engine:name=pluginManager" reloadPlugins
exit 0
- Удаление старых лог файлов
/opt/wisla5/scripts/remove-old-logs.sh
Скрипт:
#!/bin/bash
DAYS=10
LOG_DIR=/opt/wisla5/wildfly/current/standalone/log
for file in "$( find ${LOG_DIR}/ -maxdepth 1 -type f -mtime +${DAYS} )"
do
rm -f ${file}
done
Инструкция по полуавтоматическому обновлению wiSLA (alfa-test)
1. Подготовка к обновлению
1.1 - Альфа запущена (либо остановлена)
1.2 - Для структурирования папок, необходимо проверить наличие актуальной папки общей версии в каталоге /home/wisla/wisla_distr (например, 5210).
1.3 - Если папки нет, создать новую, иначе перейти в существующую (/home/wisla/wisla_distr/5210).
1.4 - Внутри создать папку с наименованием версии дистрибутива wisla (/home/wisla/wisla_distr/5210/2503121748). Возможен вариант создания по порядку (1,2,3...), учитывая пропуски.
1.5 - Если в каталоге /home/wisla/wisla_distr/5210/ больше 15 папок, удалить старые до 7 штук (можно вручную).(Для этого написан скрипт, если количество папок накопилось от 15 шт, то удалять ранее созданные папки, фильтруя по дате изменений, оставляя только 7 последних обновленных)
#!/bin/bash
# Перейти в каталог /home/wisla/529/111
cd /home/wisla/529/111
# Получить количество папок в каталоге
folder_count=$(find . -maxdepth 1 -type d | wc -l)
# Если количество папок больше 15, удалить старые 8 папок
if [ $folder_count -gt 15 ]; then
old_folders=$(ls -dt */ | tail -n +8)
echo "$old_folders" | xargs rm -rf
remaining_folders=$(ls -dt */ | head -n 7)
echo "Оставлены следующие папки:"
echo "$remaining_folders"
fi
1.6 - В созданную папку, с наименованием версии, загрузить актуальную версию дистрибутива (например, wisla-5.2.10-2503121748.run). Перейти в данную папку.
Проверить процесс загрузки файла по наименованию файла, об этом сигнализирует изменение имени wisla-5.2.10-2503121748.run.filepart на wisla-5.2.10-2503121748.run).
1.7 - Далее дать разрешение на запуск файла, выполнив команду:
chmod +x wisla-5.2.10-2503121748.run
2. Запуск обновления
1. Запустить автоматическое обновление:
./wisla-5.2.10-2503121748.run --silent-update
Обновление включает формирование дампов PostgreSQL, HBase и конфигурационных файлов. Перед окончанием выполнения скрипта обновления, система выполнит реиндекс, в консоли будет соответствующее сообщение «Reindexing wisla engine lucene database..».
После выполнения всех сценариев закроет установщик, перейдет в командную строку.
В каталоге ожидается наличие всех дампов:
2. Проверить статус обновления возможно выполнив API-запрос:
GET https://alfa-test.wellink.ru/engine/api/v1/system/state
Обновление завершено, когда:
1) статус сменится с 404 на 200 ,
2) в server.log будет строка указывающая что реиндекс завершен:
INFO [com.wellink.wisla.core.model.NodeReindexerImpl] (RMI TCP Connection(2)-10.11.11.20) slaOpFullTextReindexer reindex procedure complete.
3) в install....log завершение строкой:
Update complete!
Ссылки на дополнительную документацию: