# Руководство администратора wiSLA 5 Community version

Продукт: wiSLA  
Версия: 5.2.16  
Дата обновления документа: 06.04.26 г.

# 1. УСТАНОВКА И ОБНОВЛЕНИЕ WISLA

# Программные требования

Перед началом установки убедитесь, что сервер соответствует следующим программным требованиям.

##### Предварительные условия


- На время установки сервер должен иметь доступ к стандартным репозиториям вашей операционной системы для их автоматической загрузки.
- **Если доступ к репозиториям невозможен**, необходимо заранее подготовить локальный набор пакетов. Для получения инструкций обратитесь в службу технической поддержки.
- Для корректного заполнения адресов и автоматического определения координат точек доступа серверы 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

<p class="callout info">Примечание: Использование операционных систем, не указанных в списке, требует предварительного анализа и согласования со службой технической поддержки.</p>

##### **Зависимости**

- Astra Linux Special Edition 1.8 **[astra.zip](https://wiki.wellink.ru/attachments/1367)**
- Astra Linux Special Edition 1.7 **[astra.zip](https://wiki.wellink.ru/attachments/1367)**
- Debian 11 , 12, 13 **[deb.zip](https://wiki.wellink.ru/attachments/1369)**
- Ubuntu 20, 22 , 24, 25 LTS
- RedOS 7.3, 8.0 **[redos.zip](https://wiki.wellink.ru/attachments/1368)**
- ОС Атлант Giant
- Alt linux 10.4
- CentOS 8, 9 **[astra.zip](https://wiki.wellink.ru/attachments/1367)**

##### **Требования к браузерам для работы с веб-порталом**

Для корректной работы с веб-интерфейсом (порталом) wiSLA используйте актуальные версии браузеров:

- Mozilla Firefox версии 134.0 и выше
- Google Chrome версии 132.0.6834.83 и выше
- Яндекс. Браузер версии 24.12.2.856 и выше

# Сетевые доступы

Используемые сетевые доступы представлены в таблице.

<div class="tableWrap" id="bkmrk-%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5-%D0%90%D0%B4%D1%80%D0%B5%D1%81%D0%B0-%D0%B8%D1%81%D1%82%D0%BE"><table border="1" id="bkmrk-%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5-%D0%90%D0%B4%D1%80%D0%B5%D1%81%D0%B0-%D0%B8%D1%81%D1%82%D0%BE-1"><colgroup><col></col><col></col><col></col><col></col><col></col></colgroup><tbody><tr><td class="align-center">**Описание**</td><td class="align-center">**Адреса источников**</td><td class="align-center">**Адрес назначения**</td><td class="align-center">**Протокол**</td><td class="align-center">**Порт назначения**</td></tr><tr><td>web portal access</td><td>clients (lan)</td><td>wisla-01</td><td>TCP</td><td>8080,8443,80,443</td></tr><tr><td>Utest</td><td>agent</td><td>agent</td><td>UDP</td><td>8787</td></tr><tr><td>TWAMP</td><td>agent</td><td>agent</td><td>UDP</td><td>10862</td></tr><tr><td>telnet</td><td>wisla-01</td><td>agent</td><td>TCP</td><td>5555</td></tr><tr><td>UDP</td><td>agent-server</td><td>agent-client</td><td>UDP</td><td>5001</td></tr><tr><td>MTU</td><td>agent-server</td><td>agent-client</td><td>UDP</td><td>5002</td></tr><tr><td>SNMP</td><td>wisla-01</td><td>snmp</td><td>UDP</td><td>161</td></tr><tr><td>agent-to-wisla</td><td>agent</td><td>wisla-01</td><td>TCP</td><td>8080,8443,80,443</td></tr></tbody></table>

</div>

# Инструкция по ручному развертыванию Kafka для Wisla

В данной инструкции описано как установить Kafka в ручном режиме без использования скрипта предварительной настройки системы.

**<span style="color: rgb(35, 111, 161);">Этап 1.</span>** Переход под пользователя wisla:

На первом этапе необходимо перейти под пользователя Wisla используя команду:

```bash
sudo su - wisla
```

<details id="bkmrk-redos-%D0%A1-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BE%D0%BC-%D0%BA-%D1%81"><summary>Если пользователь wisla еще не существует в системе его необходимо создать используя следующие команды пошагово.</summary>

1.Команда создания пользователя:

```bash
sudo useradd -d /home/wisla -m -s /bin/bash wisla
```

2.Команда установки пароля:

```bash
sudo passwd wisla
```

3.Добавление пользователя в файлы sudoers:

```bash
echo "wisla    ALL=(ALL:ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/wisla
```

4.Настройка системных лимитов для пользователя wisla:

```bash
# Создаем файл лимитов
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 (если нет):

```bash
echo "session required pam_limits.so" >> /etc/pam.d/common-session
```

</details><span style="color: rgb(35, 111, 161);">**Этап 2.** </span>Подготовка каталога kafka.

После перехода под пользователя wisla вам необходимо создать каталог где будет располагаться портативная Java и бинарный дистрибутив Kafka использую следующие команды:

  
1.Создание директории в /opt/:

```bash
sudo mkdir -p /opt/kafka
```

 2.Проверить кому принадлежит каталог kafka:

```bash
ls -l /opt/
```

3.Сменить пользователя для каталога kafka если принадлежит не wisla используя следующую команду:

```bash
sudo chown wisla:wisla /opt/kafka
```

**<span style="color: rgb(35, 111, 161);">Этап 3.</span>** Копирование архива Java**:**

После создания каталога необходимо подготовить портативную Java для распаковки, предполагаем, что архив Java уже скачан и находится в доступном месте.

1.Скопируем его в домашнюю директорию wisla используя следующую команду:

```bash
cp OpenJDK17U-jdk_x64_linux_hotspot_17.0.17_10.tar.gz /home/wisla/
```

2.Переходим в каталог kafka используя следующую команду:

```bash
cd /opt/kafka
```

3.Распаковка Java:

```bash
tar -xzf ~/OpenJDK17U-jdk_x64_linux_hotspot_17.0.17_10.tar.gz
```

4.Проверяем результат распаковки Java:

```bash
ls -la /opt/kafka/
```

5.Устанавливаем переменную окружения:

```bash
export JAVA_HOME="/opt/kafka/jdk-17.0.17+10"
export PATH="$JAVA_HOME/bin:$PATH"
```

6.Проверяем версию Java:

```bash
java -version
```

**<span style="color: rgb(35, 111, 161);">Этап 4.</span>** Копирование архива Kafka**:**

После подготовки портативной Java, необходимо подготовить бинарный дистрибутив Kafka, предполагаем, что Kafka уже скачана и находится в доступном месте.

1.Копируем архив Kafka в домашнюю директорию:

```bash
cp kafka_2.13-4.1.1.tgz /opt/kafka/
```

2.Переходим в каталог kafka используя следующую команду:

```bash
cd /opt/kafka
```

3.Распаковываем Kafka в /opt/kafka:

```bash
tar -xzf ~/kafka_2.13-4.1.1.tgz --strip-components=1 -C /opt/kafka
```

4.Проверяем результат распаковки Kafka:

```bash
ls -la /opt/kafka/bin/kafka-server-start.sh
```

5.Создаем дополнительные рабочие директории для Kafka:

```bash
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
```

**<span style="color: rgb(35, 111, 161);">Этап 5.</span>** Конфигурация Kafka**:** Теперь нам необходимо сконфигурировать Kafka.  
  
1.Для начала определим IP адрес который будем использовать для конфигурации Kafka:

```bash
IP_ADDRESS=$(ip route get 1 2>/dev/null | awk '{print $7; exit}')
```

2.Генерируем Cluster ID:

```bash
CLUSTER_ID=$(/opt/kafka/bin/kafka-storage.sh random-uuid)
echo "Сгенерированный Cluster ID: $CLUSTER_ID"
```

<span style="color: rgb(35, 111, 161);">ЗАПИШИТЕ ЭТОТ ID</span> - он понадобится позже! (Пример моего ID : IdLVHil7RvCVrR9U2DEvKQ)  
  
3.Создание конфигурационного файла:

```bash
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.Проверяем созданный файл:

```bash
cat /opt/kafka/config/kraft/server.properties
```

5.Форматирование хранилища

```bash
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.Создание файла службы:

Создаем файл службы

```bash
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
```

Создание скрипта запуска:

```bash
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
```

Создаем скрипт остановки:

```bash
sudo cat > /usr/local/bin/kafka-stop << 'EOF'
#!/bin/bash
systemctl stop kafka
echo "Kafka остановлен"
EOF
```

Создаем скрипт статуса:

```bash
sudo cat > /usr/local/bin/kafka-status << 'EOF'
#!/bin/bash
echo "Kafka статус:"
systemctl status kafka --no-pager
EOF
```

Создаем скрипт сброса:

```bash
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
```

Выдача прав на исполнение:

```bash
chmod +x /usr/local/bin/kafka-*
```

**Этап 6.** Запуск и проверка Kafka:

Обновляем systemd:

```bash
sudo systemctl daemon-reload
```

Включаем автозагрузку:

```bash
sudo systemctl enable kafka
```

Запускаем Kafka

```bash
sudo systemctl start kafka
```

Проверяем статус

```bash
sudo systemctl status kafka
```

Смотрим логи:

```bash
sudo journalctl -u kafka -f
```

Проверяем, что порты открыты

```bash
netstat -tlnp | grep -E "9092|9093"
```

Проверяем метаданные

```bash
ls -la /var/lib/kafka/
```

Установка завершена! Kafka готова к использованию.

# Подготовка операционной системы к запуску программы установки

Программа установки представляет собой консольное псевдографическое приложение с набором скриптов и настроек, работающее в <span lang="EN-US">Linux</span>-окружении (<span lang="EN-US">bash</span>). Дистрибутив и программа установки, как правило, поставляются как единый самораспаковывающийся <span lang="EN-US">run</span>-файл. Шаблоны отчётов и плагины могут поставляться в виде отдельных файлов.

Если система <span lang="EN-US">wiSLA</span> устанавливается на несколько серверов, один экземпляр программы установки, запущенный на одном сервере, может управлять процессом установки, настройки и резервного копирования данных на всех серверах. Для этого создаётся пользователь <span lang="EN-US">wisla</span>, которому обеспечивается посредством <span lang="EN-US">SSH</span> доступ по ключу ко всем серверам контура.

Перед запуском программы установки требуется выполнить следующие шаги:

1. На непосредственном рабочем месте администратора подготовить к работе приложение – SSH-клиент, с помощью которого будет производиться взаимодействие с консолями серверов. Для Windows рекомендуется PuTTY. Для операционных систем семейства Linux можно воспользоваться стандартным эмулятором терминала и утилитой ssh.
2. Назначить уникальные сетевые имена (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](https://wiki.wellink.ru/attachments/1369) | [astra.zip](https://wiki.wellink.ru/attachments/1367) | [centos.zip](https://wiki.wellink.ru/attachments/1370) | [redos.zip](https://wiki.wellink.ru/attachments/1368)**


### Настройка ОС

Ниже описаны шаги по подготовке окружения операционной системы к выполнению программы установки.

#### 1. Установка и запуск клиента SSH 

Для Linux-совместимых операционных систем можно воспользоваться стандартной консолью и утилитой ssh, авторизоваться можно как Administrator.

### 2. Настройка ***hostname***

Задайте имя сервера в файлах `/etc/hostname` и `/etc/hosts` как указано на примерах ниже.

Пример структуры файла `/etc/hostname`:

```bash
wisla
```

Пример структуры файла `/etc/hosts`:

```bash
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
```

<p class="callout warning">**Обратите внимание!**  
В некоторых Linux-дистрибутивах в файле `/etc/hosts` указанный во время установки системы `hostname` может ссылаться на `127.0.1.1`, для корректной работы сервисов ***WiSLA*** эту запись нужно изменить в соответствии с примером выше. </p>

Если сетевые настройки получены по DHCP, в будущем могут возникнуть проблемы при изменении IP-адреса сервера, так как сервисы будут ссылаться на записи в файле `/etc/hosts`, который останется без изменений. Рекомендуется использовать статический IP-адрес на сетевом интерфейсе сервера.

<p class="callout success">В файле `/etc/hosts` имя хоста должно соответствовать IP-адресу, отличному от `127.0.0.1` и `127.0.1.1`.</p>

### 3. Создание пользователя “wisla”

Если на вашем сервере присутствует только учётная запись суперпользователя Admin, тогда вам необходимо создать сервисную учётную запись для работы с системой. В данном примере будет создана учётная запись `wisla`:

```bash
sudo useradd -d /home/wisla -m wisla && sudo passwd wisla
```

В терминале сервера появится запрос на ввод пароля, задайте надёжный пароль для сервисной учётной записи.

### 4. Изменение привилегий для пользователя “wisla”

Чтобы все сервисы ***WiSLA*** работали корректно необходимо предоставить сервисной учётной записи привилегированный доступ без запроса пароля:

```bash
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`:

```bash
# Если вы работаете из под учётной записи Administrator переключитесь на ранее созданного пользователя wisla
su -l wisla
# Если вы уже переключились на сервисную учётную запись используйте sudo 
sudo mkdir -p /opt/wisla5 && sudo chown wisla:wisla /opt/wisla5
```

Скопируйте файлы дистрибутива `wisla*.run` с помощью программы ***winSCP*** или другим доступным способом в подкаталог `/home/wisla/`:

```bash
mv wisla*.run /home/wisla
sudo chown -R wisla:wisla /home/wisla/
chmod +x /home/wisla/wisla*
```

### 6. Установка зависимостей

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

<details id="bkmrk-redos-%D0%A1-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BE%D0%BC-%D0%BA-%D1%81"><summary>RedOS</summary>

##### С доступом к сети или внутреннему репозиторию:*<span style="text-decoration: underline;">  
</span>*

```bash
sudo yum install ntp lzo dialog rsync uuid zip unzip wget tar python3 fontconfig curl pv uuid python3-paramiko
```

<span style="font-family: var(--font-heading, var(--font-body)); font-size: 1.4em; font-weight: 500;">Без доступа к сети:</span>

```bash
#Копируем архив на хост удобным способом

# Разархивируем 
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
```

</details>
<details id="bkmrk-centos-%D0%A1-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BE%D0%BC-%D0%BA-"><summary>CentOS</summary>

##### С доступом к сети:

```bash
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
```

##### Без доступа к сети:

```bash
#Копируем архив на хост удобным способом

# Разархивируем 
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

# Возможно потребуется установить дополнительные пакеты из этого архива
```

</details><details id="bkmrk-debian-%D0%B8-ubuntu-sudo"><summary>Debian и Ubuntu</summary>

```bash
sudo apt install -y ntp pv liblzo2-2 dialog rsync uuid zip unzip wget tar python3 python3-paramiko fontconfig curl language-pack-ru
```

</details><details id="bkmrk-astra-linux-%D0%A1-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF"><summary>Astra Linux 1.6 и 1.7</summary>

##### С доступом к сети:

```bash
sudo apt install -y ntp liblzo2-2 dialog rsync zip unzip wget tar python3 python3-paramiko fontconfig curl
```

<p class="callout warning">**Обратите внимание!**<span style="text-decoration: underline;">  
</span>В репозиториях ***Astra Linux*** нет пакетов `pv`, `paramiko` и `uuid`, поэтому их необходимо установить из исходников используя `.deb-пакеты`.   
Следуйте приведённой ниже инструкции в секции "***Без доступа к сети***".  
</p>

##### Без доступа к сети:

```bash
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  


<span style="color: rgb(224, 62, 45);">**Обязательно для работы Paramiko на Astra Linux 1.7**</span>

Скачайте установочный скрипт 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
```


</details><details id="bkmrk-astra-linux-1.8-%D0%A1-%D0%B4%D0%BE"><summary>Astra Linux 1.8</summary>

##### С доступом к сети:

```bash
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
```

<p class="callout warning">**Обратите внимание!**<span style="text-decoration: underline;">  
</span>В репозиториях ***Astra Linux*** нет пакета `pv`, поэтому его необходимо установить из исходников используя `.deb-пакет`.   
Следуйте приведённой ниже инструкции в секции "***Без доступа к сети***".  
</p>

##### Без доступа к сети:

```bash
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`:

```bash
sudo dpkg -i pv_1.6.6-1_amd64.deb
```

</details><details id="bkmrk-alt-linux-%28simply-li"><summary>Alt Linux (Simply Linux)</summary>

##### С доступом к сети:

```bash
sudo apt-get install -y ntp pv dialog rsync zip unzip wget tar python3 fontconfig curl python3-module-paramiko ossp-uuid
```

<p class="callout info">В ходе тестирования было замечено, что для установки ***WiSLA*** в ***altLinux*** необходимо подключаться по ***ssh***, либо используйте `sudo su $(whoami)`), иначе будет возникать окно с авторизацией. Также необходимо увеличить размер `/tmp` в `/etc/fstab`, добавьте через запятую `size=4G` (***4G*** указаны в качестве примера) и `mount -o remount`, `rw /tmp`.</p>

</details>### 7. Установить ***python3*** по умолчанию

Укажите системе использовать `python3` в качестве основной версии:

```bash
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1
```

### 8. Настройка правил ***firewall***

В зависимости от операционной системы на вашем сервере стандартные утилиты для управления сетевым фильтром будут отличаться, нажмите на соответствующий блок для получения информации.

<details id="bkmrk-centos-%D0%9F%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%B0-%D0%B4%D0%BB%D1%8F%C2%A0f"><summary>CentOS</summary>

##### Правила для firewalld:

```bash
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload
```

##### Наcтройка SELinux:

Настройки ***SELinux*** по умолчанию могут блокировать доступ к серверу с системой ***WiSLA***, рекомендуется настроить режим `Permissive`.

```bash
# Открываем файл
sudo nano /etc/selinux/config
# Утсанавливаем значение и сохраняем
SELINUX=permissive
# Выключаем на текущий момент чтобы не перезагружаться
setenforce 0
```

</details><details id="bkmrk-debian%2C-ubuntu-%D0%B8-ast"><summary>Debian, Ubuntu и Astra Linux</summary>

##### Правила для UFW:  


```bash
sudo ufw allow 8080/tcp
```

</details>### 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***

В зависимости от операционной системы на вашем сервере набор команд может отличаться, нажмите на соответствующий блок для получения информации.

<details id="bkmrk-centos-%D0%92%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5-%D0%BA%D0%BE%D0%BC"><summary>CentOS</summary>

##### Выполните команды приведённые ниже:

```bash
sudo dnf install glibc-locale-source glibc-langpack-ru 
sudo localectl set-locale LANG=ru_RU.UTF-8
```

##### Затем заново авторизуйтесь на сервере. 

</details><details id="bkmrk-ubuntu-%D0%92%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5-%D0%BA%D0%BE%D0%BC"><summary>Ubuntu</summary>

##### Выполните команды приведённые ниже:

```bash
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
```

##### Затем заново авторизуйтесь на сервере. 

</details>
<details id="bkmrk-debian-%D0%92%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5-%D0%BA%D0%BE%D0%BC"><summary>Debian</summary>

##### Выполните команды приведённые ниже:  


```bash
sudo locale-gen ru_RU.UTF-8
sudo dpkg-reconfigure locales
```

##### Затем заново авторизуйтесь на сервере. 

</details><p class="callout warning">**Обратите внимание!**  
Перед запуском программы установки следует выполнить команду `locale` и убедиться, что активна `ru_RU.UTF-8`. При возникновении проблем необходимо обратиться к документации по дистрибутиву для установки нужной локали. Также следует проверить вывод `timedatectl`, часовой пояс должен иметь буквенное обозначение вместо `n/a`.</p>

### 11. Подготовка системы к установке

Сгенерируйте SSH-ключ для беспарольного доступа по SSH для пользователя `wisla`:

```bash
# Переключитесь на пользователя 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
```

<p class="callout warning">**Обратите внимание!**  
Запроса пароля быть не должно! Если пароль запрашивается, тогда требуется найти причину и добиться входа без пароля, иначе в процессе установки будут происходить многократные запросы пароля. Причиной может быть неразрешённый тип ключа или несоответствие сетевого (доменного) имени.</p>

Отключите опцию ***KillUserProcesses***:

```bash
sudo sed -i 's/#KillUserProcesses=yes/KillUserProcesses=no/g' /etc/systemd/logind.conf
```

Перезагрузите сервер, чтобы применить изменения:

```bash
sudo reboot
```

Проделав указанные выше действия ваша операционная система подготовлена к запуску программы установки.


### 12. Запуск программы установки

Программа установки позволяет выполнить установку, настройку, обновление, удаление, запуск и остановку системы и её компонентов, резервное копирование и восстановление, а также предоставляет централизованный доступ к журналам работы. В случае распределённой или отказоустойчивой схемы установки программа запускается на одном из серверов, остальные серверы перечисляются в её настройках.

Внесение изменений в настройки работающей системы должно производиться через интерфейс программы установки. В этом случае они будут корректно внесены в соответствующие конфигурационные файлы системы и сохранены при обновлении системы.

<p class="callout warning">**Обратите внимание!**  
Программа установки должна запускаться под сервисной учётной записью в её окружении, в данном примере это пользователь `wisla`.</p>

<p class="callout info">В ходе тестирования выявлено, что при развёртывании окна терминала на весь экран программа установки не запустится.   
**Чтобы запустить установку не разворачивайте окно на весь экран!**</p>

Если установка системы будет аварийно прервана или завершена с ошибкой, журналы установки можно найти в каталоге с программой (`install*.log`, `runtime.log`). Информация о ходе установки также доступна в буфере эмулятора терминала.

**Переключитесь на каталог, в который была скопирована программа установки:**

```bash
cd /home/wisla
```

**Запустите программы установки от имени пользователя** `wisla` **выполнив команду ниже:**

```bash
./wisla*.run
```

<p class="callout success">Если программа установки не стартует попробуйте выполнить `export TERM=xterm` перед её запуском.</p>

Если приложение не запускается, следует проанализировать сообщения об ошибках и созданные в текущем каталоге log-файлы.

<p class="callout info">Навигация в программе установки осуществляется с помощью стрелок управления курсором, клавиш `Home`, `End`, `Tab`, `Esc` и `Enter`.   
Если требуется аварийно прервать работу программы, можно использовать комбинацию клавиш `CTRL+C`, для штатного завершения программы установки следует использовать кнопку `Exit`.</p>

##### В процессе установки вам также необходимо проверить следующие конфигурации:

**Окно '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.Необходимо выбрать почту с которой буду отправляться уведомления и выполнить настройку по [инструкции](https://yandex.ru/support/mail/mail-clients/others.html).  
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](mailto:test_push@yandex.ru))
- Mail from alias: email без домена (например: [test\_push](mailto:test_push@yandex.ru) )
- Mail port: 587
- Mail protocol: smtp
- Mail smtp auth: true
- Mail smtp starttls: true
- Mail user: email с которого планируется отправка уведомлений (например: [test\_push@yandex.ru](mailto: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-адреса.

3. Подтверждение настроек

На этом этапе можно вернуться назад и внести исправления в настройки. После подтверждения начинается процесс установки.

#### Процесс установки

Во время установки в каталог `/opt/wisla5` будут добавлены следующие компоненты:

- ***Zookeeper***;
- ***Hadoop***;
- ***HBase***;
- ***PostgreSQL***;
- ***Java Runtime Environment***;
- ***WildFly Application Server***;
- ***wiSLA Portal***.

Процесс можно прервать, нажав `CTRL+C`, все настройки будут сброшены.

После завершения установки будет предложено добавить систему в список автозагрузки – нажмите кнопку `Нет`.

<p class="callout warning">**Обратите внимание!**  
В ходе тестирования выявлено, что на ***Astra Linux*** в некоторых сценариях не создается `systemd unit`, при возникновении данной проблемы нужно создать его руками.</p>

Выполните команду ниже или создайте файл вручную с содержанием как на примере ниже:

```bash
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

Выйдите из программы установки и дождитесь завершения процесса в фоне.   
Первичный запуск системы может занимать до двух минут, ход установки можно отследить в журналах работы:

```bash
less -f /opt/wisla5/wildfly/current/standalone/log/server.log
less -f /opt/wisla5/wildfly/current/standalone/log/communicator.log
```

Маркером успешного запуска является следующее сообщение в журнале (server.log):

```bash
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-адрес сервера и порт.

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/bXCimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/bXCimage.png)

<span style="color: #000000;">   
</span>В данном примере система будет доступна по адресу `http://192.168.159.136:8080`.



## Обновление wiSLA


**Важно:** После обновления на версию wiSLA 5.2.13 необходимо пересохранить пароль для доступа к серверу LDAP и пароль приложений для почтовых уведомлений. Необходимо зайти под учетной записью "Admin" и в настройках системы поменять пароль Email &amp; Ldap на тот же, что и был и сохранить. Это необходимо, т.к. начиная с версии 5.2.13 был изменен алгоритм шифрования паролей.

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-08/scaled-1680-/0vDimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-08/0vDimage.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-08/scaled-1680-/FMyimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-08/FMyimage.png)

Рекомендуется обновляться с предыдущей минорной версии ***wiSLA*** (*5.1*-&gt;*5.2*-&gt;*5.2.1*-&gt;*5.2.2*-&gt;*5.2.3*).\\

1\) Запустить программу установки wiSLA 5.2.3;

2\) В основном меню выбрать пункт Update;

2.1) Подтвердить или отклонить создание резервной копии (рекомендуется сделать);

2.2) Подтвердить остановку компонентов wiSLA;

2.3) После загрузки настроек системы, в каждом окне проверить настройки (по необходимости внести правки) и подтвердить для продолжение установки;

2.4) После обновления и запуска всех компонентов системы подтвердить или отклонить добавление wiSLA в автозагрузку;

3\) После успешного запуска сервера приложений, выполнить индексацию (`Maintenance > wiSLA > Reindex` (*Не путать со <span style="text-decoration: underline;">Standalone Reindex</span>!);*

4\) Открыть портал, проверить работу системы;

5\) Очистить кэш браузера на всех рабочих местах.

**Возможные ошибки в процессе обновления:**

Иногда при обновлении до новой версии может зависнуть сервис `wildfly`, на это будут указывать следующие записи в журнале `server.log`:

```javascript
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/`:

```bash
sudo rm -rf /opt/wisla5/wildfly/wildfly-14.0.1.Final/bin/searchindexes/engine/sap/*
```

Затем повторно запустите процесс обновления с помощью инсталлятора `wisla`, после обновления системы не забудьте запустить индексацию.

**Если перед началом обновления требуется удалить данные из базы данных:**

Иногда при обновлении wiSLA структура таблиц в БД может кардинально измениться и для корректной работы мониторинга потребуется повторная постановка инфраструктуры на мониторинг.

В данной ситуации нужно проделать следующие действия:

1. Сделать резервную копию БД для возможности восстановления данных на другой машине со старой версией приложения;
2. Остановите приложения wiSLA;
3. Подключиться к БД используя клиент, например DBviewer;
4. Переключиться на БД wisla и выполнить скрипт wisla\_init\_schema.sql;
5. Затем выполнить скрипт wisla\_init\_schema.sql;
6. После выполнения скриптов отключитесь от БД и вернитесь к терминалу сервера с инсталлером;
7. Загрузите на сервер пустую БД wiSLA clear1.backup;
8. Перейдите в раздел backup и загрузите пустую БД в базу в режиме восстановления;
9. Загрузив БД перейдите к настройке PostgreSQL (Maintenance &gt; PostrgeSQL) и запустите патч для создания необходимых таблиц;
10. После того как таблицы будут сформированы запустите приложения 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** скопируйте файлы программы <span style="background-color: rgb(255, 255, 255);"><span style="color: rgb(35, 111, 161);">[**wisla-pre-installation-program**](https://cloud.wellink.ru/s/MEFqczi8fwrwnKn)</span> </span>и **<span style="color: rgb(35, 111, 161);">[инсталлятор wiSLA 5](https://cloud.wellink.ru/s/a69Cooz2p2aMTF7)</span>** на сервер, например в домашний каталог текущего пользователя.

##### 2. Подготовка к запуску. 

1\. Перенесите архив в домашний каталог пользователя на целевом компьютере или сервере.  
*Пример архива расположенного в каталоге пользователя:*

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-11/scaled-1680-/1FDimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-11/1FDimage.png)

2\. Распакуйте архив:

```bash
unzip wisla-pre-installation-program-2.1.zip -d wisla-pre-installation-program-2.1
```

3\. Перейди в каталог программы:

```bash
cd wisla-pre-installation-program-2.1
```

4\. Предоставьте программе права на выполнение:

```bash
sudo chmod +x preparing-os.start
```

##### 3. Запуск программы.

Запустите программу с правами суперпользователя:

```bash
sudo ./preparing-os.start
```

После запуска откроется меню:

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-11/scaled-1680-/KgWimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-11/KgWimage.png)

##### 4. Подготовка операционной системы

1\. В главном меню выберите пункт **<span style="color: rgb(53, 152, 219);">1</span>** и нажмите **<span style="color: rgb(53, 152, 219);">ENTER</span>**.  
2\. Программа запросит пароль для учётной записи Wisla. Введите новый пароль дважды.

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-11/scaled-1680-/Cpiimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-11/Cpiimage.png)

3\. При появлении запроса на изменение Hostname:  
Если имя устраивает, введите **<span style="color: rgb(53, 152, 219);">Н</span>**  
Если хотите изменить, введите <span style="color: rgb(53, 152, 219);">**Д** </span>, затем введите **<span style="color: rgb(53, 152, 219);">wisla</span>**.

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-11/scaled-1680-/YvDimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-11/YvDimage.png)

4\. Выберите тип обновления:  
<span style="color: rgb(53, 152, 219);">**1** </span>- с доступом в Интернет  
**<span style="color: rgb(53, 152, 219);">2</span>** - без доступа в Интернет

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-11/scaled-1680-/Itrimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-11/Itrimage.png)

5\. После завершения настройки введите пароль для генерации SSH-ключа.

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-11/scaled-1680-/00iimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-11/00iimage.png)

6\. Согласитесь на перезагрузку системы.

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-11/scaled-1680-/JF5image.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-11/JF5image.png)

##### 5. Установка Kafka

1\. После перезагрузки снова перейдите в каталог с программой:

```bash
cd wish-pre-installation-program-2.1
```

2\. Запустите программу

```bash
sudo ./preparing-os.start
```

3\. В главном меню выберите пункт **<span style="color: rgb(53, 152, 219);">2</span>**.

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-11/scaled-1680-/0Mzimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-11/0Mzimage.png)

4\. Выберите операционную систему (например, 1 для Astra Linux 1.7).

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-11/scaled-1680-/0gRimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-11/0gRimage.png)

5\. Дождитесь завершения установки.

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-11/scaled-1680-/eXqimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-11/eXqimage.png)

После успешной установки вы увидите информацию о каталогах, портах и командах для управления Kafka.

##### 6. Установка Wisla WIProbe Aggregator

1\. В главном меню выберите пункт **<span style="color: rgb(53, 152, 219);">3</span>**.

2\. Введите адрес сервера Kafka в формате:  
**<span style="color: rgb(53, 152, 219);">IP:PORT</span>**, например:<span style="color: rgb(53, 152, 219);"> **10.0.2.15:9092**</span>

3\. Введите адрес Wisla в формате:  
**<span style="color: rgb(53, 152, 219);">http://IP:PORT</span>**, например:<span style="color: rgb(53, 152, 219);"> **[http://10.0.2.15:8080/](http://10.0.2.15:8080/)**</span>

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-11/scaled-1680-/unUimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-11/unUimage.png)

4\. Нажмите **<span style="color: rgb(53, 152, 219);">ENTER</span>** для начала установки  
После завершения установки вы увидите информацию о каталогах и командах для управления службой.

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-11/scaled-1680-/XnNimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-11/XnNimage.png)

##### 7. Завершение работы

После успешной установки всех компонентов вы можете закрыть программу, нажав **<span style="color: rgb(53, 152, 219);">CTRL+C</span>**.

Ваша система полностью готова к работе с <span style="color: rgb(53, 152, 219);">**WISLA**</span>.

Если у вас возникнут вопросы, обратитесь в техническую поддержку.

#### Установка системы мониторинга wiSLA 5

##### 1. Запуск программы установки

1\. Завершив предварительную подготовку системы переключитесь на сервисную учётную запись `wisla`:

```bash
sudo su - wisla
```

2\. Загрузите на сервер программу установки ***wiSLA 5*** нужной версии с помощью утилиты `scp` или любым другим удобным для вас способом.

3\. Затем добавьте права на выполнение:

```bash
sudo chmod +x ./wisla-5.2.*.run
```


**Программа установки** обеспечивает выполнение всех основных операций с системой и её компонентами: установку, настройку, обновление, удаление, запуск и остановку. Она также поддерживает резервное копирование и восстановление данных, а также предоставляет централизованный доступ к журналам компонентов.

В распределённых или отказоустойчивых конфигурациях программа установки запускается на одном из серверов, при этом остальные сервера указываются в её настройках.

Изменения конфигурации работающей системы следует вносить исключительно через интерфейс программы установки. Это гарантирует корректное обновление соответствующих конфигурационных файлов и их сохранение при последующих обновлениях системы.

<p class="callout warning">**Обратите внимание!**   
Программа установки должна запускаться под сервисной учётной записью и в её окружении, в данном примере это пользователь `wisla`.</p>

<p class="callout info">**Информация**  
  
В ходе тестирования выявлено, что при развёртывании окна терминала на весь экран программа установки не запустится.   
**Чтобы запустить установку не разворачивайте окно терминала на весь экран!**</p>

Если установка системы будет аварийно прервана или завершена с ошибкой, журналы установки можно найти в каталоге с программой (`install*.log`, `runtime.log`). Информация о ходе установки также доступна в буфере эмулятора терминала.

Запустите программу установки от имени пользователя `wisla` выполнив команду ниже:

```bash
./wisla-5.2.*.run
```

<p class="callout success">Если программа установки не стартует попробуйте выполнить `export TERM=xterm` перед её запуском.</p>

Если приложение не запускается, следует проанализировать сообщения об ошибках и созданные в текущем каталоге журналы.

<p class="callout info">**Информация**  
  
Навигация в программе установки осуществляется с помощью стрелок управления курсором, клавиш `Home`, `End`, `Tab`, `Esc` и `Enter`.   
Если требуется аварийно прервать работу программы, можно использовать комбинацию клавиш `CTRL+C`, для штатного завершения программы установки следует использовать кнопку `Exit`.</p>

##### 2. Работа с программой установки wiSLA 5

Во время установки в каталог `/opt/wisla5` будут добавлены следующие компоненты:

- ***Zookeeper***;
- ***Hadoop***;
- ***HBase***;
- ***PostgreSQL***;
- ***Java Runtime Environment***;
- ***WildFly Application Server***;
- ***wiSLA Portal***.

Процесс можно прервать, нажав `CTRL+C`, все настройки будут сброшены.

**1. Окно "Installer startup configuration"**

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-11/scaled-1680-/Q90image.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-11/Q90image.png)

Проверьте параметры "***Install master***", при установке всех компонентов на один сервер его имя должно быть указано здесь.

**2. Окно "Old installation was not found. Select an action"**

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-11/scaled-1680-/Smiimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-11/Smiimage.png)

Выберете вариант **"*Install*"** чтобы перейти к дальнейшей настройке.

**3. Окно "Topology configuration"**

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-11/scaled-1680-/Sorimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-11/Sorimage.png)

При установке на сервер в одном экземпляре необходимо указать его `hostname` для всех модулей системы, при работе в кластере необходимо указать полную топологию.

Задав топологию запустится процесс инициализации модулей.

**4. Окно "Versions select"**

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-11/scaled-1680-/19Kimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-11/19Kimage.png)

Выберете нужную версию чтобы продолжить.

**5. Окно "Zookeeper Configuration"**

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-11/scaled-1680-/qN1image.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-11/qN1image.png)

**6. Окно "Hadoop configuration"**

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-11/scaled-1680-/WjDimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-11/WjDimage.png)

Проверьте имя ***hostname*** в "***Hadoop cluster name***" и порт, при развёртывании одного экземпляра укажите `localhost`.

**7. Окно "HBase configuration"**

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-11/scaled-1680-/TuSimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-11/TuSimage.png)

Проверьте имя ***hostname*** в "***Zookeeper quorum***".

**8. Окно "Postgresql configuration"**

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-05/scaled-1680-/WOFimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-05/WOFimage.png)

Нужно проверить и заполнить "***Trusted network/host"***, иначе будут проблемы с подключением ***Postgresql*** и патчами.

\* Чтобы принимать все подключения укажите значение `all` или `0.0.0.0/0`.

**9. Окно "Wildfly configuration"**

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-11/scaled-1680-/IGiimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-11/IGiimage.png)

Проверьте значение "***Heap size"***, для локальной установки хватит стандартного значения `2048`, при мониторинге инфраструктуры с большим числом устройств рекомендуется увеличить данное значение. При работе в кластере минимальное значение должно быть `8192`.

**10. Окно "wiSLA Topology Configuration"**

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-11/scaled-1680-/lhSimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-11/lhSimage.png)

**11. Окно "wiSLA Data Collection Configuration"**

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-11/scaled-1680-/qeIimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-11/qeIimage.png)

Нужно проверить и заполнить wiProbe destination, указать адрес агрегатора

<span style="color: rgb(53, 152, 219);">**wiProbe destination = http://IP\_СЕРВЕРА:18080/aggregator**</span>

**12. Окно "wiSLA Resources Configuration"**

<p class="callout info">**Укажите адрес и порт службы Kafka**</p>

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-11/scaled-1680-/aIHimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-11/aIHimage.png)

Убедитесь, что имя `hostname` указано в ***URL***.

**13. Окно "wiSLA Notification and ASI Configuration"**

<p class="callout info">**Если по умолчанию параметр "wiSLA notification enabled" принимает значение "false" измените на "true"**</p>

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-05/scaled-1680-/sf7image.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-05/sf7image.png)

На данном этапе необходимо указать параметры почтового клиента, если этого не сделать, тогда новые пользователи не смогут получать письма о добавлении учётной записи и другие уведомления, отсылаемые на email.

Также здесь можно включить отправку SNMP-уведомлений по определённым событиям.

**14. Окно "wiSLA Cloud System"**

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-05/scaled-1680-/5Vaimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-05/5Vaimage.png)


**15. Окно "Operator Portal Configuration"**

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-11/scaled-1680-/mJfimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-11/mJfimage.png)

<p class="callout warning">**Обратите внимание!**  
  
Если вы получаете доступ к порталу с помощью проброса портов или через прокси сервер, тогда вам необходимо отредактировать пункт ***HOST*** и в ***Whitelisted domains*** установить необходимые IP-адреса.</p>

**16. Окно "Confirm the installation"**

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-11/scaled-1680-/CJmimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-11/CJmimage.png)

На этом этапе вы ещё можете вернуться назад и внести исправления в настройки, после подтверждения начинается процесс установки.

**17. Окно "Add wiSLA to the autorun list"**

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-11/scaled-1680-/Clqimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-11/Clqimage.png)

После установки системы будет предложено добавить службу в список автозагрузки, нажмите кнопку `Yes`, если вы установили её на `Debian` или `Ubuntu`.

<details id="bkmrk-astra-linux-%D0%95%D1%81%D0%BB%D0%B8-%D0%B2%D1%8B-"><summary>Astra Linux</summary>

Если вы используете ***Astra Linux*** нажмите кнопку `No`, т.к. `systemd unit` для ***wiSLA 5*** был создан ранее программой предварительной настройки узла.

После установки ***wiSLA 5*** вам необходимо вручную добавить службу в автозагрузку, для этого выполните приведённую ниже команду:

```bash
sudo systemctl enable wisla.service
```

</details>Система мониторинга ***wiSLA 5*** установлена на ваш сервер.

##### 3. Запуск wiSLA

Выйдите из программы установки и дождитесь завершения процесса в фоне.   
Первичный запуск системы может занимать до двух минут, ход установки можно отследить в журналах работы:

```bash
less -f /opt/wisla5/wildfly/current/standalone/log/server.log
less -f /opt/wisla5/wildfly/current/standalone/log/communicator.log
```

Маркером успешного запуска является следующее сообщение в журнале (server.log):

```bash
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-адрес сервера и порт.

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-06/scaled-1680-/5moimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-06/5moimage.png)

<span style="color: #000000;">   
</span>В данном примере система будет доступна по адресу `https://wisla.it-superman.keenetic.pro`.

# Инструкция по ручному развертыванию Kafka в кластерном режиме для Wisla

В данном руководстве описано как подготовить систему и развернуть Kafka в кластерном режиме для работы с Wisla в отказоустойчивом контуре.

##### **Предварительные условия:**

1.Архив OpenJDK 17 ()  
2.Архив Kafka 2.13-4.1.1

3.Как минимум 3 сервера для развертывания

4.Пользователь wisla

<details id="bkmrk-redos-%D0%A1-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BE%D0%BC-%D0%BA-%D1%81"><summary>Если пользователь wisla еще не существует в системе его необходимо создать используя следующие команды пошагово.</summary>

1.Команда создания пользователя:

```bash
sudo useradd -d /home/wisla -m -s /bin/bash wisla
```

2.Команда установки пароля:

```bash
sudo passwd wisla
```

3.Добавление пользователя в файлы sudoers:

```bash
echo "wisla    ALL=(ALL:ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/wisla
```

4.Настройка системных лимитов для пользователя wisla:

```bash
# Создаем файл лимитов
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 (если нет):

```bash
echo "session required pam_limits.so" >> /etc/pam.d/common-session
```

</details>##### **Этап 1. Подготовка каталогов на всех узлах**

1.Создание каталогов:

```bash
sudo mkdir -p /opt/kafka
sudo mkdir -p /var/lib/kafka
sudo mkdir -p /var/log/kafka
```

2.Выдача прав:

```bash
sudo chown -R wisla:wisla /opt/kafka
sudo chown -R wisla:wisla /var/lib/kafka
sudo chown -R wisla:wisla /var/log/kafka
```

3.Проверка прав:

```bash
ls -ld /opt/kafka /var/lib/kafka /var/log/kafka
```

##### **Этап 2. Копирование и распаковка Java на всех узлах**

1.Скопируем архив Java в домашнюю директорию wisla используя следующую команду:

```bash
cp OpenJDK17U-jdk_x64_linux_hotspot_17.0.17_10.tar.gz /home/wisla/
```

2.Смена пользователя у архива:

```bash
sudo chown wisla:wisla /home/wisla/OpenJDK17U-jdk_x64_linux_hotspot_17.0.17_10.tar.gz
```

3.Распаковка архива в /opt/kafka:

- Переходим в каталог kafka используя следующую команду:  
    ```bash
    cd /opt/kafka
    ```
- Распаковка архива:  
    ```bash
    tar -xzf /home/wisla/OpenJDK17U-jdk_x64_linux_hotspot_17.0.17_10.tar.gz
    ```
- Проверка распаковки:  
    ```bash
    ls -la /opt/kafka/
    ```

4.Настройка переменных окружения:

```bash
export JAVA_HOME="/opt/kafka/jdk-17.0.17+10"
export PATH="$JAVA_HOME/bin:$PATH"
export KAFKA_HOME="/opt/kafka"
```

5.Применение изменений:

```bash
source ~/.bashrc
```

6.Проверка:

```bash
java -version
```

##### **Этап 3. Копирование и распаковка Kafka на всех узлах**

1.Скопируем архив Kafka в домашнюю директорию wisla используя следующую команду:

```bash
cp kafka_2.13-4.1.1.tgz /opt/kafka/
```

2.Смена пользователя у архива:

```bash
sudo chown wisla:wisla /opt/kafka/kafka_2.13-4.1.1.tgz
```

3.Распаковка архива в /opt/kafka:

- Переходим в каталог kafka используя следующую команду:  
    ```bash
    cd /opt/kafka
    ```
- Распаковка архива:  
    ```bash
    tar -xzf kafka_2.13-4.1.1.tgz --strip-components=1
    ```
- Проверка распаковки:  
    ```bash
    ls -la /opt/kafka/bin/
    ```

##### **Этап 4. Генерация уникального ID кластера (только на 1 сервере)**

1.Переходим в каталог kafka используя следующую команду:

```bash
cd /opt/kafka
```

2.Запускаем скрипт генерации ID:

```bash
./bin/kafka-storage.sh random-uuid
```

Записать полученный ID, например:

##### **Этап 5. Конфигурация кластера на всех узлах**

1.Настройка конфигурации на сервере 1:

```bash
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:

```bash
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:

```bash
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.Проверка конфигураций:

```bash
cat /opt/kafka/config/kraft/server.properties
```

##### **Этап 6. Инициализация хранилищ на всех узлах**

1.На каждом сервере по очереди

- Экспорт кластер ID:  
    ```bash
    export CLUSTER_ID="wisla-3node-cluster-12345"
    ```
- Переходим в каталог kafka:  
    ```bash
    cd /opt/kafka
    ```
- Добавляем кластер ID:  
    ```bash
    ./bin/kafka-storage.sh format \
      -t $CLUSTER_ID \
      -c /opt/kafka/config/kraft/server.properties
    ```
- Проверяем  
    ```bash
    cat /var/lib/kafka/meta.properties
    ```

##### **Этап 7. Создаем сервис службы Kafka на всех узлах**

1.Создаем Unit:

```bash
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:

```bash
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\. Создаем скрипт запуска кластера на первом сервере:

```bash
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.Создаем скрипт остановки кластера на первом сервере:

```bash
sudo cat > /usr/local/bin/kafka-cluster-stop << 'EOF'
#!/bin/bash
echo "Остановка кластера Kafka..."

# Остановка в правильном порядке (сначала реплики, потом лидеры)
systemctl stop kafka
echo "Node $(hostname): Kafka остановлен"

echo "Кластер Kafka остановлен"
EOF
```

3.Создание скрипта проверки статуса на первом сервере:

```bash
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.Создание скрипта управления топиками:

```bash
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.Предоставление прав на исполнение:

```bash
sudo chmod +x /usr/local/bin/kafka-*
```

6\. Настройка /etc/hosts

```bash
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.Настройка брандмауэра (Опционально):

```bash
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 на всех узлах:

```bash
sudo systemctl daemon-reload
```

2.Добавление в автозапуск на всех узлах:

```bash
sudo systemctl enable kafka
```

3.Запуск кластера (ВАЖНО: запускать на всех узлах в течение 30 секунд):

```bash
# На wisla01:
sudo systemctl start kafka

# На wisla02 (в течение 30 секунд после wisla01):
sudo systemctl start kafka

# На wisla03 (в течение 30 секунд после wisla02):
sudo systemctl start kafka
```

4.Проверка статуса службы:

```bash
sudo systemctl status kafka
```

Дополнительная проверка:  
Так же после установки и запуска службы Kafka можно создать скрипт проверки статусов работы кластера Kafka.  
1.Создать файл скрипта командой:

```bash
sudo nano /usr/local/bin/kafka-cluster-monitor
```

2.Предоставить права на исполнение:

```bash
sudo chmod +x /usr/local/bin/kafka-cluster-monitor
```

3.Добавить скрипт в файл

```bash
#!/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.Запустить скрипт для проверки

```bash
./kafka-cluster-monitor
```

# Настройка Kafka для работы с wiSLA (и с wiProbe Aggregator)

## 1. Установка Docker

Перед началом работы необходимо убедиться, что Docker установлен и работает.

**Для систем без выхода в интернет**  
Скачайте архив [Docker.zip ](https://cloud.wellink.ru/s/bDCp7pDScYgWfet)и распакуйте из него нужные версии 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 не установлен, выполните следующие команды:

```bash
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
```

> <span style="color: rgb(52, 73, 94);">***Примечание для Astra Linux:**  
> В Astra Linux установка Docker имеет специфические особенности, особенно в изолированных средах без доступа к интернету. Рекомендуется ознакомиться с инструкцией: <span style="color: rgb(35, 111, 161);">[Установка wiCore без доступа к сети интернет](https://wiki.wellink.ru/books/aeroflot/page/ustanovka-wicore-bez-dostupa-k-seti-internet)</span>*</span>


## 2. Развертывание Kafka через Docker Compose

2.1 Создайте файл `docker-compose.yml` со следующим содержимым и замените в `KAFKA_CFG_ADVERTISED_LISTENERS` адрес `127.0.0.1` на актуальный IP-адрес сервера wiSLA:

<p class="callout info">Пути к докер манифестам bitnami обновлены в связи с недоступностью новых, Bitnami объявила о переходе многих своих Docker-образов в статус "legacy".</p>

**Актуальные данные файла `docker-compose.yml` на 01.10.2025:**

```yaml
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
```

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-07/scaled-1680-/JIqimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-07/JIqimage.png)

 Проверьте логи 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** прописать правильные пути для логов:

```bash
<property name="LOG_FILE" value="/home/wisla/aggrlog/aggregator.log" />
.....
  <fileNamePattern>/home/wisla/aggrlog/aggregator.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
```

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-07/scaled-1680-/iKrimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-07/iKrimage.png)

**3.4. Настройка автозапуска через systemd**

- **Создайте systemd unit** для автоматического запуска агрегатора, с указанием пути, где лежит агрегатор:

```bash
sudo nano /etc/systemd/system/aggr-jar.service
```

- **Вставьте конфигурацию** (адаптируйте пути и имя пользователя!):

```bash
[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. Запуск и проверка**:

```bash
# Обновить конфигурацию
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
```

<div id="bkmrk--1"></div>
## **4. Настройка wiSLA для работы с Kafka и Aggregator**

**4.1. В `wiSLA Data Collection Configuration` укажите адрес агрегатора**:

```
wtProbe destination = http://ВАШ_IP_АГРЕГАТОРА:18080/aggregator
```

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-07/scaled-1680-/LKsimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-07/LKsimage.png)

**4.2. В `wiSLA Resources Configuration` укажите адрес Kafka**:

```
Kafka bootstrap servers = ВАШ_IP_КАФКА:9092
```

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-07/scaled-1680-/vZpimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-07/vZpimage.png)

## **5. Особенности работы с Kafka и агрегатором**

##### 5.1. Варианты конфигурации системы

<span style="text-decoration: underline;">**Standalone-режим (один сервер wiSLA)**:</span>

- Полноценная работа с логированием
- Данные идут через агрегатор → Kafka
- Просмотр логов через Redpanda Console (http://IP\_KAFKA:8085)
- *Конфиг*<span lang="EN-US" style="mso-ansi-language: EN-US;">: WISLA\_WIPROBE\_DESTINATION = http://aggregator\_ip:18080/aggregator</span>

<span style="text-decoration: underline;">*<span style="font-size: 11.0pt; line-height: 107%; font-family: 'Calibri',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: RU; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Рекомендуется для новых установок</span>*</span>

**Кластерный режим**:

- ✅ **Только с 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 и агрегатор – это обеспечит единый подход к логированию и упростит переход на кластерную архитектуру в будущем.

<div id="bkmrk--6">[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-07/scaled-1680-/XSDimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-07/XSDimage.png)</div>

# Изменение одного или нескольких параметров wiSLA

<span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);">Если требуется внести изменения в настройки уже установленной системы wiSLA, следует:</span>

1. <span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);">Запустить программу установки. Перейти в основное меню. Внешний вид основного меню показан на рисунке 27. </span><span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);">![](https://wiki.wellink.ru/uploads/images/gallery/2024-01/embedded-image-pllxurvo.png)</span>
    
    <span style="background-color: rgb(255, 255, 255); color: rgb(35, 111, 161);"><span style="font-size: 10pt; line-height: 120%; font-family: Arial, sans-serif;">Рис. </span><span style="font-size: 10pt; line-height: 120%; font-family: Arial, sans-serif;"><span style="mso-no-proof: yes;">27</span></span><span style="font-size: 10pt; line-height: 120%; font-family: Arial, sans-serif;"> Главное меню программы установки в случае обнаружения установленной wiSLA </span></span>
2. <span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);"><span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);"><span style="font-size: 10pt; line-height: 120%; font-family: Arial, sans-serif;">Выбрать пункт меню «Config update». Если этого пункта меню нет в списке, установка была  
    выполнена некорректно или на первом экране при запуске программы установки были  
    указаны ошибочные данные.  
    </span></span></span>
3. <span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);"><span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);"><span style="font-size: 10pt; line-height: 120%; font-family: Arial, sans-serif;">Найти, изменить требуемый параметр.  
    </span></span></span>
4. <span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);"><span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);"><span style="font-size: 10pt; line-height: 120%; font-family: Arial, sans-serif;">Выполнить перезапуск wiSLA.</span></span></span>

# Экранные формы хода установки (Работа с программой установки)

Программа установки позволяет выполнить установку, настройку, обновление, удаление, запуск и остановку системы и её компонентов, резервное копирование и восстановление, а также предоставляет централизованный доступ к журналам работы. В случае распределённой или отказоустойчивой схемы установки программа запускается на одном из серверов, остальные серверы перечисляются в её настройках.

Внесение изменений в настройки работающей системы должно производиться через интерфейс программы установки. В этом случае они будут корректно внесены в соответствующие конфигурационные файлы системы и сохранены при обновлении системы. Программа установки должна выполняться от имени пользователя wisla и в его окружении. Для корректной работы программы не рекомендуется разворачивать окно на весь экран. Если установка wiSLA будет аварийно прервана или завершена с ошибкой, журналы установки можно найти в рабочем каталоге (install\*.log, runtime.log). Информация о ходе установки также доступна в буфере эмулятора терминала.

## Запуск программы установки

  
Для запуска программы установки требуется:  
1\. Выполнить вход от имени пользователя wisla с инициализацией переменных окружения:

```bash
su -l wisla
```

2\. Войти в каталог, куда была скопирована программа установки, и выполнить команду  
запуска:

```
./wisla*.run
```

Должно открыться окно, показанное на рисунке 9

![](https://wiki.wellink.ru/uploads/images/gallery/2024-01/embedded-image-vx27jazm.png)

<span style="color: rgb(35, 111, 161);">Рис. 9 Интерфейс программы установки: окно предварительных настроек</span>

<span style="color: rgb(0, 0, 0);">Если показанное на рисунке 9 окно не открылось, следует проанализировать сообщения об ошибках и созданные в текущем каталоге log-файлы.</span>

<span style="color: rgb(0, 0, 0);">Навигация в программе установки осуществляется с помощью стрелок управления курсором, клавиш Home, End, Tab, Esc и Enter. Если требуется аварийно прервать работу программы, можно использовать комбинацию клавиш CTRL+C. Для штатного завершения программы установки следует использовать кнопку Exit. После выхода из программы установки экраны с историей выполнения доступны в буфере терминала.</span>

## <span style="color: rgb(0, 0, 0);">Перечень действий для установки wiSLA  
</span>

<span style="color: rgb(0, 0, 0);">Ниже будут описаны действия для установки wiSLA на один сервер. В примере сервер будет назван VM1.</span>

<span style="color: rgb(0, 0, 0);">1. Запустить программу установки.</span>

<span style="color: rgb(0, 0, 0);">2. На первом экране принять предложенные настройки, нажав Enter. Программа установки проанализирует окружение. Если это первый запуск, откроется меню, показанное на рисунке 10.  
</span><span style="color: rgb(0, 0, 0);">![](https://wiki.wellink.ru/uploads/images/gallery/2024-01/embedded-image-1wyqbonw.png)</span>

<span style="color: rgb(0, 0, 0);"><span style="color: rgb(35, 111, 161);">Рис. 10 Интерфейс программы установки: меню при первом запуске</span>  
</span>

<span style="color: rgb(0, 0, 0);">Из заголовка окна видно, что система не обнаружила установленной wiSLA на данном сервере. В описании к действию Install отображается версия, которая будет установлена, и номер сборки. Номер сборки на рисунке (цифры после «build») приведён на момент написания документа и может отличаться, так как любое изменение программного кода сопровождается пересборкой дистрибутива. Для перехода к следующему шагу нужно нажать Enter (выполнив тем самым действие «Next»), на выделенной строке «Install».  
</span>

<span style="color: rgb(0, 0, 0);">3. На следующем экране задаётся топология будущего контура wiSLA. В примере, показанном на рисунке 11, установка всех компонентов проводится на один сервер VM1. В зависимости от размера окна некоторые настройки могут оказаться вне области видимости. Для доступа к ним нужно последовательно нажимать кнопку «вниз». По достижении самой нижней строки настройки на уровне границы окна под настройкой появляется отметка «100%».</span>

<span style="color: rgb(0, 0, 0);">Настройка топологии выполняется один раз при первой установке системы. Впоследствии смена топологии через настройки программы установки не приведёт к желаемому результату (потребуется скорректировать ряд настроек вручную или выполнить установку «с нуля» с восстановлением данных из резервной копии), поэтому рекомендуется внимательно проверять введённые данные на данном этапе установки. После выполнения настроек переход к следующему экрану осуществляется кнопкой Next.  
</span>

<span style="color: rgb(0, 0, 0);">Если требуется распределить компоненты по разным серверам, нужно указать соответствующие доменные или сетевые имена серверов. В этом случае нужно, чтобы между серверами был организован беспарольный доступ по ключу (SSH) для пользователя wisla.</span>

<p class="callout info"><span style="color: rgb(0, 0, 0);"> ноды для апп серверов(сбор данных c slamon агентов) можно сделать 6 штук + op,cont по 2 штуки </span></p>

<span style="color: rgb(0, 0, 0);">![](https://wiki.wellink.ru/uploads/images/gallery/2024-01/embedded-image-izwntjcj.png)</span>

<span style="color: rgb(35, 111, 161);">Рис.<span style="color: #206ea7;"> </span><span style="mso-no-proof: yes;">11</span> Интерфейс программы установки: топология</span>

<span style="color: rgb(0, 0, 0);">4. После задания топологии система может запросить пароль пользователя wisla. Это нужно для выполнения команды создания рабочего каталога в /opt, что требует привилегий *sudo*.  
5\. После создания рабочего каталога будет выполнена инициализация необходимых модулей и распаковка дистрибутива во временный каталог. Время ожидания зависит от производительности дисковой подсистемы сервера.  
6\. На следующем экране (рисунок 12) требуется выбрать версию и архитектуру Java Runtime Environment (как правило, используется архитектура x86\_64, а версия представлена одна).</span>

<span style="color: rgb(0, 0, 0);">![](https://wiki.wellink.ru/uploads/images/gallery/2024-01/embedded-image-yvivy1t2.png)</span>

<span style="color: rgb(35, 111, 161);">Рис.<span style="mso-no-proof: yes;">12</span> Интерфейс программы установки: выбор версии JRE</span>

<span style="color: rgb(0, 0, 0);">7. После распаковки и выбора версии JRE программа установки оценит параметры сервера и автоматически рассчитает значения по распределению оперативной памяти для различных компонентов системы. Впоследствии их можно будет изменить, однако это стоит делать только в том случае, когда администратору точно известно, что предложенные значения неоптимальны или ошибочны.  
8\. Настройка компонента Zookeper (рисунок 13). Рекомендуется оставить настройки, предложенные по умолчанию.</span>

<span style="color: rgb(0, 0, 0);">![](https://wiki.wellink.ru/uploads/images/gallery/2024-01/embedded-image-92njb2d4.png)</span>

<span style="color: rgb(35, 111, 161);">Рис.<span style="mso-no-proof: yes;">13</span> Интерфейс программы установки: настройки компонента Zookeeper</span>

<span style="color: rgb(0, 0, 0);">9. Настройка компонента Hadoop (рисунок 14). Рекомендуется оставить настройки, предложенные по умолчанию</span>

<span style="color: rgb(0, 0, 0);">![](https://wiki.wellink.ru/uploads/images/gallery/2024-01/embedded-image-5hthqfrc.png)</span>

<span style="color: rgb(35, 111, 161);">Рис.<span style="mso-no-proof: yes;">14</span> Интерфейс программы установки: настройки компонента Hadoop</span>

<span style="color: rgb(0, 0, 0);">10. Настройка компонента HBase (рисунок 15). Рекомендуется оставить настройки, предложенные по умолчанию.</span>

<span style="color: rgb(0, 0, 0);">![](https://wiki.wellink.ru/uploads/images/gallery/2024-01/embedded-image-mrkml3jn.png)</span>

<span style="color: rgb(35, 111, 161);">Рис.<span style="mso-no-proof: yes;">15</span> Интерфейс программы установки: настройки компонента HBase</span>

<span style="color: rgb(0, 0, 0);">11. Настройка компонента PostgreSQL (рисунок 16). Требуется прокрутить список настроек и изменить параметр «Trusted network/host». В примере сервер БД будет принимать все подключения от адресов 10.0.2.x. В случае неудачной настройки параметра установка wiSLA завершится ошибкой, так как сервер БД не сможет инициализировать БД.</span>

<span style="color: rgb(0, 0, 0);">![](https://wiki.wellink.ru/uploads/images/gallery/2024-01/embedded-image-roh9lwty.png)</span>

<span style="color: rgb(35, 111, 161);">Рис. <span style="mso-no-proof: yes;">16</span> Интерфейс программы установки: настройки компонента PostgreSQL</span>

<span style="color: rgb(0, 0, 0);">12. Настройка компонента Wildfly (рисунок 17). Рекомендуется оставить настройки, предложенные по умолчанию.</span>

<span style="color: rgb(0, 0, 0);">![](https://wiki.wellink.ru/uploads/images/gallery/2024-01/embedded-image-9nys5d0d.png)</span>

<span style="color: rgb(35, 111, 161);">Рис.<span style="mso-no-proof: yes;">17</span> Интерфейс программы установки: настройки сервера приложений <span lang="EN-US" style="mso-ansi-language: EN-US;">Wildfly</span></span>

<span style="color: rgb(0, 0, 0);"><span lang="EN-US" style="mso-ansi-language: EN-US;">13. Настройка топологии wiSLA. В примере все компоненты устанавливаются на сервер с именем VM1 (рисунок 18).</span></span>

<span style="color: rgb(0, 0, 0);"><span lang="EN-US" style="mso-ansi-language: EN-US;">![](https://wiki.wellink.ru/uploads/images/gallery/2024-01/embedded-image-newyspyd.png)</span></span>

<span style="color: rgb(35, 111, 161);">Рис. <span style="mso-no-proof: yes;">18</span> Интерфейс программы установки: настройки топологии wiSLA</span>

<span style="color: rgb(0, 0, 0);">14. Настройки модуля сбора данных. Если планируется использование зондов wiProbe, нужно прокрутить список и изменить настройку «wiProbe destination». В ней задаётся адрес, который будет использоваться зондом для отправки данных в систему wiSLA, в форме URL (рисунок 19). Остальные параметры менять без необходимости не рекомендуется.</span>

<span style="color: rgb(0, 0, 0);">![](https://wiki.wellink.ru/uploads/images/gallery/2024-01/embedded-image-nmp5nmrd.png)</span>

<span style="color: rgb(35, 111, 161);">Рис. <span style="mso-no-proof: yes;">19</span> Интерфейс программы установки: настройки модуля сбора данных  
  
</span>

<span style="color: rgb(0, 0, 0);">15. Настройки интеграции LDAP (в том числе, Active Directory), рисунок 20. Если LDAP не планируется использовать, рекомендуется оставить значения по умолчанию.</span>

<span style="color: rgb(0, 0, 0);">![](https://wiki.wellink.ru/uploads/images/gallery/2024-01/embedded-image-m6yxlzfq.png)</span>

<span style="color: rgb(35, 111, 161);">Рис. 20 Интерфейс программы установки: настройки интеграции LDAP</span>

<span style="color: rgb(0, 0, 0);">16. Настройки дополнительных ресурсов wiSLA. Рекомендуется оставить значения по умолчанию (рисунок 21).</span>

<p class="callout warning"><span style="color: rgb(0, 0, 0);">При необходимости ограничения исторических данных рекомендуется изучить рисунок 21.1</span></p>

<span style="color: rgb(0, 0, 0);">![](https://wiki.wellink.ru/uploads/images/gallery/2024-01/embedded-image-w98b1rz9.png)</span>

<span style="color: rgb(35, 111, 161);">Рис. 21 Интерфейс программы установки: настройки дополнительных ресурсов</span>

**a. "Store metrics data only for this period"** - Данный параметр отвечает за период в течении которого будет осуществляться хранение данных. Указывается в днях. Стандартное значение не указано. Минимально возможное значение 0 дней. Дробные значения и значения &lt;0 недопустимы.

<p class="callout warning">Не рекомендуется устанавливать параметр **"Store metrics data only for this period"** **= 0**, в таком случае будут удалены все исторические данные показателей.  
</p>

**b. "Metrics eraser schedule period"** - Данный параметр отвечает за периодичность запуска механизма удаления данных из нереляционной базы Hbase. Указывается в днях. Стандартное значение - 7 дней. Минимально возможное значение 1 день. Дробные значения и значения &lt;0 недопустимы.

<p class="callout warning">Не рекомендуется устанавливать параметр **"Metrics eraser schedule period"** **= 0**, в таком случае механизм удаления данных не будет запускаться.  
</p>

*\*Реализована возможность гибкой настройки параметров удаления данных. Например, можно удалять данные раз в год, оставляя при этом данные за последний месяц (Значение для первого параметра = 30, для второго параметра = 365)*

[![11.png](https://wiki.wellink.ru/uploads/images/gallery/2023-06/scaled-1680-/11.png)](https://wiki.wellink.ru/uploads/images/gallery/2023-06/11.png)  
Рис. 21.1. Экран инсталлятора wiSLA (Вкладка wiSLA Resources Configuration)

<span style="color: rgb(0, 0, 0);">17. Настройка рассылки уведомлений (рисунок 22). На этом экране, как минимум, требуется указать параметры подключения к почтовому серверу. Если этого не сделать, новые пользователи не смогут получать письма о добавлении учётной записи и другие уведомления, отсылаемые на адрес электронной почты. Также здесь можно включить отправку SNMP-уведомлений по определённым событиям. Обязательные для настройки параметры перечислены в таблице 3.</span>

<span style="color: rgb(0, 0, 0);">![](https://wiki.wellink.ru/uploads/images/gallery/2024-01/embedded-image-wv6fakn5.png)</span>

Рис.<span style="mso-no-proof: yes;">22</span> Интерфейс программы установки: настройка рассылки уведомлений

<span style="color: rgb(35, 111, 161);">Таблица 3 – Параметры подключения к почтовому серверу.</span>

<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80-%D0%9D%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-" style="border-collapse: collapse; width: 100%; border-width: 1px; border-spacing: 0px;"><thead><tr><td style="width: 120.5pt; border: 1pt solid black; padding: 0cm 5.4pt; height: 26.7292px;" valign="top" width="161">**Параметр**

</td><td style="width: 191.35pt; border-top: 1pt solid black; border-right: 1pt solid black; border-bottom: 1pt solid black; border-image: initial; border-left: none; padding: 0cm 5.4pt; height: 26.7292px;" valign="top" width="255">**Назначение**

</td><td style="width: 99.25pt; border-top: 1pt solid black; border-right: 1pt solid black; border-bottom: 1pt solid black; border-image: initial; border-left: none; padding: 0cm 5.4pt; height: 26.7292px;" valign="top" width="132">**Пример значения**

</td></tr></thead><tbody><tr><td style="width: 120.5pt; border-right: 1pt solid black; border-bottom: 1pt solid black; border-left: 1pt solid black; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 27.7292px;" valign="top" width="161"><span lang="EN-US" style="mso-ansi-language: EN-US;">Notification enabled</span>

</td><td style="width: 191.35pt; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 27.7292px;" valign="top" width="255">Включает рассылку по электронной почте

</td><td style="width: 99.25pt; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 27.7292px;" valign="top" width="132"><span lang="EN-US" style="mso-ansi-language: EN-US;">true</span>

</td></tr><tr><td style="width: 120.5pt; border-right: 1pt solid black; border-bottom: 1pt solid black; border-left: 1pt solid black; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="161"><span lang="EN-US" style="mso-ansi-language: EN-US;">Mail host</span>

</td><td style="width: 191.35pt; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="255"><span lang="EN-US" style="mso-ansi-language: EN-US;">IP</span> или <span lang="EN-US" style="mso-ansi-language: EN-US;">DNS</span>-адрес почтового сервера

</td><td style="width: 99.25pt; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="132"><span lang="EN-US" style="mso-ansi-language: EN-US;">smtp.gmail.com</span>

</td></tr><tr><td style="width: 120.5pt; border-right: 1pt solid black; border-bottom: 1pt solid black; border-left: 1pt solid black; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="161"><span lang="EN-US" style="mso-ansi-language: EN-US;">Mail port</span>

</td><td style="width: 191.35pt; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="255">Порт, прослушиваемый почтовым сервером

</td><td style="width: 99.25pt; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="132">5<span lang="EN-US" style="mso-ansi-language: EN-US;">87</span>

</td></tr><tr><td style="width: 120.5pt; border-right: 1pt solid black; border-bottom: 1pt solid black; border-left: 1pt solid black; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="161"><span lang="EN-US" style="mso-ansi-language: EN-US;">Mail protocol</span>

</td><td style="width: 191.35pt; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="255">Протокол, используемый почтовым сервером

</td><td style="width: 99.25pt; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="132"><span lang="EN-US" style="mso-ansi-language: EN-US;">smtps</span>

</td></tr><tr><td style="width: 120.5pt; border-right: 1pt solid black; border-bottom: 1pt solid black; border-left: 1pt solid black; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="161"><span lang="EN-US" style="mso-ansi-language: EN-US;">Mail SMTP auth</span>

</td><td style="width: 191.35pt; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="255">Включается, если почтовый сервер поддерживает <span lang="EN-US" style="mso-ansi-language: EN-US;">smtp</span>-авторизацию

</td><td style="width: 99.25pt; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="132"><span lang="EN-US" style="mso-ansi-language: EN-US;">true</span>

</td></tr><tr><td style="width: 120.5pt; border-right: 1pt solid black; border-bottom: 1pt solid black; border-left: 1pt solid black; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="161"><span lang="EN-US" style="mso-ansi-language: EN-US;">Mail SMTP STARTTLS</span>

</td><td style="width: 191.35pt; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="255">Включается, если почтовый сервер поддерживает <span lang="EN-US" style="mso-ansi-language: EN-US;">SMTP</span> <span lang="EN-US" style="mso-ansi-language: EN-US;">STARTTLS</span>

</td><td style="width: 99.25pt; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="132"><span lang="EN-US" style="mso-ansi-language: EN-US;">true</span>

</td></tr><tr><td style="width: 120.5pt; border-right: 1pt solid black; border-bottom: 1pt solid black; border-left: 1pt solid black; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="161"><span lang="EN-US" style="mso-ansi-language: EN-US;">Mail user</span>

</td><td style="width: 191.35pt; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="255">Имя пользователя, от имени которого выполняется рассылка

</td><td style="width: 99.25pt; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="132"><span lang="EN-US" style="mso-ansi-language: EN-US;">wisla.vm1</span>

</td></tr><tr><td style="width: 120.5pt; border-right: 1pt solid black; border-bottom: 1pt solid black; border-left: 1pt solid black; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="161"><span lang="EN-US" style="mso-ansi-language: EN-US;">Mail password</span>

</td><td style="width: 191.35pt; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="255">Пароль пользователя, от имени которого выполняется рассылка

</td><td style="width: 99.25pt; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="132">пароль

</td></tr><tr><td style="width: 120.5pt; border-right: 1pt solid black; border-bottom: 1pt solid black; border-left: 1pt solid black; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 68.5208px;" valign="top" width="161"><span lang="EN-US" style="mso-ansi-language: EN-US;">Tickets per notification</span>

</td><td style="width: 191.35pt; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 68.5208px;" valign="top" width="255">Используется для группировки писем по инцидентам в блоки по <span lang="EN-US" style="mso-ansi-language: EN-US;">N</span> штук. Если установлена единица, на каждый инцидент отправляется по одному письму

</td><td style="width: 99.25pt; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 68.5208px;" valign="top" width="132">1

</td></tr></tbody></table>

18\. Настройки wiSLA.Cloud (рисунок 23) позволяют включить или выключить облачный режим системы wiSLA и выполнить его настройку. Подробно данный режим работы рассмотрен в разделе «Облачный режим wiSLA».

![](https://wiki.wellink.ru/uploads/images/gallery/2024-01/embedded-image-zra1ss12.png)

<span style="color: rgb(35, 111, 161);">Рис.<span style="color: #206ea7;"> </span><span style="mso-no-proof: yes;">23</span> Интерфейс программы установки: настройки wiSLA.Cloud</span>

<span style="color: rgb(0, 0, 0);">19. Настройки портала оператора (Рис. 24) позволяют настроить URL для работы системы и задать, сколько дней актуален сохранённый профиль пользователя (имеется в виду сохранение, которое проводится флажком «Запомнить меня» на портале).</span>

<p class="callout warning"><span style="color: rgb(0, 0, 0);">Обращаем ваше внимание, если вы получаете доступ к порталу с помощью проброса портов или через прокси сервер, то вам необходимо отредактировать пункт HOST и в Whitelisted domains установить необходимые IP-адреса.</span></p>

<span style="color: rgb(0, 0, 0);">![](https://wiki.wellink.ru/uploads/images/gallery/2024-01/embedded-image-9oguiewx.png)</span>

<span style="color: rgb(35, 111, 161);"><span style="mso-bookmark: _Ref61997573;">Рис. </span><span style="mso-bookmark: _Ref61997611;"><span style="mso-bookmark: _Ref61997573;"><span style="mso-no-proof: yes;">24</span></span></span><span style="mso-bookmark: _Ref61997573;"> Настройки портала оператора</span></span>

<span style="color: rgb(0, 0, 0);"><span style="mso-bookmark: _Ref61997573;">20. Подтверждение настроек (рисунок 25). Программа установки отображает топологию. На этом этапе можно вернуться назад и внести забытые настройки. После подтверждения начинается процесс установки.</span></span>

<span style="color: rgb(0, 0, 0);"><span style="mso-bookmark: _Ref61997573;">![](https://wiki.wellink.ru/uploads/images/gallery/2024-01/embedded-image-h9zrmc4w.png)</span></span>

<span style="color: rgb(35, 111, 161);">Рис.<span style="mso-no-proof: yes;">25</span> Интерфейс программы установки: просмотр топологии и подтверждение настроек</span>

<span style="color: rgb(0, 0, 0);">21. Если установка прошла удачно, программа выведет запрос на добавление сервиса wisla в автозагрузку. Данное действие возможно только в том случае, если пользователь wisla был добавлен в sudoers. В противном случае требуется отказаться от действия.  
</span>

<span style="color: rgb(0, 0, 0);">22. После установки система автоматически запускается. Ход запуска можно отслеживать в журналах работы (Logs viewer – wiSLA logs) и статусах (Status). Признаком успешного запуска является сообщение в журнале server.log, выделенное на рисунке 26. Для полного запуска новой системе без инфраструктуры обычно требуется до 5 минут.</span>

<span style="color: rgb(0, 0, 0);"><span style="mso-bookmark: _Ref61997573;">![](https://wiki.wellink.ru/uploads/images/gallery/2024-01/embedded-image-8k0y8fig.png)</span></span>

<span style="background-color: rgb(255, 255, 255); color: rgb(35, 111, 161);">Рис.<span style="mso-no-proof: yes;">26</span> Сообщение об успешном запуске системы wiSLA в communicator.log</span>

<span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);">23. После запуска сервера приложений можно начинать работу с порталом. По умолчанию в системе присутствует пользователь Admin с паролем Admin@123. Зайдя с этими учётными данными, можно создать пользователя с ролью «Системный администратор», который сможет далее создавать инфраструктуру. Необходимо сменить пароль <span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);">Admin </span>при первом входе в целях безопасности.  
24\. Если система в ходе установки добавлялась в список автозагрузки, рекомендуется выполнить пробный перезапуск сервера с целью проверки механизма автоматического запуска wiSLA.</span>

# Инструкция по ручному развертыванию Wisla-wiprobe-agregator для Wisla

В данной инструкции описано как установить Wisla WiProbe Aggregator в ручном режиме без использования скрипта предварительной настройки системы.

**<span style="color: rgb(35, 111, 161);">Этап 1.</span>** Переход под пользователя wisla:

На первом этапе необходимо перейти под пользователя Wisla используя команду:

```bash
sudo su - wisla
```

<details id="bkmrk-redos-%D0%A1-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BE%D0%BC-%D0%BA-%D1%81"><summary>Если пользователь wisla еще не существует в системе его необходимо создать используя следующие команды пошагово.</summary>

1.Команда создания пользователя:

```bash
sudo useradd -d /home/wisla -m -s /bin/bash wisla
```

2.Команда установки пароля:

```bash
sudo passwd wisla
```

3.Добавление пользователя в файлы sudoers:

```bash
echo "wisla    ALL=(ALL:ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/wisla
```

4.Настройка системных лимитов для пользователя wisla:

```bash
# Создаем файл лимитов
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 (если нет):

```bash
echo "session required pam_limits.so" >> /etc/pam.d/common-session
```

</details><span style="color: rgb(35, 111, 161);">**Этап 2.** </span>Подготовка каталога Wisla-wiprobe-agregator.

После перехода под пользователя wisla вам необходимо создать каталог где будет располагаться Wisla-wiprobe-agregator, использую следующие команды:

1.Создание директории в /opt/:

```bash
sudo mkdir -p /opt/aggr-wisla
sudo mkdir -p /opt/aggr-wisla/config
sudo mkdir -p /opt/aggr-wisla/logs
```

 2.Проверить кому принадлежит каталог kafka:

```bash
ls -l /opt/
```

3.Сменить пользователя для каталога agg-wisla если принадлежит не wisla используя следующую команду:

```
sudo chown -R wisla:wisla /opt/aggr-wisla
```

4.Переходим в каталог:

```bash
cd /opt/aggr-wisla
```

**<span style="color: rgb(35, 111, 161);">Этап 3.</span>** Копирование архива Java**:**  
Предполагается, что архив OpenJDK11U-jdk\_x64\_linux\_hotspot\_11.0.28\_6.tar.gz уже передан или скачан с корпоративного файла обменника.

1.Скопируем его из домашней директории wisla используя следующую команду:

```bash
sudo cp ~/OpenJDK11U-jdk_x64_linux_hotspot_11.0.28_6.tar.gz /opt/aggr-wisla/
```

2.Распаковка архива Java:

```bash
sudo tar -xzf OpenJDK11U-jdk_x64_linux_hotspot_11.0.28_6.tar.gz
```

3.Добавление в переменные среды:

```bash
JAVA_HOME="/opt/aggr-wisla/$(ls -d jdk-11* 2>/dev/null | head -1)"
echo "Java Home: $JAVA_HOME"
```

4.Проверка java:

```bash
$JAVA_HOME/bin/java -version
```

**<span style="color: rgb(35, 111, 161);">Этап 4.</span>** Настройка переменного окружения:  
  
Выполнить следующие команды для добавления переменных окружений для пользователя wisla:

```bash
sudo -u wisla bash -c "echo 'export JAVA_HOME=\"$JAVA_HOME\"' >> /home/wisla/.bashrc"
```

```bash
sudo -u wisla bash -c "echo 'export PATH=\"\$JAVA_HOME/bin:\$PATH\"' >> /home/wisla/.bashrc"
```

**<span style="color: rgb(35, 111, 161);">Этап 5.</span>** Копирование JAR файла:

Предполагается, что архив wisla-wiprobe-aggregator.jar уже передан или скачан с корпоративного файла обменника.

1.Скопируем его из домашней директории wisla используя следующую команду:

```bash
sudo cp ~/wisla-wiprobe-aggregator.jar /opt/aggr-wisla/
```

2.Выдача прав на исполнение и изменение владельца:

```bash
sudo chmod +x /opt/aggr-wisla/wisla-wiprobe-aggregator.jar
```

```bash
sudo chown wisla:wisla /opt/aggr-wisla/wisla-wiprobe-aggregator.jar
```

3.Создаем конфигурационный файл

```bash
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.Изменение пользователя:

```bash
sudo chown wisla:wisla /opt/aggr-wisla/config/application.properties
```

5.Создать юнит для wisla-wiprobe-aggregator:

```bash
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
```

**<span style="color: rgb(35, 111, 161);">Этап 6.</span>** Запуск и проверка:

Обновляем systemd:

```bash
sudo systemctl daemon-reload
```

Включаем автозагрузку:

```bash
sudo systemctl enable wisla-wiprobe-aggregator
```

Запускаем Kafka:

```bash
sudo systemctl start wisla-wiprobe-aggregator
```

Проверяем статус:

```bash
sudo systemctl status wisla-wiprobe-aggregator
```

# Активация модуля автокорреляции

Для активации модуля автокорреляции необходимо:

<p class="callout info">Автокоррелятор wiCore должен быть установлен и запущен (см. [Руководство администратора wiCore](https://wiki.wellink.ru/books/rukovodstvo-administratora-wicore "Руководство администратора wiCore")).</p>

1\. Запустить программу установки. Перейти в основное меню. Внешний вид основного меню показан на рисунке 1.

![](https://wiki.wellink.ru/uploads/images/gallery/2024-01/embedded-image-pllxurvo.png)

Рис. 1 Главное меню программы установки в случае обнаружения установленной wiSLA

2\. Выбрать пункт меню «Config update». Если этого пункта меню нет в списке, установка была  
выполнена некорректно или на первом экране при запуске программы установки были  
указаны ошибочные данные.  
3\. Перейти на экран wiSLA Resources Configuration.

За активацию автокоррелятора отвечают два параметра:

- **Auto correlator url** (по умолчанию значение locahost:8083),
- **Enabling auto correlator** (по умолчанию значение false).

[![image-1680716978406.png](https://wiki.wellink.ru/uploads/images/gallery/2023-04/scaled-1680-/image-1680716978406.png)](https://wiki.wellink.ru/uploads/images/gallery/2023-04/image-1680716978406.png)

Для активации:

- указать ссылку модуля автокорреляции "**Auto correlator url**" (доменное имя + порт, если в наличии),
- указать значение "**Enabling auto correlator**" как **true.**

[![image-1680717866828.png](https://wiki.wellink.ru/uploads/images/gallery/2023-04/scaled-1680-/image-1680717866828.png)](https://wiki.wellink.ru/uploads/images/gallery/2023-04/image-1680717866828.png)

  
4\. Подтвердить настройки.

5\. Выполнить перезапуск wiSLA.

# Действия при неудачной попытке установки и восстановление работоспособности в случае сбоя

## <span style="color: rgb(0, 0, 0);">Действия при неудачной попытке установки wiSLA</span>  


<span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);">В случае если установка wiSLA завершилась c ошибкой, требуется:</span>

1. <span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);">Проанализировать причину сбоя установки. Для этого можно использовать log-файлы программы установки в текущем каталоге, а также прокрутку в окне для просмотра хода установки.</span>
2. <span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);">Завершить все процессы, связанные с java.</span>
3. <span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);">Выйти из программы установки и удалить новые каталоги в /home/wisla (hadoop, hbase, postgresql, zookeeper).</span>

<span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);">Повторить попытку установки с исправленными настройками.</span>

## <span style="color: rgb(0, 0, 0);">Регламент по восстановлению работоспособности системы wiSLA в случае сбоя</span>

<span style="color: rgb(0, 0, 0);">Как правило, внешние проявления не дают информации об основной причине сбоя. Ими могут быть: </span>

- <span style="color: rgb(0, 0, 0);">повторяющиеся проблемы при открытии страниц портала;</span>
- <span style="color: rgb(0, 0, 0);">нехарактерное поведение элементов интерфейса;</span>
- <span style="color: rgb(0, 0, 0);">ошибки при сохранении объектов инфраструктуры;</span>
- <span style="color: rgb(0, 0, 0);">отсутствие данных от всех измерительных зондов;</span>
- <span style="color: rgb(0, 0, 0);">отсутствие писем о неисправностях;</span>
- <span style="color: rgb(0, 0, 0);">ошибочные даты на календарях;</span>
- <span style="color: rgb(0, 0, 0);">ошибочная дата и время в событиях;</span>
- недоступный портал.

<span style="color: rgb(0, 0, 0);">При возникновении одного или нескольких проявлений требуется провести первичную диагностику для установления причины сбоя (таблица 5).</span>

<span style="color: rgb(35, 111, 161);">Таблица 5 – Первичная диагностика и устранение проблемы.</span>

<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" id="bkmrk-%D0%92%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%B0%D1%8F-%D0%BF%D1%80%D0%B8%D1%87%D0%B8%D0%BD%D0%B0-%D1%81%D0%B1" style="border-collapse: collapse; width: 100%; border-width: 1px; border-spacing: 0px;" width="614"><thead><tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes;"><td style="width: 28.1659%; border: 1pt solid windowtext;" valign="top" width="162">**Возможная причина сбоя**

</td><td style="width: 34.9969%; border-top: 1pt solid windowtext; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-image: initial; border-left: none;" valign="top" width="218">**Действия по выявлению**

</td><td style="width: 36.8684%; border-top: 1pt solid windowtext; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-image: initial; border-left: none;" valign="top" width="234">**Устранение проблемы**

</td></tr></thead><tbody><tr style="mso-yfti-irow: 1;"><td style="width: 28.1659%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none;" valign="top" width="162">1\. Отказ одного из компонентов wiSLA (не является самостоятельной причиной, требует продолжения диагностики)

</td><td style="width: 34.9969%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" valign="top" width="218">Просмотр статусов компонентов wiSLA в программе установки

</td><td style="width: 36.8684%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" valign="top" width="234">Поиск основной причины сбоя, перезапуск всех компонентов wiSLA

</td></tr><tr style="mso-yfti-irow: 2;"><td style="width: 28.1659%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none;" valign="top" width="162">2\. Резкий скачок времени на сервере

</td><td style="width: 34.9969%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" valign="top" width="218">Проверка времени на каждом из узлов, где установлена wiSLA.

Проверка работоспособности службы NTP

</td><td style="width: 36.8684%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" valign="top" width="234">Установка корректных даты и времени, запуск NTP, перезапуск всех компонентов wiSLA. Если база данных испорчена некорректными данными, потребуется выполнить восстановление из резервной копии (обратитесь в службу технической поддержки)

</td></tr><tr style="mso-yfti-irow: 3;"><td style="width: 28.1659%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none;" valign="top" width="162">3\. Продолжительный разрыв связи между узлами wiSLA

</td><td style="width: 34.9969%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" valign="top" width="218">Определение доступности серверов, изучение журналов работы системы, опрос системных администраторов

</td><td style="width: 36.8684%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" valign="top" width="234">Перезапуск всех компонентов wiSLA

</td></tr><tr style="mso-yfti-irow: 4;"><td style="width: 28.1659%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none;" valign="top" width="162">4\. Аварийная перезагрузка одного или нескольких узлов

</td><td style="width: 34.9969%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" valign="top" width="218">Сравнение времени непрерывной работы серверов wiSLA, изучение журналов работы операционной системы сервера с наименьшим временем непрерывной работы

</td><td style="width: 36.8684%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" valign="top" width="234">Перезапуск всех компонентов wiSLA

</td></tr><tr style="mso-yfti-irow: 5;"><td style="width: 28.1659%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none;" valign="top" width="162">5\. Исчерпано свободное место на одном из дисков

</td><td style="width: 34.9969%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" valign="top" width="218">Получение информации об использовании дискового пространства на всех серверах wiSLA

</td><td style="width: 36.8684%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" valign="top" width="234">Очистка дисков, добавление дисков, перезапуск всех компонентов wiSLA. Если перезапуск не решает проблему, возможно, повреждена база данных или программные файлы. В этом случае потребуется восстановить систему из резервной копии или выполнить полную переустановку системы (обратитесь в службу технической поддержки)

</td></tr><tr style="mso-yfti-irow: 6;"><td style="width: 28.1659%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none;" valign="top" width="162">6\. Вмешательство в работу сервера (изменение настроек сети, файловой системы и т.п. при работающей wiSLA)

</td><td style="width: 34.9969%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" valign="top" width="218">Опрос системных администраторов

</td><td style="width: 36.8684%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" valign="top" width="234">Перезапуск всех компонентов wiSLA

</td></tr><tr style="mso-yfti-irow: 7;"><td style="width: 28.1659%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none;" valign="top" width="162">7\. Неудачное обновление wiSLA

</td><td style="width: 34.9969%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" valign="top" width="218">Чтение журнальных файлов после обновления

</td><td style="width: 36.8684%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" valign="top" width="234">Обратитесь в службу технической поддержки

</td></tr><tr style="mso-yfti-irow: 8; mso-yfti-lastrow: yes;"><td style="width: 28.1659%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none;" valign="top" width="162">8\. Аппаратные проблемы на сервере

</td><td style="width: 34.9969%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" valign="top" width="218">Определение проблемного сервера, перезагрузка, просмотр данных POST, изучение журналов операционной системы, проверка диска, тестирование ОЗУ, замена компонентов на заведомо исправные и т.д. Выходит за рамки настоящего Руководства

</td><td style="width: 36.8684%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" valign="top" width="234">Действия зависят от характера сбоя. Если потери данных не было, будет достаточно перезапустить все компоненты wiSLA.

Если в ходе перезапуска возникли проблемы или требуется восстановить программные файлы, обратитесь в службу технической поддержки

</td></tr></tbody></table>

# Действия по обслуживанию wiSLA

Основные действия по обслуживанию wiSLA перечислены в таблице 4.

<span style="color: rgb(35, 111, 161);">Таблица 4 – Действия по обслуживанию системы wiSLA.</span>

<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" id="bkmrk-%D0%A7%D1%82%D0%BE-%D1%82%D1%80%D0%B5%D0%B1%D1%83%D0%B5%D1%82%D1%81%D1%8F-%D1%81%D0%B4%D0%B5%D0%BB%D0%B0%D1%82" style="border-collapse: collapse; width: 100%; border-width: 1px; border-spacing: 0px;" width="605"><thead><tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes;"><td style="width: 35.5583%; border: 1pt solid windowtext;" width="180">**<span style="font-family: 'Arial',sans-serif;">Что требуется сделать?</span>**

</td><td style="width: 64.4729%; border-top: 1pt solid windowtext; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-image: initial; border-left: none;" width="425">**<span style="font-family: 'Arial',sans-serif;">Последовательность действий</span>**

</td></tr></thead><tbody><tr style="mso-yfti-irow: 1;"><td style="width: 35.5583%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none;" width="180">1\. Просмотреть информацию о статусах всех компонентов wiSLA

</td><td style="width: 64.4729%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" width="425">1\. Запустить программу установки wiSLA.

2\. Выбрать и открыть "Status".

3\. Выбрать "All ".

Незапущенные компоненты можно определить по наличию <span lang="EN-US" style="mso-ansi-language: EN-US;">"\[FAIL\]" </span>и<span lang="EN-US" style="mso-ansi-language: EN-US;"> "NOT STARTED" </span>в<span style="mso-ansi-language: EN-US;"> </span>строке<span lang="EN-US" style="mso-ansi-language: EN-US;">.</span>

</td></tr><tr style="mso-yfti-irow: 2;"><td style="width: 35.5583%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none;" width="180">2\. Остановить все компоненты wiSLA с помощью программы установки

</td><td style="width: 64.4729%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" width="425">1\. Запустить программу установки wiSLA.

2\. В программе установки wiSLA выбрать "Maintenance" - "Stop All".

3\. Проверить результат. Посмотреть информацию по статусам всех компонентов wiSLA.

</td></tr><tr style="mso-yfti-irow: 3;"><td style="width: 35.5583%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none;" width="180">3\. Управление запуском <span lang="EN-US" style="mso-ansi-language: EN-US;">wiSLA</span> с помощью скрипта запуска (для варианта установки всех компонентов на 1 сервер)

</td><td style="width: 64.4729%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" width="425">Для управления запуском следует получить доступ к консоли сервера <span lang="EN-US" style="mso-ansi-language: EN-US;">wiSLA</span>, пользователь “<span lang="EN-US" style="mso-ansi-language: EN-US;">wisla</span>".

Запуск всех компонентов:

<span style="mso-fareast-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; font-weight: normal;"><span style="mso-list: Ignore;">$<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span style="color: black; mso-color-alt: windowtext;">sudo systemctl start wisla5</span>

или

<span lang="EN-US" style="mso-fareast-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; mso-ansi-language: EN-US; font-weight: normal;"><span style="mso-list: Ignore;">$<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span lang="EN-US" style="color: black; mso-color-alt: windowtext; mso-ansi-language: EN-US;">sudo /opt/wisla5/scripts/wisla5.sh start</span>

Остановка всех компонентов:

<span style="mso-fareast-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; font-weight: normal;"><span style="mso-list: Ignore;">$<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span style="color: black; mso-color-alt: windowtext;">sudo systemctl stop wisla5</span>

или

<span lang="EN-US" style="mso-fareast-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; mso-ansi-language: EN-US; font-weight: normal;"><span style="mso-list: Ignore;">$<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span lang="EN-US" style="color: black; mso-color-alt: windowtext; mso-ansi-language: EN-US;">sudo /opt/wisla5/scripts/wisla5.sh stop</span>

Проверка статусов всех компонентов:

<span style="mso-fareast-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; font-weight: normal;"><span style="mso-list: Ignore;">$<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span style="color: black; mso-color-alt: windowtext;">sudo systemctl status wisla5</span>

или

<span lang="EN-US" style="mso-fareast-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; mso-ansi-language: EN-US; font-weight: normal;"><span style="mso-list: Ignore;">$<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span lang="EN-US" style="color: black; mso-color-alt: windowtext; mso-ansi-language: EN-US;">sudo /opt/wisla5/scripts/wisla5.sh status</span>

Запуск<span style="mso-ansi-language: EN-US;"> </span>только<span style="mso-ansi-language: EN-US;"> </span>сервера<span style="mso-ansi-language: EN-US;"> </span>приложений<span lang="EN-US" style="mso-ansi-language: EN-US;">:</span>

<span lang="EN-US" style="mso-fareast-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; mso-ansi-language: EN-US; font-weight: normal;"><span style="mso-list: Ignore;">$<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span lang="EN-US" style="color: black; mso-color-alt: windowtext; mso-ansi-language: EN-US;">sudo /opt/wisla5/scripts/wisla5.sh start-wildfly</span>

Остановка<span style="mso-ansi-language: EN-US;"> </span>только<span style="mso-ansi-language: EN-US;"> </span>сервера<span style="mso-ansi-language: EN-US;"> </span>приложений<span lang="EN-US" style="mso-ansi-language: EN-US;">:</span>

<span lang="EN-US" style="mso-fareast-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; mso-ansi-language: EN-US; font-weight: normal;"><span style="mso-list: Ignore;">$<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span lang="EN-US" style="color: black; mso-color-alt: windowtext; mso-ansi-language: EN-US;">sudo /opt/wisla5/scripts/wisla5.sh stop-wildfly</span>

Перезапуск<span style="mso-ansi-language: EN-US;"> </span>только<span style="mso-ansi-language: EN-US;"> </span>сервера<span style="mso-ansi-language: EN-US;"> </span>приложений<span lang="EN-US" style="mso-ansi-language: EN-US;">:</span>

<span lang="EN-US" style="mso-fareast-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; mso-ansi-language: EN-US; font-weight: normal;"><span style="mso-list: Ignore;">$<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span lang="EN-US" style="color: black; mso-color-alt: windowtext; mso-ansi-language: EN-US;">sudo /opt/wisla5/scripts/wisla5.sh restart-wildfly</span>

Проверка<span style="mso-ansi-language: EN-US;"> </span>состояния<span style="mso-ansi-language: EN-US;"> </span>сервера<span style="mso-ansi-language: EN-US;"> </span>приложений<span lang="EN-US" style="mso-ansi-language: EN-US;">:</span>

<span lang="EN-US" style="mso-fareast-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; mso-ansi-language: EN-US; font-weight: normal;"><span style="mso-list: Ignore;">$<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span lang="EN-US" style="color: black; mso-color-alt: windowtext; mso-ansi-language: EN-US;">sudo /opt/wisla5/scripts/wisla5.sh status-wildfly</span>

</td></tr><tr style="mso-yfti-irow: 4;"><td style="width: 35.5583%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none;" width="180"><span lang="EN-US" style="mso-ansi-language: EN-US;">4</span>. Перезапустить все компоненты wiSLA

</td><td style="width: 64.4729%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" width="425">1\. Запустить программу установки wiSLA.

2\. В программе установки wiSLA выбрать "Maintenance" - "Stop All", дождаться завершения выполнения команды.

3\. Выбрать в меню "Start All".

4\. Дождаться полного запуска системы.

5\. Проверить статусы компонентов.

</td></tr><tr style="mso-yfti-irow: 5;"><td style="width: 35.5583%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none;" width="180">5\. Узнать, что система полностью запущена

</td><td style="width: 64.4729%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" width="425">1\. Запустить программу установки.

2\. Выбрать в меню программы установки раздел**<span style="font-family: 'Arial',sans-serif;"> </span>**"Log <span lang="EN-US" style="mso-ansi-language: EN-US;">v</span>iewer" - "wiSLA” – “<span lang="EN-US" style="mso-ansi-language: EN-US;">Server</span>.log <span lang="EN-US" style="mso-ansi-language: EN-US;">at</span>..."

3\. Нажать SHIFT+F для автоматического обновления файла.

Запись<span style="mso-ansi-language: EN-US;"> </span>об<span style="mso-ansi-language: EN-US;"> </span>удачном<span style="mso-ansi-language: EN-US;"> </span>запуске<span lang="EN-US" style="mso-ansi-language: EN-US;">:</span>

<span lang="EN-US">wiSLA COMPONENTS ARE FULLY DEPLOYED, INTERCONNECTED AND READY TO WORK.</span>

4\. Завершить просмотр файла: CTRL+C, затем q.

5\. Проверить статусы всех компонентов.

</td></tr><tr style="mso-yfti-irow: 6;"><td style="width: 35.5583%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none;" width="180"><span lang="EN-US" style="mso-ansi-language: EN-US;">6</span>. Перезапустить сервер приложений

</td><td style="width: 64.4729%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" width="425">1\. Запустить программу установки wiSLA.

2\. В программе установки wiSLA выбрать "Maintenance" – “<span lang="EN-US" style="mso-ansi-language: EN-US;">wiSLA</span>” – "Stop All", дождаться завершения выполнения команды.

3\. Выбрать в меню "Start All", выполнить команду.

4\. Дождаться полного запуска системы.

5\. Проверить статус <span lang="EN-US" style="mso-ansi-language: EN-US;">wiSLA</span>.

</td></tr><tr style="mso-yfti-irow: 7;"><td style="width: 35.5583%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none;" width="180">7\. Получить информацию о свободном месте на диске

</td><td style="width: 64.4729%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" width="425">В ssh-сессии выполнить команду:

<span style="mso-fareast-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; font-weight: normal;"><span style="mso-list: Ignore;">$<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span style="color: black; mso-color-alt: windowtext;">df -h</span>

</td></tr><tr style="mso-yfti-irow: 8;"><td style="width: 35.5583%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none;" width="180">8\. Получить информацию о времени непрерывной работы сервера

</td><td style="width: 64.4729%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" width="425">В ssh-сессии выполнить команду:

<span style="mso-fareast-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; font-weight: normal;"><span style="mso-list: Ignore;">$<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span style="color: black; mso-color-alt: windowtext;">uptime</span>

</td></tr><tr style="mso-yfti-irow: 9;"><td style="width: 35.5583%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none;" width="180">9\. Просмотреть журналы работы операционной системы

</td><td style="width: 64.4729%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" width="425">В <span lang="EN-US" style="mso-ansi-language: EN-US;">SSH</span>-сессии выполнить команду:

<span style="mso-fareast-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; font-weight: normal;"><span style="mso-list: Ignore;">$<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span style="color: black; mso-color-alt: windowtext;">less /var/log/messages</span>

</td></tr><tr style="mso-yfti-irow: 10;"><td style="width: 35.5583%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none;" width="180">10\. Просмотреть журналы работы системы wiSLA

</td><td style="width: 64.4729%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" width="425">1\. Запустить программу установки.

2\. Открыть "Logs viewer".

3\. Выбрать компонент системы.

4\. Выбрать журнал для просмотра.

</td></tr><tr style="mso-yfti-irow: 11;"><td style="width: 35.5583%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none;" width="180">11\. Проверить время и дату в операционной системе

</td><td style="width: 64.4729%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" width="425">В ssh-сессии выполнить команду:

<span style="mso-fareast-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; font-weight: normal;"><span style="mso-list: Ignore;">$<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span style="color: black; mso-color-alt: windowtext;">date</span>

Обратить внимание не только на год, месяц, день, часы, минуты и секунды, но и на часовой пояс.

</td></tr><tr style="mso-yfti-irow: 12;"><td style="width: 35.5583%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none;" width="180">1<span lang="EN-US" style="mso-ansi-language: EN-US;">2</span>. Проверить работу службы NTP

</td><td style="width: 64.4729%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" width="425">В <span lang="EN-US" style="mso-ansi-language: EN-US;">SSH</span>-сессии выполнить команду:

<span style="mso-fareast-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; font-weight: normal;"><span style="mso-list: Ignore;">$<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span style="color: black; mso-color-alt: windowtext;">sudo systemctl status ntpd</span>

Если служба запущена, проверить доступность NTP-серверов для синхронизации и статус синхронизации:

<span style="mso-fareast-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; font-weight: normal;"><span style="mso-list: Ignore;">$<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span style="color: black; mso-color-alt: windowtext;">ntpq –npcrv</span>

</td></tr><tr style="mso-yfti-irow: 13;"><td style="width: 35.5583%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none;" width="180">1<span lang="EN-US" style="mso-ansi-language: EN-US;">3</span>. Добавить новый плагин

</td><td style="width: 64.4729%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" width="425">Для добавления нового плагина требуется:

1\. Скопировать файл плагина в каталог /opt/wisla5/<span lang="EN-US" style="mso-ansi-language: EN-US;">wildfly</span>/current/wisla\_plugins/.

2\. Выдать пользователю wisla права на файл:

<span style="mso-fareast-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; font-weight: normal;"><span style="mso-list: Ignore;">$<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span style="color: black; mso-color-alt: windowtext;">chown wisla.wisla \*.jar</span>

3\. Запустить программу установки wiSLA.

4\. Перейти в меню <span lang="EN-US" style="mso-ansi-language: EN-US;">«Maintenance» - «wiSLA» </span>и<span style="mso-ansi-language: EN-US;"> </span>выполнить<span lang="EN-US" style="mso-ansi-language: EN-US;"> «Reload\_plugins».</span>

</td></tr><tr style="mso-yfti-irow: 14; mso-yfti-lastrow: yes;"><td style="width: 35.5583%; border-right: 1pt solid windowtext; border-bottom: 1pt solid windowtext; border-left: 1pt solid windowtext; border-image: initial; border-top: none;" width="180">1<span lang="EN-US" style="mso-ansi-language: EN-US;">4</span>. Загрузить модуль коллектора <span lang="EN-US" style="mso-ansi-language: EN-US;">Netflow</span>

</td><td style="width: 64.4729%; border-top: none; border-left: none; border-bottom: 1pt solid windowtext; border-right: 1pt solid windowtext;" width="425">Для загрузки коллектора <span lang="EN-US" style="mso-ansi-language: EN-US;">Netflow</span> требуется:

1\. Получить в службе поддержки или найти в комплекте поставки файл модуля коллектора wisla-netflow-collector-web-5.1-SNAPSHOT.war.

<span lang="EN-US" style="mso-ansi-language: EN-US;">2. </span>Скопировать<span style="mso-ansi-language: EN-US;"> </span>файл<span style="mso-ansi-language: EN-US;"> </span>в<span style="mso-ansi-language: EN-US;"> </span>каталог

<span lang="EN-US" style="mso-ansi-language: EN-US;">/opt/wisla5/wildfly/current/standalone/deployments</span>

3\. Перезапустить сервер приложений.

Вместо перезапуска можно вручную создать файл, который обеспечит загрузку коллектора:

<span lang="EN-US" style="mso-fareast-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; mso-ansi-language: EN-US; font-weight: normal;"><span style="mso-list: Ignore;">$<span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span lang="EN-US" style="color: black; mso-color-alt: windowtext; mso-ansi-language: EN-US;">touch /opt/wisla5/wildfly/current/standalone/deployments/wisla-netflow-collector-web-5.1-SNAPSHOT.war.dodeploy</span>

После получения доступа на портал оператора потребуется добавить коллектор в качестве зонда «<span lang="EN-US" style="mso-ansi-language: EN-US;">Netflow</span> <span lang="EN-US" style="mso-ansi-language: EN-US;">collector</span>» с <span lang="EN-US" style="mso-ansi-language: EN-US;">IP</span>-адресом 127.0.0.1 (раздел «Зонды», кнопка «+ Создать», тип «<span lang="EN-US" style="mso-ansi-language: EN-US;">Netflow</span> <span lang="EN-US" style="mso-ansi-language: EN-US;">collector</span>»).

</td></tr></tbody></table>

# Установка wiSLA в контейнер podman

Установка wiSLA может быть произведена с помощью самораспаковывающегося архива.

Необходимо создать не root пользователя и настроить использование sudo без пароля

Необходимые действия:

1)Установить podman и zstd

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-05/scaled-1680-/IFOimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-05/IFOimage.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-05/scaled-1680-/13zimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-05/13zimage.png)

2)Скачать executable tarball

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-05/scaled-1680-/rCjimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-05/rCjimage.png)

3)Задать права для исполняемого файла

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-05/scaled-1680-/vczimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-05/vczimage.png)

```bash
chmod +x podmanizedWisla.sh
```

4)Запустить

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-05/scaled-1680-/EsRimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-05/EsRimage.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-05/scaled-1680-/I9Zimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-05/I9Zimage.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-05/scaled-1680-/6eXimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-05/6eXimage.png)

```bash
./podmanizedWisla.sh
```

5)Будет создан и запущен podman контейнер wisla-app

Имеется возможность управлять wiSLA с помощью systemd сервиса:

Проверить статус сервиса

```bash
systemctl --user status wisla-podman
```

Запустить сервис

```bash
systemctl --user start wisla-podman
```

Остановить сервис

```bash
systemctl --user stop wisla-podman
```

Дополнительно имеется возможность управлять wiSLA с помощью скрипта **tool.sh** (устанавливается в домашнюю папку пользователя)

изменить внешний хост с портом

```bash
./tool.sh change-external-host 10.9.0.1 80 443
```

изменить адрес для подключения зонда к wisla

```bash
./tool.sh change-wiprobe-dst 10.9.0.1 80
```

запустить скрипт wisla5.sh для остановки и запуска wisla (необходимо остановить перед остановкой контейнера)

```bash
./tool.sh wisla-script start
```

открыть логи application server и дождаться следующего сообщения

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-05/scaled-1680-/wecimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-05/wecimage.png)

```bash
./tool.sh wisla-wildfly-log
```

запустить скрипт wisla5.sh для остановки и запуска wisla (необходимо остановить перед остановкой контейнера)

```bash
./tool.sh wisla-script stop
```

остановить контейнер

```bash
./tool.sh stop-container
```

запустить контейнер

```bash
./tool.sh start-container
```

# Скрипты для взаимодействия с wiSLA

## **<span style="font-family: 'Arial',sans-serif;">Поддерживаемые параметры установщика Wisla</span>**

<span style="font-family: 'Arial',sans-serif;">Чтобы узнать доступные параметры установщика Wisla, выполнить команду:</span>

```
./wisla-5.2.9-2502251017.run --help
```

<span style="font-family: 'Arial',sans-serif;">Будет следующий вывод:</span>

```
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

```

## **<span style="font-family: 'Arial',sans-serif;">Варианты обновления системы</span>**

<span style="color: rgb(0, 0, 0);">**<span style="font-family: 'Arial',sans-serif;">1. Установка wisla с нуля </span>**</span>

<span style="font-family: 'Arial',sans-serif;">Убедиться что в системе отсутствуют установленные ранее папки : hadoop, postgresql, zookeeper, hbase. Иначе будет полуавтоматический режим установки, где необходимо будет подтверждать очистку каталогов, а при попытке нажать No процесс установки будет прерван.</span>

```
./wisla-5.2.9-xxxxxxxx.run --silent-install
```

<span style="color: rgb(0, 0, 0);">**<span style="font-family: 'Arial',sans-serif;">2. Стандартное обновление (с резервным копированием)</span>**</span>

```
./wisla-5.2.9-xxxxxxxx.run --silent-update
```

<span style="font-family: 'Arial',sans-serif;">Этот режим выполняет обновление системы с сохранением резервных копий данных.</span>

<span style="color: rgb(0, 0, 0);">**<span style="font-family: 'Arial',sans-serif;">3. Быстрое обновление без резервного копирования</span>**</span>

```
./wisla-5.2.9-xxxxxxxx.run --silent-fast-update
```

<span style="font-family: 'Arial',sans-serif;">Этот режим пропускает этап создания резервных копий, ускоряя процесс обновления.</span>

<span style="color: rgb(0, 0, 0);">**<span style="font-family: 'Arial',sans-serif;">4. Быстрое обновление с восстановлением новой базы данных PostgreSQL</span>**</span>

```
./wisla-5.2.9-xxxxxxxx.run --silent-fast-update-with-new-db /path/to/postgres_dump.sql
```

<span style="font-family: 'Arial',sans-serif;">Здесь </span>`<span style="font-size: 10.0pt; font-family: 'Arial',sans-serif;">/path/to/postgres_dump.sql</span>`<span style="font-family: 'Arial',sans-serif;"> — путь к файлу дампа PostgreSQL, который будет использован для восстановления данных.</span>

<span style="color: rgb(0, 0, 0);">**<span style="font-family: 'Arial',sans-serif;">5. Полная замена базы данных и HBase</span>**</span>

```
./wisla-5.2.9-xxxxxxxx.run --silent-fast-update-replace-db-n-hbase /path/to/postgres_dump.sql /path/to/hbase_data
```

<span style="font-family: 'Arial',sans-serif;">Где:</span>

- `<span lang="EN-US" style="font-size: 10.0pt; font-family: 'Arial',sans-serif; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US;">/path/to/postgres_dump.sql</span>`<span lang="EN-US" style="font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;"> — </span><span style="font-family: 'Arial',sans-serif;">путь</span><span style="font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;"> </span><span style="font-family: 'Arial',sans-serif;">к</span><span style="font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;"> </span><span style="font-family: 'Arial',sans-serif;">дампу</span><span lang="EN-US" style="font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;"> PostgreSQL.</span>
- `<span lang="EN-US" style="font-size: 10.0pt; font-family: 'Arial',sans-serif; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US;">/path/to/hbase_data</span>`<span lang="EN-US" style="font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;"> — </span><span style="font-family: 'Arial',sans-serif;">путь</span><span style="font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;"> </span><span style="font-family: 'Arial',sans-serif;">к</span><span style="font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;"> </span><span style="font-family: 'Arial',sans-serif;">данным</span><span lang="EN-US" style="font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;"> HBase</span>**<span lang="EN-US" style="font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;">.</span>**

<span style="color: rgb(0, 0, 0);">**<span style="font-family: 'Arial',sans-serif;">6. Установка только Hadoop</span>**</span>

```
./wisla-5.2.9-xxxxxxxx.run --hadoop-install
```

## **<span style="font-family: 'Arial',sans-serif;">Дополнительно:</span>**

- <span style="color: rgb(0, 0, 0);">**<span style="font-family: 'Arial',sans-serif;">Просмотр логов</span>**</span>

<span style="font-family: 'Arial',sans-serif;">По умолчанию логи установки сохраняются в файл </span>`<span style="font-size: 10.0pt; font-family: 'Arial',sans-serif;">install.YYYY-MM-dd_HH:mm:ss.log</span>`<span style="font-family: 'Arial',sans-serif;">. Изменить имя лога можно так:</span>

```
export INSTALL_LOG=my_install_log.txt
```

- <span style="color: rgb(0, 0, 0);">**<span style="font-family: 'Arial',sans-serif;">Изменение временной директории</span>**</span>

```
export INSTALL_TEMP=/custom/temp/dir
```

- <span style="color: rgb(0, 0, 0);">**<span style="font-family: 'Arial',sans-serif;">Режим текстового интерфейса</span>**</span>

```
./wisla-5.2.9-xxxxxxxx.run -t
```

##  

## **<span style="font-family: 'Arial',sans-serif;">Управление всеми сервисами Wisla</span>**

- <span style="color: rgb(0, 0, 0);">**<span style="font-family: 'Arial',sans-serif;">Проверка статуса запущенных сервисов</span>**</span>

```
/opt/wisla5/scripts/wisla5.sh status
```

- <span style="color: rgb(0, 0, 0);">**<span style="font-family: 'Arial',sans-serif;">Остановка всех сервисов</span>**</span>

```
/opt/wisla5/scripts/wisla5.sh stop
```

- <span style="color: rgb(0, 0, 0);">**<span style="font-family: 'Arial',sans-serif;">Запуск всех сервисов</span>**</span>

```
/opt/wisla5/scripts/wisla5.sh start
```

- <span style="color: rgb(0, 0, 0);">**<span style="font-family: 'Arial',sans-serif;">Перезапуск</span><span style="font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;"> </span><span style="font-family: 'Arial',sans-serif;">всех сервисов</span>**</span>

```
/opt/wisla5/scripts/wisla5.sh restart
```

##  

## **<span style="font-family: 'Arial',sans-serif;">Управление только сервисом Wisla</span>**

- <span style="color: rgb(0, 0, 0);">**<span style="font-family: 'Arial',sans-serif;">Проверка статуса запущенных сервисов</span>**</span>

```
/opt/wisla5/scripts/wisla.sh status
```

- <span style="color: rgb(0, 0, 0);">**<span style="font-family: 'Arial',sans-serif;">Остановка всех сервисов</span>**</span>

```
/opt/wisla5/scripts/wisla.sh stop
```

- <span style="color: rgb(0, 0, 0);">**<span style="font-family: 'Arial',sans-serif;">Запуск всех сервисов</span>**</span>

```
/opt/wisla5/scripts/wisla.sh start
```

- **<span style="font-family: 'Arial',sans-serif;">Перезапуск</span><span style="font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;"> </span><span style="font-family: 'Arial',sans-serif;">сервиса</span><span lang="EN-US" style="font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;"> Wisla</span>**

```
/opt/wisla5/scripts/wisla.sh restart
```

Скрипт:

```bash
#!/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

```

##  

## **<span style="font-family: 'Arial',sans-serif;">Реиндексация</span>**

- <span style="color: rgb(0, 0, 0);">**<span style="font-family: 'Arial',sans-serif;">Стандартная реиндексация (требует запущенной системы)</span>**</span>

```
/opt/wisla5/scripts/wi-reindex.sh
```

Скрипт:

```bash
#!/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

```

###  

- **<span style="font-family: 'Arial',sans-serif;">Независимая реиндексация (не зависит от состояния деплоя)</span>**

```
/opt/wisla5/scripts/wi-reindex-standalone.sh
```

Скрипт:

```bash
#!/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

```

##  

## **<span style="font-family: 'Arial',sans-serif;">Создание резервных копий баз данных</span>**

- <span style="color: rgb(0, 0, 0);">**<span style="font-family: 'Arial',sans-serif;">PostgreSQL</span>**</span>

<span style="font-family: 'Arial',sans-serif;">Файл</span><span style="font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;"> </span><span style="font-family: 'Arial',sans-serif;">шаблона</span><span style="font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;"> </span><span style="font-family: 'Arial',sans-serif;">скрипта</span><span lang="EN-US" style="font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;">: </span>`<span lang="EN-US" style="font-size: 10.0pt; font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;">/opt/wisla5/backup_scripts/postgres_backup_template.sh</span>`

<span style="font-family: 'Arial',sans-serif;">Пример</span><span style="font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;"> </span><span style="font-family: 'Arial',sans-serif;">запуска</span><span style="font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;"> </span><span style="font-family: 'Arial',sans-serif;">резервного</span><span style="font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;"> </span><span style="font-family: 'Arial',sans-serif;">копирования</span><span lang="EN-US" style="font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;">:</span>

```
pg_dump --host "wisla" --port 5432 --username "wisla" --format custom --blobs --no-owner --encoding UTF8 --verbose --file /home/wisla/backup/wisla.backup
```

<span style="font-family: 'Arial',sans-serif;">Альтернативный способ через шаблонный скрипт:</span>

```
sed "s|{{FILE-NAME}}|/home/wisla/backup/wisla.backup|" /opt/wisla5/backup_scripts/postgres_backup_template.sh | bash
```

Скрипт:

```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}}
```

###   


- <span style="color: rgb(0, 0, 0);">**<span lang="EN-US" style="font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;">HBase</span>**</span>

<span lang="EN-US" style="font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;"><span style="font-family: 'Arial',sans-serif;">Файл</span><span style="font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;"> </span><span style="font-family: 'Arial',sans-serif;">шаблона</span><span style="font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;"> </span><span style="font-family: 'Arial',sans-serif;">скрипта</span>: `<span lang="EN-US" style="font-size: 10.0pt; font-family: 'Arial',sans-serif; mso-ansi-language: EN-US;">/opt/wisla5/backup_scripts/<span lang="EN-US" style="font-size: 10.0pt; line-height: 107%; font-family: 'Arial',sans-serif; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">hbase</span><span style="font-size: 10.0pt; line-height: 107%; font-family: 'Arial',sans-serif; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: RU; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">_</span><span lang="EN-US" style="font-size: 10.0pt; line-height: 107%; font-family: 'Arial',sans-serif; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">backup</span><span style="font-size: 10.0pt; line-height: 107%; font-family: 'Arial',sans-serif; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: RU; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">_</span><span lang="EN-US" style="font-size: 10.0pt; line-height: 107%; font-family: 'Arial',sans-serif; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">template</span><span style="font-size: 10.0pt; line-height: 107%; font-family: 'Arial',sans-serif; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: RU; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">.</span><span lang="EN-US" style="font-size: 10.0pt; line-height: 107%; font-family: 'Arial',sans-serif; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">sh</span></span>`</span><span style="font-size: 10.0pt; line-height: 107%; font-family: 'Arial',sans-serif;">, но корректность работы проверить не удалось, пробовал<span style="mso-spacerun: yes;"> </span>переписать скрипт, но возникает проблема при выполнении команды импорта снимков в папку.</span>

```bash
#!/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}

```

<span style="font-size: 10.0pt; line-height: 107%; font-family: 'Arial',sans-serif;">**!!!Но для выполнения скрипта надо настраивать hbase и hadoop**</span>

<span style="font-size: 10.0pt; line-height: 107%; font-family: 'Arial',sans-serif;">  
</span>

### **<span style="font-family: 'Arial',sans-serif;">Дополнительно:</span>**

- <span style="color: rgb(0, 0, 0);">**<span style="font-family: 'Arial',sans-serif;">Перезагрузка плагинов в приложении wiSLA</span>**</span>

```
/opt/wisla5/scripts/reload-plugins.sh
```

Скрипт:

```bash
#!/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

```

- <span style="color: rgb(0, 0, 0);">**<span style="font-family: 'Arial',sans-serif;">Удаление старых лог файлов</span>**</span>

```
/opt/wisla5/scripts/remove-old-logs.sh
```

Скрипт:

```bash
#!/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

```

###  

<span style="font-size: 10.0pt; line-height: 107%; font-family: 'Arial',sans-serif;">  
</span>

# Инструкция по полуавтоматическому обновлению wiSLA (alfa-test)

#### <span style="font-family: 'Arial',sans-serif;">1. Подготовка к обновлению</span>

<span style="font-family: 'Arial',sans-serif;">**1.1 -** Альфа запущена (либо остановлена)</span>

<span style="font-family: 'Arial',sans-serif;">**1.2 -** Для структурирования папок, необходимо проверить наличие актуальной папки общей версии в каталоге </span>`<span style="font-size: 10.0pt; font-family: 'Arial',sans-serif; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin;">/home/wisla/wisla_distr</span>`<span style="font-family: 'Arial',sans-serif;"> (например, </span>`<span style="font-size: 10.0pt; font-family: 'Arial',sans-serif; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin;">5210</span>`<span style="font-family: 'Arial',sans-serif;">).</span>

<span style="font-family: 'Arial',sans-serif;">**1.3 -** Если папки нет, создать новую, иначе перейти в существующую (</span>`<span style="font-size: 10.0pt; font-family: 'Arial',sans-serif; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin;">/home/wisla/wisla_distr/5210</span>`<span style="font-family: 'Arial',sans-serif;">).</span>

[ ![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-03/scaled-1680-/eF8image.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-03/eF8image.png)

<span style="font-family: 'Arial',sans-serif;">**1.4 -** Внутри создать папку с наименованием версии дистрибутива wisla (</span>`<span style="font-size: 10.0pt; font-family: 'Arial',sans-serif; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin;">/home/wisla/wisla_distr/5210/2503121748</span>`<span style="font-family: 'Arial',sans-serif;">). Возможен вариант создания по порядку (1,2,3...), учитывая пропуски.</span>

 [![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-03/scaled-1680-/YO4image.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-03/YO4image.png)

<span style="font-family: 'Arial',sans-serif;">**1.5 -** Если в каталоге </span>`<span style="font-size: 10.0pt; font-family: 'Arial',sans-serif; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin;">/home/wisla/wisla_distr/5210/</span>`<span style="font-family: 'Arial',sans-serif;"> больше 15 папок, удалить старые до 7 штук (можно вручную).</span><span style="font-family: 'Arial',sans-serif;">(Для этого написан скрипт, если количество папок накопилось от 15 шт, то удалять ранее созданные папки, фильтруя по дате изменений, оставляя только 7 последних обновленных)</span>

```bash
#!/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

```

<span style="font-family: 'Arial',sans-serif;">**1.6 -** В созданную папку, с наименованием версии, загрузить актуальную версию дистрибутива (например, </span>`<span style="font-size: 10.0pt; font-family: 'Arial',sans-serif; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin;">wisla-5.2.10-2503121748.run</span>`<span style="font-family: 'Arial',sans-serif;">). Перейти в данную папку.</span>

 [![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-03/scaled-1680-/wbFimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-03/wbFimage.png)

<span style="font-family: 'Arial',sans-serif;">Проверить процесс загрузки файла по наименованию файла, об этом сигнализирует изменение имени </span>`<span style="font-size: 10.0pt; font-family: 'Arial',sans-serif;">wisla-5.2.10-2503121748.run.filepart</span>`<span style="font-family: 'Arial',sans-serif;"> на </span>`<span style="font-size: 10.0pt; font-family: 'Arial',sans-serif;">wisla-5.2.10-2503121748.run</span>`<span style="font-family: 'Arial',sans-serif;">).</span>

<span style="font-family: 'Arial',sans-serif;">**1.7 -** </span>Далее дать разрешение на запуск файла, выполнив команду:

```
chmod +x wisla-5.2.10-2503121748.run
```


#### <span style="font-family: 'Arial',sans-serif;">2. Запуск обновления</span>

**<span style="font-family: 'Arial',sans-serif;">1. Запустить автоматическое обновление:</span>**

```
./wisla-5.2.10-2503121748.run --silent-update
```

<span style="font-size: 11.0pt; font-family: 'Arial',sans-serif; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: RU; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Обновление включает формирование дампов PostgreSQL, HBase и конфигурационных файлов. Перед окончанием выполнения скрипта обновления, система выполнит реиндекс, в консоли будет соответствующее сообщение </span> **«Reindexing wisla engine lucene database..».**

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-03/scaled-1680-/JN5image.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-03/JN5image.png)

<span style="font-size: 11.0pt; font-family: 'Arial',sans-serif; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: RU; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">После выполнения всех сценариев закроет установщик, перейдет в командную строку.</span>

<span style="font-size: 11.0pt; font-family: 'Arial',sans-serif; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: RU; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">В каталоге ожидается наличие всех дампов:</span>

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-03/scaled-1680-/Q2Bimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-03/Q2Bimage.png)

**<span style="font-size: 11.0pt; font-family: 'Arial',sans-serif; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: RU; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"> 2. </span><span style="font-family: 'Arial',sans-serif;">Проверить статус обновления возможно выполнив API-запрос:</span>**

```
GET https://alfa-test.wellink.ru/engine/api/v1/system/state
```

**<span style="font-family: 'Arial',sans-serif;">Обновление завершено, когда:</span>**

<span style="font-family: 'Arial',sans-serif;">1) статус сменится с </span>`<span style="font-size: 10.0pt; font-family: 'Arial',sans-serif;">404</span>`<span style="font-family: 'Arial',sans-serif;"> на </span>`<span style="font-size: 10.0pt; font-family: 'Arial',sans-serif;">200 </span>`,

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!
```

**Ссылки на дополнительную документацию:**

**-** [Ручная установка и обновление wisla](https://wiki.wellink.ru/books/rukovodstvo-administratora-wisla-5/page/podgotovka-sistemy-ustanovka-i-obnovlenie-wisla-rucnaia#bkmrk-%D0%95%D1%81%D0%BB%D0%B8-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D1%89%D0%B8%D0%BA-%D0%BD%D0%B5-%D0%B7:~:text=9C%25D0%25AB-,%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0%20%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B,-%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%2D%D0%B0%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D0%BD%D1%8B%D0%B5%20%D1%82%D1%80%D0%B5%D0%B1%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)

\- [Скрипты для взаимодействия с wiSLA](https://wiki.wellink.ru/books/rukovodstvo-administratora-wisla-5/page/skripty-dlia-vzaimodeistviia-s-wisla)

# 2. ЗАПУСК И ОСТАНОВКА

## <span style="color: #000000;">Запуск WiSLA</span>

Для управления запуском следует получить доступ к консоли сервера wiSLA, пользователь “wisla".  
Запуск всех компонентов:

```bash
sudo systemctl start wisla5
или
sudo /opt/wisla5/scripts/wisla5.sh start
```

Запуск только сервера приложений:

```bash
sudo /opt/wisla5/scripts/wisla5.sh start-wildfly
```

<span style="color: #000000;">Маркером успешного</span>**<span style="color: #000000;"> </span>**<span style="color: #000000;">запуска является следующее сообщение в журнале (server.log)</span><span style="color: #000000;">:</span>

```bash
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) !********************
**********************************************************************!
```

<span style="color: #000000;">Теперь можно запустить веб браузер и открыть страницу системы (http://xxx.xxx.xxx.xxx:8080).</span>

## <span style="color: #000000;">Остановка WiSLA</span>

Остановка всех компонентов:

```bash
sudo systemctl stop wisla5
или
sudo /opt/wisla5/scripts/wisla5.sh stop
```

Остановка только сервера приложений:

```bash
sudo /opt/wisla5/scripts/wisla5.sh stop-wildfly
```

## <span style="color: #000000;">Проверка и перезапуск WiSLA</span>

Проверка статусов всех компонентов:

```bash
sudo systemctl status wisla5
или
sudo /opt/wisla5/scripts/wisla5.sh status
```

Проверка состояния сервера приложений:

```bash
sudo /opt/wisla5/scripts/wisla5.sh status-wildfly
```

Перезапуск только сервера приложений:

```bash
sudo /opt/wisla5/scripts/wisla5.sh restart-wildfly
```

Показать лог портала:

```bash
less /opt/wisla5/wildfly/current/standalone/log/server.log

less /opt/wisla5/wildfly/current/standalone/log/communicator.log
```

# 3. С ЧЕГО НАЧАТЬ

#### Стартовые действия

После <span style="text-decoration: underline; color: rgb(35, 111, 161);">[установки](https://wiki.wellink.ru/books/rukovodstvo-administratora-wisla-5-community-version/page/podgotovka-sistemy-ustanovka-i-obnovlenie-wisla-rucnaia)</span> wiSLA выполните первый вход на портал с помощью учётной записи суперпользователя, которая создаётся при развёртывании системы. По умолчанию используется пользователь Admin.

Данные по умолчанию:

- Полное имя: Admin
- Эл. почта: `Admin`
- Пароль: `Admin@123`
- Роль: Системный администратор

Учётная запись Admin предназначена для первоначальной настройки системы и управления правами пользователей.

### Важно

Не используйте учётную запись Admin для повседневной работы, привязки к контрагентам или SLA. Суперпользователь выполняет функцию мастер-настройщика системы и используется только на этапе первичной конфигурации.

Для работы в системе необходимо создать отдельные пользовательские учётные записи и назначить им соответствующие роли.

Пароль суперпользователя можно изменить через портал wiSLA в любое время.

### Особенности учётной записи Admin

- Учётная запись активируется автоматически при установке системы.
- Роль "Системный администратор" для этой учётной записи не может быть снята самостоятельно.
- Пароль может быть изменён с портала wiSLA даже в случае, если в настройках системы указана смена пароля только через email.
- Пользователь Admin может назначать и снимать роль "Системный администратор" другим учётным записям.

### [![image.png](https://wiki.wellink.ru/uploads/images/gallery/2026-02/scaled-1680-/AZ2image.png)](https://wiki.wellink.ru/uploads/images/gallery/2026-02/AZ2image.png)

### Первый вход в систему

После авторизации откроется страница портала «Пользователи» со всплывающим окном визарда, предназначенного для знакомства с основными сценариями настройки сервисов мониторинга. Визард можно пройти для быстрого ознакомления с системой или закрыть и продолжить настройку вручную.

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2026-02/scaled-1680-/6zvimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2026-02/6zvimage.png)

### Первичная настройка

Далее необходимо создать <span style="text-decoration: underline;"><span style="color: rgb(35, 111, 161); text-decoration: underline;">[контрагента](https://wiki.wellink.ru/books/rukovodstvo-administratora-wisla-5-community-version/page/kontragenty)</span></span> в системе. В форме создания контрагента можно сразу добавить пользователей.

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2026-02/scaled-1680-/Vpiimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2026-02/Vpiimage.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2026-02/scaled-1680-/gpnimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2026-02/gpnimage.png)

Также пользователей можно создать отдельно на странице "<span style="text-decoration: underline; color: rgb(35, 111, 161);">[Пользователи](https://wiki.wellink.ru/books/rukovodstvo-administratora-wisla-5-community-version/page/polzovateli)</span>".

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2026-02/scaled-1680-/bUHimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2026-02/bUHimage.png)

### Следующий шаг

После создания пользователей можно приступать к постановке сервисов на мониторинг. Сценарии настройки мониторинга сервисов описаны в [<span style="text-decoration: underline;"><span style="color: rgb(35, 111, 161);">руководстве пользователя</span></span>](https://wiki.wellink.ru/books/rukovodstvo-polzovatelia-wisla-5-community-version), в разделе [<span style="text-decoration: underline;"><span style="color: rgb(35, 111, 161);">быстрый старт</span></span>](https://wiki.wellink.ru/books/rukovodstvo-polzovatelia-wisla-5-community-version/chapter/2-bystryi-start).

# 4. АДМИНИСТРИРОВАНИЕ WEB-ПОРТАЛА

Раздел «Администрирование» включает следующие компоненты:

- «Контрагенты»
- «Пользователи»
- «Сессии»
- «Журнал событий»
- «Настройка системы»

# КОНТРАГЕНТЫ

В разделе **«Контрагенты»** отображается перечень всех контрагентов, которые доступны пользователю согласно правам доступа. Он может выполнять добавление, изменение и просмотр записей, добавление их в архив, удаление из архива, просмотр истории изменений атрибутов выбранной записи. Система может отображать список контрагентов в одноуровневом виде (по умолчанию) и в виде иерархического списка – дерева. Дерево строится по принципу: родительский – дочерний контрагент согласно корпоративной организационной структуре. Переключение режима можно выполнить на панели фильтрации. Важным параметром, определяющим назначение контрагента в системе, является его роль.  
Предусмотрены следующие роли:

- **«Потребитель сервиса»** – присваивается контрагенту, который получает сервисы с установленными качественными показателями;
- **«Провайдер сервиса»** – присваивается контрагенту, который предоставляет сервисы с установленными качественными параметрами;
- **«Провайдер SLA»** – присваивается контрагенту, который контролирует качественные параметры сервиса

Система предоставляет возможность фильтрации списка контрагентов по роли контрагента (Потребитель сервиса, Провайдер сервиса, Провайдер SLA), статусу контрагента (Активный, Архивный), и тегам (пользовательским и системным). Доступна сортировка списка контрагентов по имени, роли, владельцу и статусу. На странице работает поиск. Для сохранения изменений, выполненных в рабочей области, используется кнопка **«Сохранить»** в правом верхнем углу страницы. Если пользователь внёс изменения в настройки объекта и покидает страницу, не нажав кнопку «Сохранить», система предлагает пользователю сохранить внесённые изменения или покинуть страницу без сохранения.

«Панель фильтрации» и «Панель поиска» соответственно. Панель фильтрации страницы «Контрагенты» показана на рисунке 47.

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-01/scaled-1680-/5e8image.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-01/5e8image.png)

Рис. 47 Страница «Контрагенты» с включенной панелью фильтрации

## Создание контрагента

<table class="confluenceTable" data-layout="full-width" data-local-id="5f0cc554-5aa8-4371-956a-52668b227312" id="bkmrk-%E2%84%96-%D1%88%D0%B0%D0%B3%D0%B0-%D0%94%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5-%D0%BF%D0%BE%D0%BB%D1%8C" style="width: 100%; height: 4199.88px;"><tbody><tr style="height: 80px;"><th class="confluenceTh" style="width: 4.20875%; height: 80px;">**№ шага**

</th><th class="confluenceTh" style="width: 18.5185%; height: 80px;">**Действие пользователя**

</th><th class="confluenceTh" style="width: 20.015%; height: 80px;">**Реакция Системы**

</th><th class="confluenceTh" style="width: 57.3326%; height: 80px;">**UI**

</th></tr><tr style="height: 35.2px;"><td style="width: 4.20875%; height: 35.2px;">**1.**

</td><td colspan="3" style="width: 95.8661%; height: 35.2px;">**Перейти на страницу Контрагенты**

</td></tr><tr style="height: 298.725px;"><td class="confluenceTd" style="width: 4.20875%; height: 298.725px;">1.1

</td><td class="confluenceTd" style="width: 18.5185%; height: 298.725px;">Открывает раздел "**Контрагенты**" в функциональном блоке "**АДМИНИСТРИРОВАНИЕ**"

</td><td class="confluenceTd" style="width: 20.015%; height: 298.725px;">Открывает страницу раздела **Контрагенты.** Показывает список контрагентов.

</td><td class="confluenceTd" style="width: 57.3326%; height: 298.725px;">[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/ON3image.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/ON3image.png)

</td></tr><tr style="height: 35.2px;"><td style="width: 4.20875%; height: 35.2px;">**2.**

</td><td colspan="3" style="width: 95.8661%; height: 35.2px;">**Перейти на страницу создания Контрагента**</td></tr><tr style="height: 659.013px;"><td style="width: 4.20875%; height: 659.013px;">2.1

</td><td style="width: 18.5185%; height: 659.013px;">Нажимает кнопку ![image.png](https://wiki.wellink.ru/uploads/images/gallery/2023-09/scaled-1680-/53Zimage.png)

</td><td style="width: 20.015%; height: 659.013px;">Открывает страницу создания **Контрагента**</td><td style="width: 57.3326%; height: 659.013px;">  
[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/qwzimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/qwzimage.png)

  
[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/LAhimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/LAhimage.png)

  
</td></tr><tr style="height: 35.2px;"><td style="width: 4.20875%; height: 35.2px;">**3.**

</td><td colspan="3" style="width: 95.8661%; height: 35.2px;">**Заполнить параметры**</td></tr><tr style="height: 349.75px;"><td style="width: 4.20875%; height: 349.75px;">3.1

</td><td style="width: 18.5185%; height: 349.75px;">Заполняет название **контрагента**

</td><td style="width: 20.015%; height: 349.75px;">Отображает заполненное поле "Название". </td><td style="width: 57.3326%; height: 349.75px;">[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/8FPimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/8FPimage.png)

  
  
  
</td></tr><tr style="height: 382.112px;"><td style="width: 4.20875%; height: 382.112px;">3.2

</td><td style="width: 18.5185%; height: 382.112px;">Заполняет контактные данные

(Необязательный шаг)

</td><td style="width: 20.015%; height: 382.112px;">При заполнении данных отображает их в целевом поле.</td><td style="width: 57.3326%; height: 382.112px;">[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/Byiimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/Byiimage.png)

  
  
  
  
  
</td></tr><tr style="height: 356.875px;"><td style="width: 4.20875%; height: 356.875px;"> 3.3</td><td style="width: 18.5185%; height: 356.875px;"> Выбирает роли, отмечает их чекбоксом [![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/dj6image.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/dj6image.png)

</td><td style="width: 20.015%; height: 356.875px;">Чекбокс роли "**Потребитель сервиса**" и "**Автоматическая публикация отчетов SLA**" отмечены по умолчанию

чекбоксы остальных **ролей** отмечаются.

</td><td style="width: 57.3326%; height: 356.875px;">  
[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/WcNimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/WcNimage.png)

  
</td></tr><tr style="height: 35.2px;"><td style="width: 4.20875%; height: 35.2px;">**4.**

</td><td colspan="3" style="width: 95.8661%; height: 35.2px;">**Перейти на вкладку "Пользователи Контрагента"**</td></tr><tr style="height: 1540.53px;"><td style="width: 4.20875%; height: 1540.53px;">4.1</td><td style="width: 18.5185%; height: 1540.53px;">Нажимает выбрать пользователя или создать его.

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/mf4image.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/mf4image.png)

</td><td style="width: 20.015%; height: 1540.53px;">При нажатии "**Выбрать**",

открывает выпадающий список пользователей, доступных для добавления контрагенту из системы.

При нажатии "**Создать**",

Открывает <span style="text-decoration: underline; color: rgb(35, 111, 161);">[страницу](https://wiki.wellink.ru/books/rukovodstvo-administratora-wisla-5/page/polzovateli)</span> редактирования профиля пользователя.

</td><td style="width: 57.3326%; height: 1540.53px;">[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/pZIimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/pZIimage.png)

  
[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/TdTimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/TdTimage.png)

  
[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/ePyimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/ePyimage.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/6bAimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/6bAimage.png)

  
[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/XVrimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/XVrimage.png)

  
  
  
  
  
</td></tr><tr style="height: 35.2px;"><td style="width: 4.20875%; height: 35.2px;">**5.**

</td><td colspan="3" style="width: 95.8661%; height: 35.2px;">**Перейти на вкладку "Данные для отчетов"**</td></tr><tr style="height: 356.875px;"><td style="width: 4.20875%; height: 356.875px;"> 5.1</td><td style="width: 18.5185%; height: 356.875px;">Настраивает данные для печатной формы отчетов SLA.

Выбирает лого для отчетов, данные сотрудников для отображения в печатной форме.

Необязательный шаг.

</td><td style="width: 20.015%; height: 356.875px;">При нажатии на редактирование изображения - открывает проводник для загрузки файла с пк.

При заполнении полей "Согласовано" и "Утверждено" - отображает данные в целевых полях.

</td><td style="width: 57.3326%; height: 356.875px;">[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/VBDimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/VBDimage.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/j5Uimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/j5Uimage.png)

</td></tr><tr><td style="width: 4.20875%;">5.2</td><td style="width: 18.5185%;">Нажимает кнопку "**Сохранить**"

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/Zn2image.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/Zn2image.png)

</td><td style="width: 20.015%;">Сохраняет контрагента, при просмотре в списке, созданный контрагент отображается.

</td><td style="width: 57.3326%;">[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/NLGimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/NLGimage.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/NC6image.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/NC6image.png)

</td></tr></tbody></table>

#### Пояснения к сценарию.

- «Автоматическая публикация отчётов SLA» - отвечает за состояние признака публикации отчёта SLA после формирования и за отправку уведомления по электронной почте о формировании отчёта SLA заинтересованным лицам. Если опция отмечена, пользователи контрагента (а также пользователи, связанные с контрактом, где участвует данный контрагент в роли «Потребитель сервиса») получат уведомление о сформированном отчёте SLA. Это произойдет автоматически после формирования отчёта, а отчёт после формирования будет опубликован. Если опция не отмечена, отчёт SLA сформируется как «Не опубликован», будет доступен на портале всем заинтересованным лицам, но уведомление о формировании будет разослано только после публикации отчёта оператором SLA. Флажок появляется только при отметке роли контрагента «Потребитель сервиса»;
- Если пользователь, создающий контрагента, не был ранее закреплён ни за одним контрагентом, он будет выбран в этом поле автоматически (с возможностью открепления.
- Пользователь портала с ролью «Оператор SLA» может быть связан только с одним контрагентом, при попытке нарушения данного правила будет появляться предупреждение с возможностью удаления предыдущих связей;
- Пользователи портала без роли «Оператор SLA» могут быть связаны с неограниченным числом контрагентов;
- С одним контрагентом может быть связано несколько учётных записей пользователей портала;

## Редактирование контрагента

Для изменения атрибутов контрагента нужно:

- нажать на запись в списке контрагентов. Откроется форма редактирования контрагента;
- выполнить редактирование атрибутов;
- нажать кнопку «<span style="font-size: 10.0pt; line-height: 120%; font-family: Webdings; mso-ascii-font-family: Arial; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; color: #30404c; mso-ansi-language: RU; mso-fareast-language: RU; mso-bidi-language: AR-SA; mso-char-type: symbol; mso-symbol-font-family: Webdings;"><span style="mso-char-type: symbol; mso-symbol-font-family: Webdings;">a</span></span>Сохранить»;
- при сохранении данные проходят проверку. Если будут выявлены ошибки, форма останется открытой. Потребуется исправить ошибки и повторить сохранение

## Отправка контрагента в архив

Отправка контрагента в архив позволяет скрыть утратившие актуальность записи контрагентов из списков активных записей с возможностью последующего извлечения из архива или удаления. Для отправки контрагента в архив следует:

- убедиться, что контрагент не связан с объектами инфраструктуры;
- нажать на искомую запись в списке контрагентов. Откроется форма редактирования контрагента;
- нажать кнопку «Ещё», в выпадающем меню кнопки нажать «Архивировать». Произойдёт проверка возможности архивации контрагента. Если проверка выполнена успешно, запись перейдёт в статус «Архивный». После этого можно воспользоваться меню для ухода с формы или выполнить другие действия с выбранной записью (рисунок 50);

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-01/scaled-1680-/Snvimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-01/Snvimage.png)

Рис. 50 Отправка контрагента в архив

- если контрагент ещё связан с активными объектами инфраструктуры, будет выдано предупреждение, блокирующее отправку в архив (рисунок 51):

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-01/scaled-1680-/wBHimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-01/wBHimage.png)

Рис. 51 Запрет на архивацию объекта

## Извлечение контрагента из архива

Если требуется восстановить архивную запись контрагента, следует:

- открыть список архивных контрагентов. Для этого открыть панель фильтрации и выполнить фильтрацию по статусу «Архивный». Извлечение из архива также доступно сразу после отправки учётной записи в архив;
- нажать на искомую запись в списке архивных записей. Откроется форма редактирования контрагента (рисунок 52);

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-01/scaled-1680-/I7Jimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-01/I7Jimage.png)

Рис. 52 Форма редактирования контрагента с кнопкой «Восстановить»

- нажать кнопку «Восстановить». Статус записи изменится на «Активный». После этого можно воспользоваться меню для ухода с формы или выполнить другие действия с выбранной записью. Если требуется поправить один или несколько атрибутов, можно выполнить редактирование в этой же форме и нажать кнопку «Сохранить».

## Удаление контрагента

Удаление контрагента – это необратимая операция, в результате которой запись удаляется из архива без возможности восстановления средствами портала. Удаление можно выполнить только после отправки контрагента в архив. Удаление может быть полезно для записей, которые были добавлены в систему по ошибке. Для удаления контрагента следует:

открыть архивную запись на редактирование (путём фильтрации списка по статусу «Архивный» или оставшись на форме редактирования после архивации контрагента, рисунок 53);

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-01/scaled-1680-/17timage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-01/17timage.png)

Рис. 53 Кнопка удаления контрагента в списке дополнительных действий

- нажать кнопку «Ещё», в появившемся списке действий – «Удалить». Появится запрос на подтверждение удаления;
- после подтверждения выполнится удаление записи и переход на список контрагентов.

# ПОЛЬЗОВАТЕЛИ

На странице «Пользователи» (рисунок 57) выполняется управление учётными записями пользователей портала: создание, редактирование, изменение пароля, изменение ролей, настройка уведомлений, привязка учётных записей к IP, связь с контрагентами, архивация, блокировка, отправка в архив, восстановление из архива, удаление, просмотр истории изменений учётной записи. Для работы со списком пользователей предусмотрены: поиск, фильтрация по роли и статусу, сортировка по имени, электронной почте и статусу.

## Статусы пользователей  


- **активный** – пользователь был удачно добавлен, имеет свой пароль, может полноценно работать с порталом;
- **блокированный** – пользователь был заблокирован администратором системы или самой системой;
- **зарегистрированный** – пользователь был добавлен администратором системы, получил одноразовый пароль для прохождения регистрации, однако не выполнил вход на портал и смену пароля. Если система работает в облачном режиме, то возможен также иной вариант: пользователь прошёл регистрацию, но не выполнил процедуру подтверждения регистрации;
- **архивный** – пользователь был добавлен в архив администратором системы и не имеет доступа на портал.

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-01/scaled-1680-/csJimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-01/csJimage.png)

Рис. 57 Страница «Пользователи» с включенной панелью фильтрации

## Создание нового пользователя

Создание нового пользователя доступно пользователям с ролью «Системный администратор». До создания новой учётной записи нужно убедиться в работоспособности рассылки уведомлений по электронной почте с портала и (по возможности) в готовности к работе и корректности адреса электронной почты нового пользователя, так как учётные данные будут отправлены на адрес электронной почты нового пользователя.

#### Сценарий создания пользователя.

<table class="confluenceTable" data-layout="full-width" data-local-id="5f0cc554-5aa8-4371-956a-52668b227312" id="bkmrk-%E2%84%96-%D1%88%D0%B0%D0%B3%D0%B0-%D0%94%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5-%D0%BF%D0%BE%D0%BB%D1%8C" style="width: 100%; height: 6660.94px;"><tbody><tr style="height: 80px;"><th class="confluenceTh" style="width: 5.23756%; height: 80px;">**№ шага**

</th><th class="confluenceTh" style="width: 22.5391%; height: 80px;">**Действие пользователя**

</th><th class="confluenceTh" style="width: 33.5776%; height: 80px;">**Реакция Системы**

</th><th class="confluenceTh" style="width: 38.627%; height: 80px;">**UI**

</th></tr><tr style="height: 35.2px;"><td style="width: 5.23756%; height: 35.2px;">**1.**

</td><td colspan="3" style="width: 94.7437%; height: 35.2px;">**Перейти на страницу Пользователи**

</td></tr><tr style="height: 205.712px;"><td class="confluenceTd" style="width: 5.23756%; height: 205.712px;">1.1

</td><td class="confluenceTd" style="width: 22.5391%; height: 205.712px;">Открывает раздел "**Пользователи**" в функциональном блоке "**АДМИНИСТРИРОВАНИЕ**"

</td><td class="confluenceTd" style="width: 33.5776%; height: 205.712px;">Открывает страницу раздела **Пользователи.** Показывает список соглашений пользователей.

</td><td class="confluenceTd" style="width: 38.627%; height: 205.712px;">[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/K4Oimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/K4Oimage.png)

</td></tr><tr style="height: 35.2px;"><td style="width: 5.23756%; height: 35.2px;">**2.**

</td><td colspan="3" style="width: 94.7437%; height: 35.2px;">**Перейти на страницу создания Пользователя**</td></tr><tr style="height: 437px;"><td style="width: 5.23756%; height: 437px;">2.1

</td><td style="width: 22.5391%; height: 437px;">Нажимает кнопку ![image.png](https://wiki.wellink.ru/uploads/images/gallery/2023-09/scaled-1680-/53Zimage.png)

</td><td style="width: 33.5776%; height: 437px;">Открывает страницу создания **пользователя**</td><td style="width: 38.627%; height: 437px;">  
[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/Oz2image.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/Oz2image.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/cwcimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/cwcimage.png)

</td></tr><tr style="height: 35.2px;"><td style="width: 5.23756%; height: 35.2px;">**3.**

</td><td colspan="3" style="width: 94.7437%; height: 35.2px;">**Заполнить основные параметры**</td></tr><tr style="height: 806.225px;"><td style="width: 5.23756%; height: 806.225px;">3.1

</td><td style="width: 22.5391%; height: 806.225px;">Заполняет **ФИО** пользователя и **электронную почту**.

<p class="callout info">Данные можно заполнить нажатием кнопки:[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/7WCimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/7WCimage.png)  
при наличии учетной записи в AD.</p>

При необходимости заполняет **должность**.

</td><td style="width: 33.5776%; height: 806.225px;">Отображает заполненные данные в целевых полях. При использовании загрузки из **Active Directory** - отображает **выпадающий список** доступных пользователей. После выбора пользователя вносит его данные в целевые поля. И отображает привязанную учетную запись из **Active Directory**.</td><td style="width: 38.627%; height: 806.225px;">[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/euHimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/euHimage.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/8eOimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/8eOimage.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/wUYimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/wUYimage.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/sHUimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/sHUimage.png)

</td></tr><tr style="height: 855.612px;"><td style="width: 5.23756%; height: 855.612px;">3.2

</td><td style="width: 22.5391%; height: 855.612px;"> Нажимает **кнопку**

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/QkRimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/QkRimage.png)

 Нажимает кнопку

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/XFKimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/XFKimage.png)

 Заполняет дополнительный адрес электронной почты.

(Необязательный шаг)

</td><td style="width: 33.5776%; height: 855.612px;">Отображает поле ввода дополнительной **электронной почты**. При заполнении данных отображает их в целевом поле.</td><td style="width: 38.627%; height: 855.612px;">[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/OCJimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/OCJimage.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/VNcimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/VNcimage.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/0X7image.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/0X7image.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/YP7image.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/YP7image.png)

  
  
  
</td></tr><tr style="height: 828.025px;"><td style="width: 5.23756%; height: 828.025px;">3.3

</td><td style="width: 22.5391%; height: 828.025px;">Задает **новый пароль** пользователю, вводит **подтверждение нового пароля**.

При необходимости проверяет введенные данные, нажав кнопку

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/u41image.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/u41image.png)

</td><td style="width: 33.5776%; height: 828.025px;">Вводит данные в целевые поля. По умолчанию **значения скрыты**.

При нажатии кнопки **"Глаз"** - отображает **скрытые значения** полей.

При несоответствии пароля критериям сложности - выводит **предупреждение о низкой надежности пароля**.

При несоответствии пароля и подтверждения - выводит **предупреждение о разнице значений в полях**.

</td><td style="width: 38.627%; height: 828.025px;">[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/5MKimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/5MKimage.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/Sa0image.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/Sa0image.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/oFiimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/oFiimage.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/wZUimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/wZUimage.png)

</td></tr><tr style="height: 205.512px;"><td style="width: 5.23756%; height: 205.512px;">3.4

</td><td style="width: 22.5391%; height: 205.512px;">Назначает **роли** пользователю, отмечает **чекбоксы** нужных полей.

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/3DMimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/3DMimage.png)

</td><td style="width: 33.5776%; height: 205.512px;">Чекбокс роли "**Пользователь**" отмечен по умолчанию, недоступен для редактирования.

Чекбоксы остальных **ролей** отмечаются.

</td><td style="width: 38.627%; height: 205.512px;">[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/z9yimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/z9yimage.png)

</td></tr><tr style="height: 590.925px;"><td style="width: 5.23756%; height: 590.925px;">3.5

</td><td style="width: 22.5391%; height: 590.925px;">Выбирает **контрагента**,

нажимает кнопку

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/44Mimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/44Mimage.png)

(Обязательный шаг, если выбрана роль "Оператор SLA")

</td><td style="width: 33.5776%; height: 590.925px;">Открывает выпадающий список доступных для выбора **контрагентов**.

</td><td style="width: 38.627%; height: 590.925px;">[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/2CGimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/2CGimage.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/Fbdimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/Fbdimage.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/Wfeimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/Wfeimage.png)

</td></tr><tr style="height: 203.887px;"><td style="width: 5.23756%; height: 203.887px;">3.6

</td><td style="width: 22.5391%; height: 203.887px;">Настраивает **уведомления** на портале и отправку на почту.

Отмечает **чекбоксы** нужных уведомлений

**[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/3DMimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/3DMimage.png)**

(Необязательный шаг)

</td><td style="width: 33.5776%; height: 203.887px;">Отображает отмеченные **чекбоксы** пользователю.

</td><td style="width: 38.627%; height: 203.887px;">[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/RsIimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/RsIimage.png)

</td></tr><tr style="height: 35.2px;"><td style="width: 5.23756%; height: 35.2px;">**4.**

</td><td colspan="3" style="width: 94.7437%; height: 35.2px;">**Выбрать контракт**</td></tr><tr style="height: 398.212px;"><td style="width: 5.23756%; height: 398.212px;">4.1

</td><td style="width: 22.5391%; height: 398.212px;">Переходит на страницу "**Контракты**"

</td><td style="width: 33.5776%; height: 398.212px;">Отображает страницу добавления **контрактов**</td><td class="confluenceTd" style="width: 38.627%; height: 398.212px;">[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/JR3image.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/JR3image.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/3SZimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/3SZimage.png)

</td></tr><tr style="height: 591.963px;"><td style="width: 5.23756%; height: 591.963px;">4.2

</td><td style="width: 22.5391%; height: 591.963px;">Нажимает кнопку "**Выбрать контракт**"

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/wucimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/wucimage.png)

(Необязательный шаг)

</td><td style="width: 33.5776%; height: 591.963px;">Отображает выпадающий список доступных **контрактов.** После выбора контракта, он отображается на странице, доступно **добавление нескольких** контрактов. Доступно **редактирование** и **удаление контракта**.</td><td style="width: 38.627%; height: 591.963px;">[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/xFNimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/xFNimage.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/pvlimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/pvlimage.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/LrFimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/LrFimage.png)

</td></tr><tr style="height: 35.2px;"><td style="width: 5.23756%; height: 35.2px;">**5.**

</td><td colspan="3" style="width: 94.7437%; height: 35.2px;">**Заполнить дополнительные данные** (Необязательные шаги)</td></tr><tr style="height: 437.625px;"><td style="width: 5.23756%; height: 437.625px;">5.1

</td><td style="width: 22.5391%; height: 437.625px;">Переходит на страницу "**Дополнительно**"

</td><td style="width: 33.5776%; height: 437.625px;">Открывает страницу с **дополнительными** данными

</td><td style="width: 38.627%; height: 437.625px;">[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/UIXimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/UIXimage.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/eIIimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/eIIimage.png)

  
</td></tr><tr style="height: 205.512px;"><td style="width: 5.23756%; height: 205.512px;">5.2

</td><td style="width: 22.5391%; height: 205.512px;">Заполняет **дополнительные** поля

</td><td style="width: 33.5776%; height: 205.512px;">Поля доступны для редактирования, не являются обязательными. После заполнения данные отображаются в целевых полях.</td><td style="width: 38.627%; height: 205.512px;">[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/mIdimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/mIdimage.png)

</td></tr><tr style="height: 205.1px;"><td style="width: 5.23756%; height: 205.1px;">5.3

</td><td style="width: 22.5391%; height: 205.1px;">Выбирает запрещенные/разрешенные **IP-адреса** для пользователя. Добавляет IP-адреса, нажимая кнопку

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/G2Aimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/G2Aimage.png)

</td><td style="width: 33.5776%; height: 205.1px;">При нажатии кнопки "**Добавить IP-Адрес**", отображает поле ввода **IP-адреса**, после заполнения поля есть возможность его удаления и добавления других адресов.

**Переключение чекбокса** меняет логическую суть перечисленных адресов.

</td><td style="width: 38.627%; height: 205.1px;">[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/Go4image.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/Go4image.png)

</td></tr><tr style="height: 35.2px;"><td style="width: 5.23756%; height: 35.2px;">**6.**

</td><td colspan="3" style="width: 94.7437%; height: 35.2px;">**Сохранить пользователя**</td></tr><tr style="height: 398.425px;"><td style="width: 5.23756%; height: 398.425px;">6.1

</td><td style="width: 22.5391%; height: 398.425px;">Нажимает кнопку ![image.png](https://wiki.wellink.ru/uploads/images/gallery/2023-09/scaled-1680-/5B5image.png)

</td><td style="width: 33.5776%; height: 398.425px;">Сохраняет **пользователя** в системе.

Открывает **страницу со списком пользователей**, отображает созданного **пользователя** в списке.

</td><td style="width: 38.627%; height: 398.425px;">[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/7nrimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/7nrimage.png)

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/Gxuimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/Gxuimage.png)

</td></tr></tbody></table>

#### Роли пользователей 

- Роль «Системный администратор» открывает доступ к разделу «Администрирование» для управления контрагентами, пользователями и сессиями на портале. Позволяет сбрасывать пароли, настраивать дополнительные поля, создавать системные теги;
- Роль «Оператор SLA» добавляет возможности по созданию и изменению инфраструктуры, но не дает доступ в раздел «Администрирование» для управления контрагентами, пользователями и сессиями на портале;
- по умолчанию все добавляемые учётные записи включают роль «Пользователь», её снятие невозможно, она добавлена для наглядности.
- Если выбрана роль «Оператор SLA», то можно добавить только одного контрагента в список. В противном случае число связанных контрагентов не ограничено;

<span style="color: rgb(34, 34, 34); font-family: var(--font-heading, var(--font-body)); font-size: 1.666em; font-weight: 500;">Уведомления</span>

- «Всплывающие уведомления на портале» – для включения всплывающих уведомлений об открытии, закрытии и изменении уровня критичности паспортов неисправности, а также о публикациях отчётов SLA;
- «Уведомления» (по электронной почте) – для включения рассылки электронных писем об открытии, закрытии и изменении уровня критичности паспортов неисправности, писем о плановых работах, проблемах нагрузочного тестирования, а также о публикациях отчётов SLA. При отметке флажком «Отказ», «Деградация», «Не определено» важно не забыть отметить и тип события, по наступлению которого должно отправляться электронное письмо;

#### Прочее

- При нажатии «<span style="font-size: 10.0pt; line-height: 120%; font-family: Webdings; mso-ascii-font-family: Arial; mso-fareast-font-family: 'Times New Roman'; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; color: #30404c; mso-ansi-language: RU; mso-fareast-language: RU; mso-bidi-language: AR-SA; mso-char-type: symbol; mso-symbol-font-family: Webdings;"><span style="mso-char-type: symbol; mso-symbol-font-family: Webdings;">a</span></span>Сохранить». Система выполнит проверку данных. Если ошибок нет, откроется список пользователей. Новая учётная запись будет иметь статус «Зарегистрированный». Иначе система сообщит об ошибке, предложит её исправить, и далее понадобится выполнить сохранение повторно;
- Если есть возможность, убедиться в получении регистрационного письма пользователем. Пользователь получает письмо со ссылкой на портал и одноразовым паролем. У него есть 24 часа на активацию учётной записи (вход на портал со сменой пароля). Если пользователь просрочил активацию, учётная запись будет заблокирована.

#### Интеграция Active Directory и wiSLA

В wiSLA есть возможность создания пользователя и авторизации с помощью службы каталогов Active Directory.

Службы каталогов корпорации Microsoft для операционных систем семейства Windows Server. Основной задачей Active Directory является хранение информации обо всех объектах в сети и предоставление её внешним системам.

Хранение паролей, критерии их стойкости, периоды действия и прочий функционал управления учетными данными AD будет управляться на стороне AD.

Пользователь не сможет изменить учетные данные, если он добавлен с помощью AD.

Настройки со стороны администратора производятся в инсталлере (рисунок 58.1).[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/4MDimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/4MDimage.png)

Рис. 58.1 Страница настройки Active Directory в инсталлере

Перечень настроек:

<table border="1" id="bkmrk-%E2%84%96-%D0%9A%D0%B5%D0%B9%D1%81-%D0%9E%D0%B6%D0%B8%D0%B4%D0%B0%D0%B5%D0%BC%D1%8B%D0%B9-%D1%80%D0%B5%D0%B7-1" style="height: 907px; width: 40.2804%;"><tbody><tr><td style="width: 50.1028%;">- ldap\_server.enabled

</td><td style="width: 50.1028%;">По умолчанию "false"</td></tr><tr><td style="width: 50.1028%;">- ldap\_server.url

  
</td><td style="width: 50.1028%;">Необходимо указать (например "Ldap://DEVWIN.local:38922/")

</td></tr><tr><td style="width: 50.1028%;">- ldap\_server.base

  
</td><td style="width: 50.1028%;">Необходимо указать (например "CN=Users, DC=DEVWIN, DC=local")

</td></tr><tr><td style="width: 50.1028%;">- ldap\_server.authenticator\_name

  
</td><td style="width: 50.1028%;">По умолчанию ("ldapBindAuthenticator")

</td></tr><tr><td style="width: 50.1028%;">- ldap\_server.login

  
</td><td style="width: 50.1028%;">Необходимо указать (например "login")

</td></tr><tr><td style="width: 50.1028%;">- ldap\_server.password

  
</td><td style="width: 50.1028%;">Необходимо указать (например "11112222")

</td></tr><tr><td style="width: 50.1028%;">- ldap\_server.person\_class\_name

  
</td><td style="width: 50.1028%;">По умолчанию ("user")

</td></tr><tr><td style="width: 50.1028%;">- ldap\_server.vid\_attribute\_name

</td><td style="width: 50.1028%;">По умолчанию ("objectquid")

</td></tr><tr><td style="width: 50.1028%;">- ldap\_server.login\_attribute\_name

</td><td style="width: 50.1028%;">По умолчанию ("samaccountname")

</td></tr><tr><td style="width: 50.1028%;">- ldap\_server.memberof\_attribute\_name

</td><td style="width: 50.1028%;">По умолчанию ("memberof")

</td></tr><tr><td style="width: 50.1028%;">- ldap\_server.display\_name\_attribute\_name

</td><td style="width: 50.1028%;">По умолчанию ("displayname")

</td></tr><tr><td style="width: 50.1028%;">- ldap\_server.email\_attribute\_name

</td><td style="width: 50.1028%;">По умолчанию ("mail")

</td></tr><tr><td style="width: 50.1028%;">- ldap\_server.phone\_attribute\_name

</td><td style="width: 50.1028%;">По умолчанию ("telephonenumber")

</td></tr></tbody></table>

##### Авторизация в wiSLA с помощью данных Active Directory

- Перейти на страницу авторизации в систему
- Указать данные авторизации AD
- Нажать кнопку "Войти"

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/kWzimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/kWzimage.png)

#### Создание пользователя с помощью учетной записи Active Directory

Для создания нового пользователя с помощью AD нужно:

- нажать кнопку «+ Создать». Откроется форма добавления новой учётной записи портала, по умолчанию открыта вкладка «Основные параметры»
- Нажать кнопку "Загрузить из ACTIVE DIRECTORY"
- Выбрать учетную запись AD в списке
- Нажать кнопку "Сохранить"

## Регистрация пользователя wiSLA.Cloud по запросу

В режиме wiSLA.Cloud предусмотрена возможность автоматической регистрации пользователей. В случае если пользователь регистрирует себя и компанию впервые, участие системного администратора не предусмотрено. В этом случае создаётся учётная запись с правами «Оператор SLA» и «Пользователь», она получает статус «Зарегистрированный», затем при подтверждении регистрации статус учётной записи изменяется на «Активный». Помощь системного администратора может понадобиться только при регистрации программного агента для его корректной привязки к компании (контрагенту), если пользователь не указал свои учётные данные при установке агента (например, в целях безопасности). Однако есть один сценарий, когда без системного администратора регистрация пользователя невозможна. Пользователь при регистрации вводит полное имя, адрес электронной почты и название компании. Если название компании не уникально (то есть сотрудники этого пользователя уже зарегистрированы в системе), в целях безопасности система предлагает запросить доступ у системного администратора. В этом случае система отправляет письмо на адрес электронной почты системного администратора. Далее следует:

- выяснить соответствие сотрудника компании;
- если соответствие установлено, перейти по ссылке в письме (при необходимости авторизоваться на портале). Из письма будут переданы: адрес электронной почты, полное имя, набор ролей, принадлежность к контрагенту (в простейшем случае останется просто сохранить настройки). Если же установлен факт попытки получения несанкционированного доступа к инфраструктуре – уведомить ответственного представителя контрагента, игнорировать письмо о регистрации, не переходить по ссылке – в этом случае учётная запись не будет создана и злоумышленник не получит доступа к порталу этим способом;
- если в предыдущем пункте было принято решение о добавлении пользователя – заполнить необязательные поля (если требуется) и сохранить настройки. Пользователю будет отправлено письмо с данными для авторизации.

Если пользователь не получил письмо, можно открыть настройки учётной записи, уточнить адрес электронной почты и повторно нажать кнопку «Сохранить». Пользователю будет повторно отправлено письмо с новыми данными для авторизации.

## Принудительная смена пароля

Системный администратор может выполнить смену пароля другому пользователю (кроме учётной записи с ролью системного администратора).

Для смены пароля нужно:

1. Найти в списке и открыть на редактирование учётную запись пользователя.
2. Если учётная запись в статусе «Зарегистрированный», можно повторно сгенерировать и выслать случайный пароль пользователю. Это может быть полезно в случае когда после создания учётной записи пользователь не получил письмо с одноразовым паролем. Системному администратору следует нажать кнопку «Сохранить», письмо с новым паролем будет отправлено.
3. Если учётная запись в статусе «Активный», и пользователь имеет набор ролей ниже системного администратора, то ему можно установить известный системному администратору пароль путём заполнения полей «Новый пароль» и «Подтверждение».
4. Смена пароля другим системным администраторам невозможна. Системные администраторы могут воспользоваться стандартной процедурой восстановления пароля на странице авторизации.

## Блокировка учётной записи

Если пользователю следует временно ограничить доступ к порталу, можно выполнить блокировку его учётной записи. При попытке входа пользователь получит уведомление, что его учётная запись заблокирована.  
Для блокировки пользователя следует:

1. найти в списке и открыть на редактирование учётную запись пользователя;
2. нажать «Ещё», «Заблокировать». Возможна блокировка учётных записей с набором ролей  
    ниже системного администратора.

Блокировка других системных администраторов невозможна. Для снятия блокировки системный администратор должен выбрать заблокированную учётную запись, открыть её на редактирование и выбрать «Ещё», «Разблокировать».

## Изменение настроек рассылки уведомлений

Настройки рассылки в чужой учётной записи могут быть изменены системным администратором независимо от роли редактируемой записи. На рисунке 59 показан пример настройки.

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2023-12/scaled-1680-/llPimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2023-12/llPimage.png)Рис. 59 Настройка рассылки уведомлений

В приведённом примере пользователь будет получать уведомления:

- на всех страницах портала – о паспортах неисправности и о публикации отчётов SLA;
- на адрес его электронной почты будут приходить письма об открытии, закрытии, изменении уровня и добавлении комментариев к паспортам неисправности уровней «Отказ», «Деградация» и «Не определено». Также он будет получать уведомления о планово-профилактических работах и провале нагрузочного тестирования.

Как было указано ранее, при отметке флажком «Отказ», «Деградация», «Не определено» важно не забыть отметить и тип события, по наступлению которого должно отправляться электронное письмо.

##   

# СЕССИИ

Страница «Сессии» (рисунок 60) доступна системным администраторам. Она позволяет увидеть, кто в данный момент находится в системе, с какого IP-адреса произведён вход, время последней активности и ожидаемое время окончания сессии (длительность сессии по умолчанию составляет 30 минут). Для нежелательных сессий предусмотрены завершение сессии и блокировка пользователя.

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-01/scaled-1680-/zdRimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-01/zdRimage.png)

Рис. 60 Страница управления сессиями

При завершении сессии происходит освобождение памяти, выделенной для данной сессии, пользователь не получает никаких уведомлений. В случае если он продолжает работу с порталом, осуществляется его автоматический вход. Такой функционал может быть полезен для аварийного завершения подвисших сессий, но не для блокировки нарушителя. При выборе блокировки пользователя системному администратору предлагается выбрать, на какой срок её выполнить: час, день, месяц, навсегда. В списке сессий строка поиска выполняет функцию фильтра записей

# ЖУРНАЛ СОБЫТИЙ

Журнал событий (рисунок 61) предоставляет системному администратору доступ к записи действий, связанных с редактированием или созданием новых элементов инфраструктуры, входа на портал, публикации и перерасчёта отчётов SLA. Функционал страницы по работе с журналом событий позволяет:

- осуществлять полнотекстовый поиск (подробнее поиск описан в разделе «Панель поиска»);
- выполнять сортировку по дате, типу, длительности выполнения;
- выполнять фильтрацию по источнику системных событий и по типу событий

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-01/scaled-1680-/JfQimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-01/JfQimage.png)

Рис. 61 Страница журнала событий

- при нажатии на интересующую запись в журнале получить окно с расширенной информацией о действиях пользователя с объектами (рисунок 62).

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-01/scaled-1680-/I70image.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-01/I70image.png)

  
Рис. 62 Просмотр детальной информации о событии

  
Помимо страницы «Журнал событий» для пользователей с ролью системного администратора доступна кнопка «История изменений» на странице редактирования каждого объекта инфраструктуры, а также на странице редактирования контрагента и теста. После нажатия на нее во всплывающем окне отображается расширенная история по последним действиям из журнала событий, отфильтрованная по данному объекту.

# НАСТРОЙКИ СИСТЕМЫ

<div class="qwen-markdown-paragraph" id="bkmrk-%D0%A0%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB-%C2%AB%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8-%D1%81%D0%B8"><span class="qwen-markdown-text" data-spm-anchor-id="a2ty_o01.29997173.0.i37.163f5171lXGmyu">Раздел «Настройки системы» предназначен для конфигурирования основных параметров работы wiSLA. Здесь выполняются настройки почтовых уведомлений, интеграции с LDAP, управления агентами, скалирования метрик и обслуживания данных.</span></div>## <span class="qwen-markdown-text">1. ОБНОВЛЕНИЕ АГЕНТОВ</span>

<div class="qwen-markdown-space" id="bkmrk-%D0%A6%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5-%D1%83%D0%BF%D1%80"><div class="qwen-markdown-paragraph"><span class="qwen-markdown-text">Этот раздел позволяет администраторам централизованно управлять обновлениями агентов, следить за их статусом и версионностью, а также оперативно устранять проблемы с обновлениями. Функция удобна для масштабного развертывания новых версий ПО и обеспечения стабильности работы инфраструктуры.</span></div></div>### Возможности

<div class="qwen-markdown-space" id="bkmrk-%D0%9F%D1%80%D0%BE%D1%81%D0%BC%D0%BE%D1%82%D1%80-%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B0-%D0%B2%D1%81%D0%B5%D1%85">- <span class="qwen-markdown-text">Просмотр списка всех агентов с их статусами</span>
- <span class="qwen-markdown-text">Мониторинг версий прошивок</span>
- <span class="qwen-markdown-text">Запуск обновлений для выбранных агентов</span>
- <span class="qwen-markdown-text">Настройка источника обновлений</span>

</div><div class="qwen-markdown-paragraph" id="bkmrk-"></div>### Параметры списка агентов

<div class="qwen-markdown-space" id="bkmrk-%D0%9D%D0%B0%D0%B7%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%E2%80%94-%D0%B8%D0%BC%D1%8F-%D0%B0%D0%B3%D0%B5%D0%BD%D1%82">- **<span class="qwen-markdown-text">Название</span>**<span class="qwen-markdown-text"> — имя агента в системе</span>
- **<span class="qwen-markdown-text">Тип</span>**<span class="qwen-markdown-text"> — категория агента (Linux, Windows, Sheeva и др.)</span>
- **<span class="qwen-markdown-text">Версия прошивки</span>**<span class="qwen-markdown-text"> — текущая установленная версия</span>
- **<span class="qwen-markdown-text">IP-адрес</span>**<span class="qwen-markdown-text"> — сетевой адрес устройства</span>
- **<span class="qwen-markdown-text">Расположение</span>**<span class="qwen-markdown-text"> — регион или площадка</span>
- **<span class="qwen-markdown-text">Доступность</span>**<span class="qwen-markdown-text"> — индикатор (зелёный — доступен, красный — недоступен)</span>
- **<span class="qwen-markdown-text">Статус</span>**<span class="qwen-markdown-text"> — состояние агента (обновляется, требует внимания и т.д.)</span>
- **<span class="qwen-markdown-text">Ссылка для обновления</span>**<span class="qwen-markdown-text"> — путь к файлу обновления (например: ftp://192.168.176.92/update)</span>
- **<span class="qwen-markdown-text">Последнее обновление</span>**<span class="qwen-markdown-text"> — дата и время последнего обновления</span>

</div>### Как использовать?

<div class="qwen-markdown-space" id="bkmrk-%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D1%83%D0%B9%D1%82%D0%B5%D1%81%D1%8C-%D0%BF%D0%BE%D0%B4-%D1%83%D1%87">1. <span class="qwen-markdown-text">Авторизуйтесь под учётной записью с ролью «Системный администратор»</span>
2. <span class="qwen-markdown-text">Перейдите: </span>**<span class="qwen-markdown-text">Администрирование → Настройка системы → </span>**вкладка **<span class="qwen-markdown-text">«Обновление агентов»</span>**
3. <span class="qwen-markdown-text">Просмотрите список агентов и их статусы</span>
4. <span class="qwen-markdown-text">Для обновления:</span>
    - <span class="qwen-markdown-text">Выберите необходимые агенты</span>
    - <span class="qwen-markdown-text">Нажмите </span>**<span class="qwen-markdown-text">«Начать обновление»</span>**
    - <span class="qwen-markdown-text">Или укажите источник обновлений через кнопку </span>**<span class="qwen-markdown-text">«Указать источник»</span>**
5. <span class="qwen-markdown-text">Используйте фильтрацию и поиск для работы с большим количеством агентов</span>
6. <span class="qwen-markdown-text">Настройте отображаемые столбцы через настройки таблицы</span>

</div>### Важно:

<div class="qwen-markdown-space" id="bkmrk-%D0%90%D0%B3%D0%B5%D0%BD%D1%82%D1%8B-%D0%B4%D0%BE%D0%BB%D0%B6%D0%BD%D1%8B-%D0%B1%D1%8B%D1%82%D1%8C-%D0%B4">- <span class="qwen-markdown-text">Агенты должны быть доступны по сети для получения обновлений</span>
- <span class="qwen-markdown-text">Источник обновлений должен содержать актуальные версии прошивок</span>
- <span class="qwen-markdown-text">Обновление может занять несколько минут в зависимости от количества агентов</span>
- <span class="qwen-markdown-text">Рекомендуется обновлять агенты в нерабочее время</span>
- <span class="qwen-markdown-text">После обновления проверьте работоспособность агентов</span>

</div>## <span class="qwen-markdown-text">2 ПОЧТОВЫЕ УВЕДОМЛЕНИЯ</span>

<div class="qwen-markdown-paragraph" id="bkmrk-%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B8-e"><span class="qwen-markdown-text">Этот раздел позволяет администратору системы (системному пользователю `Admin`) настроить корректную работу email-уведомлений, обеспечить безопасное соединение с почтовым сервером и задать ограничения на количество отправляемых сообщений. Благодаря этим настройкам система может информировать пользователей о важных событиях и изменениях статуса сервисов, паспортах неисправности и отчётах SLA.</span></div>### <span class="qwen-markdown-strong"><span class="qwen-markdown-text">Основные параметры:</span></span>

1. **Общие параметры уведомлений**:
    
    
    - Включение уведомлений на почту.
    - Уведомления о статусе профиля.
    - Уведомления об активации сервиса.
    - Уведомления о смене статуса сервиса.
2. **Настройки соединения**:
    
    
    - Адреса уведомлений: 
        - `wiSLA notification cp_link`: <a data-end="681" data-start="621" rel="noopener" target="_new">https://alfa-test.wellink.ru</a>
        - `wiSLA notification op_link`: <a data-end="779" data-start="719" rel="noopener" target="_new">https://alfa-test.wellink.ru</a>
    - Почтовый сервер: `smtp.yandex.ru`
    - Протокол: `SMTP`
    - Порт: `465`
    - Используемые версии TLS: `TLSv1.2`, `TLSv1.3`
3. **Безопасность соединения**:
    
    
    - Включение SSL.
    - Аутентификация SMTP.
    - Включение или отключение `STARTTLS`.
    - Возможность отключить аутентификацию SMTP.
    - Поле `SSL Trust`.
4. **Дополнительные параметры**:
    
    
    - Таймаут чтения: `5000`
    - Таймаут соединения: `5000`
    - Таймаут записи: `5000`
    - Включение режима отладки.
    - Пароль (скрыт звездочками).
    - Псевдоним отправителя: `wisla-alfa-test`
    - Пользователь: `alfa-test@wellink.ru`
    - Отправитель: `alfa-test@wellink.ru`
    - Лимит уведомлений о событиях: `10`
    - Опция "Использовать английские имена файлов".

### <span class="qwen-markdown-strong"><span class="qwen-markdown-text">Как настроить?</span></span>

1. <span class="qwen-markdown-text">Авторизуйтесь под пользователем </span>**<span class="qwen-markdown-text">Admin</span>**<span class="qwen-markdown-text"> (id-2)</span>
2. <span class="qwen-markdown-text">Перейдите: </span>**<span class="qwen-markdown-text">Администрирование → Настройка системы → </span>**<span class="qwen-markdown-strong"><span class="qwen-markdown-text">вкладка </span></span>**<span class="qwen-markdown-text">Почтовые уведомления</span>**
3. <span class="qwen-markdown-text">Установите </span>**<span class="qwen-markdown-text">Notification enabled = true</span>**<span class="qwen-markdown-text"> для активации рассылок</span>
4. <span class="qwen-markdown-text">Заполните параметры SMTP-сервера:</span>
    - <span class="qwen-markdown-text">Укажите адрес и порт вашего почтового сервера</span>
    - <span class="qwen-markdown-text">Введите учётные данные для аутентификации</span>
    - <span class="qwen-markdown-text">Выберите протокол и параметры безопасности</span>
5. <span class="qwen-markdown-text">Настройте ссылки на портал (op\_link и cp\_link)</span>
6. <span class="qwen-markdown-text">При необходимости настройте дополнительные параметры</span>
7. <span class="qwen-markdown-text">Нажмите </span>**<span class="qwen-markdown-text">«Сохранить»</span>**

### Важно:

- <span class="qwen-markdown-text">Для проверки настроек отправьте тестовое уведомление</span>
- <span class="qwen-markdown-text">Убедитесь, что почтовый сервер доступен с сервера wiSLA</span>
- <span class="qwen-markdown-text">При использовании Gmail/Yandex требуется создать «пароль приложения»</span>
- <span class="qwen-markdown-text">Параметры безопасности (SSL/TLS) должны соответствовать возможностям вашего почтового сервера</span>

## <span class="qwen-markdown-text">3 АВТОРИЗАЦИЯ LDAP</span>

<div class="qwen-markdown-paragraph" id="bkmrk-%D0%98%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D1%81-%D0%BA%D0%BE%D1%80%D0%BF%D0%BE%D1%80%D0%B0"><span class="qwen-markdown-text">Этот раздел предназначен для системных администраторов, которые хотят централизованно управлять учетными записями пользователей и их доступом к системе через интеграцию с корпоративной службой каталогов LDAP/Active Directory для централизованной аутентификации и авторизации пользователей. Настройки позволяют определить параметры подключения, идентификации и поиска пользователей в каталоге, обеспечивая удобную и безопасную интеграцию с корпоративной средой.</span></div><div class="qwen-markdown-paragraph" id="bkmrk-%D0%A0%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B5%D0%BD-%D1%82%D0%BE%D0%BB%D1%8C"><span class="qwen-markdown-text">Раздел доступен только для системного пользователя `Admin`</span></div>### <span class="qwen-markdown-strong"><span class="qwen-markdown-text">Основные параметры:</span></span>

1. **Включение авторизации LDAP**
    
    
    - Позволяет включить или отключить механизм аутентификации через LDAP.
2. **Параметры подключения к LDAP-серверу**
    
    
    - **Адрес сервера LDAP**: `ldap://10.11.11.42:389/` – указывает на сервер и порт для соединения.
    - **База поиска LDAP**: `ou=well-users,dc=wellink,dc=local` – определяет, где в каталоге производить поиск учетных записей.
    - **Логин**: `cn=explorer,dc=wellink,dc=local` – учетная запись, используемая для подключения к серверу.
    - **Пароль** (скрыт звездочками) – аутентификационные данные для связи с сервером.
3. **Настройки идентификации пользователей**
    
    
    - **Аутентификатор LDAP**: `ldapBindAuthenticator` – механизм проверки учетных данных пользователей.
    - **Идентификатор пользователя**: `objectGUID` – уникальный идентификатор учетной записи в каталоге.
    - **Атрибут для логина**: `sAMAccountName` – поле, используемое для аутентификации пользователей.
    - **Атрибут полного имени**: `displayname` – поле, содержащее полное имя пользователя.
    - **Имя группы**: `memberof` – параметр, определяющий, к какой группе принадлежит пользователь.
    - **Имя объектного класса (человек)**: `user` – объектный класс, к которому относятся учетные записи пользователей.
    - **Почта**: `mail` – атрибут LDAP, хранящий email-адрес пользователя.
    - **Телефон**: `telephonenumber` – атрибут, содержащий телефонный номер.

### <span class="qwen-markdown-strong"><span class="qwen-markdown-text">Как настроить?</span></span>

1. <span class="qwen-markdown-text">Авторизуйтесь под пользователем </span>**<span class="qwen-markdown-text">Admin</span>**<span class="qwen-markdown-text"> (id-2)</span>
2. <span class="qwen-markdown-text">Перейдите: </span>**<span class="qwen-markdown-text">Администрирование → Настройка системы → </span>**<span class="qwen-markdown-strong"><span class="qwen-markdown-text">вкладка </span></span>**<span class="qwen-markdown-text">Авторизация LDAP</span>**
3. <span class="qwen-markdown-text">Установите </span>**<span class="qwen-markdown-text">ldap\_server.enabled = true</span>**
4. <span class="qwen-markdown-text">Заполните параметры подключения:</span>
    - <span class="qwen-markdown-text">Укажите URL вашего LDAP/AD сервера</span>
    - <span class="qwen-markdown-text">Введите базовый DN для поиска пользователей</span>
    - <span class="qwen-markdown-text">Укажите учётные данные сервисной учётной записи</span>
5. <span class="qwen-markdown-text">При необходимости скорректируйте атрибуты (для нестандартных схем AD)</span>
6. <span class="qwen-markdown-text">Нажмите </span>**<span class="qwen-markdown-text">«Сохранить»</span>**
7. <span class="qwen-markdown-text">Протестируйте подключение, создав тестового пользователя из LDAP</span>

### Важно:

- <span class="qwen-markdown-text">Сервисная учётная запись LDAP должна иметь права на чтение каталога</span>
- <span class="qwen-markdown-text">Для LDAPS (LDAP over SSL) убедитесь, что сертификаты доверены системе</span>
- <span class="qwen-markdown-text">Проверьте доступность LDAP-сервера с сервера wiSLA (порт 389/636)</span>
- <span class="qwen-markdown-text">После настройки пользователи могут входить, используя свои доменные учётные данные</span>
- <span class="qwen-markdown-text">Пароли пользователей управляются в AD, а не в wiSLA</span>

<div class="qwen-markdown-space" id="bkmrk--2">  
</div>## <span class="qwen-markdown-text">4 ТЕХОБСЛУЖИВАНИЕ</span>

<span class="qwen-markdown-text">Раздел доступен только для системного пользователя `Admin`</span>

#### <span class="qwen-markdown-text">Включение скалирования метрик</span>

<div class="qwen-markdown-paragraph" id="bkmrk-%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5-%D0%BF%D1%80%D0%B5%D0%BE%D0%B1"><span class="qwen-markdown-text">Автоматическое преобразование единиц измерения метрик в удобный для восприятия вид (например: байты → КБ → МБ → ГБ).</span></div>##### <span class="qwen-markdown-strong"><span class="qwen-markdown-text">Принцип работы</span></span>

<div class="qwen-markdown-paragraph" id="bkmrk-%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0-%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA"><span class="qwen-markdown-text">Система автоматически масштабирует значения метрик по трём формулам:</span></div>- **<span class="qwen-markdown-text">SI\_UNITS</span>**<span class="qwen-markdown-text"> (×1000) — для метрик: энергия, бит/с, мощность, электрический заряд, ёмкость, время, сопротивление, сила тока, частота</span>
- **<span class="qwen-markdown-text">BI\_UNITS</span>**<span class="qwen-markdown-text"> (×1024) — для метрик: байт/с, единицы информации (память)</span>
- **<span class="qwen-markdown-text">TI\_UNITS</span>**<span class="qwen-markdown-text"> (×1000, ×60, ×24) — для единиц времени</span>

##### <span class="qwen-markdown-strong"><span class="qwen-markdown-text">Формат отображения</span></span>

- <span class="qwen-markdown-text">Значения 0–999: XXX.XX (3 знака до запятой, 2 после)</span>
- <span class="qwen-markdown-text">Значения 1000–1023: XXXX.XX (4 знака до запятой, 2 после)</span>
- <span class="qwen-markdown-text">Значения ≥1024: скалируются в следующую единицу (XXX.XX)</span>
- <span class="qwen-markdown-text">Максимальная единица в шкале не скалируется (неограниченное количество знаков до запятой, 2 после)</span>

<div class="qwen-markdown-space" id="bkmrk-%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%3A-23456-%D0%B1%D0%B0%D0%B9%D1%82-"><div class="qwen-markdown-paragraph">**<span class="qwen-markdown-text">Примеры:</span>**</div>- <span class="qwen-markdown-text">23456 байт → 22.91 КБ</span>
- <span class="qwen-markdown-text">1100000 байт → 1.05 МБ</span>
- <span class="qwen-markdown-text">1111 пА → 1.11 нА</span>
- <span class="qwen-markdown-text">1222333 пА → 1.22 мкА</span>

</div>##### <span class="qwen-markdown-strong"><span class="qwen-markdown-text">Где применяется?</span></span>

<span class="qwen-markdown-strong"><span class="qwen-markdown-text">Все сервисы мониторинга, в режимах отображения:</span></span><span class="qwen-markdown-text"> "График коррелятор" (и в тултипах), "Таблицы", "Круговые диаграммы"</span>

<div class="qwen-markdown-paragraph" id="bkmrk-%D0%9D%D0%B5-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D1%82%D1%81%D1%8F%3A-%22%D0%9E%D1%82%D1%87">**<span class="qwen-markdown-text">Не применяется:</span>**<span class="qwen-markdown-text"> "Отчёты SLA", "Автокоррелятор", другие разделы системы (значения остаются в исходных единицах)</span></div><div class="qwen-markdown-space" id="bkmrk--3">  
</div>##### <span class="qwen-markdown-strong"><span class="qwen-markdown-text">Как включить/отключить</span></span>

1. <span class="qwen-markdown-text">Авторизуйтесь под пользователем </span>**<span class="qwen-markdown-text">Admin</span>**<span class="qwen-markdown-text"> (id-2)</span>
2. <span class="qwen-markdown-text">Перейдите: </span>**<span class="qwen-markdown-text">Администрирование → Настройка системы → </span>**<span class="qwen-markdown-strong"><span class="qwen-markdown-text">вкладка </span></span>**<span class="qwen-markdown-text">Техобслуживание</span>**
3. <span class="qwen-markdown-text">Найдите блок </span>**<span class="qwen-markdown-text">«Скалирование метрик»</span>**
4. <span class="qwen-markdown-text">Переключите свитч:</span>
    - **<span class="qwen-markdown-text">Включено</span>**<span class="qwen-markdown-text"> — метрики отображаются в скалированных единицах</span>
    - **<span class="qwen-markdown-text">Выключено</span>**<span class="qwen-markdown-text"> — метрики отображаются в исходных единицах</span>
5. <span class="qwen-markdown-text">Нажмите </span>**<span class="qwen-markdown-text">«Сохранить»</span>**

##### <span class="qwen-markdown-strong"><span class="qwen-markdown-text">Важно:</span></span>

- <span class="qwen-markdown-text">Скалирование доступно только пользователю Admin</span>
- <span class="qwen-markdown-text">Состояние переключателя сохраняется после выхода из системы</span>
- <span class="qwen-markdown-text">По умолчанию скалирование </span>**<span class="qwen-markdown-text">включено</span>**
- <span class="qwen-markdown-text">Изменения применяются мгновенно</span>
- <span class="qwen-markdown-text">Скалирование влияет только на отображение, исходные данные не изменяются</span>
- <span class="qwen-markdown-text">Рекомендуется очистить кэш браузера после изменения настроек</span>

# 5. ПОЛНАЯ ОЧИСТКА ДАННЫХ ПО СЕРВИСУ

<div class="qwen-markdown-paragraph" id="bkmrk-%D0%9F%D1%80%D0%B8%D0%BD%D1%83%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5-%D1%83%D0%B4%D0%B0%D0%BB%D0%B5"><div class="qwen-markdown-paragraph" id="bkmrk-%D0%9F%D1%80%D0%B8%D0%BD%D1%83%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5-%D1%83%D0%B4%D0%B0%D0%BB%D0%B5-1"><span class="qwen-markdown-text" data-spm-anchor-id="a2ty_o01.29997173.0.i36.163f5171lXGmyu">Принудительное удаление всей накопленной исторической информации по сервису для начала сбора данных «с чистого листа» (например, перед финальной настройкой или после изменений инфраструктуры).</span></div></div>##### <span class="qwen-markdown-strong"><span class="qwen-markdown-text">Что удаляется?</span></span>

<div class="qwen-markdown-paragraph" id="bkmrk-%D0%A1%D1%8B%D1%80%D1%8B%D0%B5-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5-%D0%BF%D0%BE-%D0%BA%D0%BE%D0%BD%D0%BA">- <span class="qwen-markdown-text">Сырые данные по конкретному сервису</span>
- <span class="qwen-markdown-text">Статусы сервиса</span>
- <span class="qwen-markdown-text">Паспорта неисправности (ПН)</span>
- <span class="qwen-markdown-text">Запланированные плановые предупредительные работы (ППР)</span>
- <span class="qwen-markdown-text">Исключения</span>

</div>##### <span class="qwen-markdown-strong"><span class="qwen-markdown-text">Ролевые </span></span><span class="qwen-markdown-strong"><span class="qwen-markdown-text">ограничения</span></span>

<div class="qwen-markdown-paragraph" id="bkmrk-%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BD%D0%B0%C2%A0%D1%82%D0%BE%D0%BB"><div class="qwen-markdown-paragraph" id="bkmrk-%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BD%D0%B0%C2%A0%D1%82%D0%BE%D0%BB-1"><span class="qwen-markdown-text">Функция доступна </span>**<span class="qwen-markdown-text">только</span>**<span class="qwen-markdown-text"> пользователю </span>**<span class="qwen-markdown-text">Admin (ID-2)</span>**<span class="qwen-markdown-text">. Для всех остальных пользователей кнопка очистки скрыта, доступна только системная бессрочная или настраиваемая очистка за определенный период.</span></div></div>##### <span class="qwen-markdown-strong"><span class="qwen-markdown-text">Как выполнить очистку?</span></span>

<div class="qwen-markdown-paragraph" id="bkmrk-%D0%9F%D0%B5%D1%80%D0%B5%D0%B9%D0%B4%D0%B8%D1%82%D0%B5%3A-%D0%98%D0%BD%D1%84%D1%80%D0%B0%D1%81%D1%82%D1%80%D1%83">1. <span class="qwen-markdown-text">Перейдите: </span>**<span class="qwen-markdown-text">Инфраструктура → Сервисы</span>**
2. <span class="qwen-markdown-text">Откройте необходимый сервис для редактирования</span>
3. <span class="qwen-markdown-text">Перейдите на вкладку </span>**<span class="qwen-markdown-text">«Хранение данных»</span>**
4. <span class="qwen-markdown-text">Нажмите кнопку </span>**<span class="qwen-markdown-text">«Принудительная очистка исторических данных»</span>**
5. <span class="qwen-markdown-text">Подтвердите действие в появившемся окне:</span>> <div class="qwen-markdown-paragraph"><span class="qwen-markdown-text">«Вы собираетесь очистить все исторические данные по сервису. Паспорта неисправности, статусы сервиса и результаты тестов будут безвозвратно удалены. Продолжить?»</span></div>
    
    
    - **<span class="qwen-markdown-text">«Да»</span>**<span class="qwen-markdown-text"> — подтвердить очистку</span>
    - **<span class="qwen-markdown-text">«Отменить»</span>**<span class="qwen-markdown-text"> — отменить операцию</span>
6. <span class="qwen-markdown-text">Система определит ближайший «Системный временной промежуток»</span>
7. <span class="qwen-markdown-text">Вы получите уведомление:</span>> <div class="qwen-markdown-paragraph"><span class="qwen-markdown-text">«Очистка данных будет произведена: TT:TT, DD/MM/YY»</span></div>

</div>##### <span class="qwen-markdown-strong"><span class="qwen-markdown-text">Как это работает?</span></span>

<div class="qwen-markdown-paragraph" id="bkmrk-%D0%9E%D1%87%D0%B8%D1%81%D1%82%D0%BA%D0%B0-%D0%9D%D0%95-%D0%BF%D1%80%D0%BE%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D0%B8">- <span class="qwen-markdown-text">Очистка </span>**<span class="qwen-markdown-text">НЕ</span>**<span class="qwen-markdown-text"> происходит мгновенно</span>
- <span class="qwen-markdown-text">Задача ставится в очередь на ближайший системный временной промежуток</span>
- <span class="qwen-markdown-text">Контролёр выполняет очистку в начале следующего временного промежутка</span>
- <span class="qwen-markdown-text">Система предотвращает дублирование задач *(ес*</span>*ли система обнаружит две идентичные задачи на очистку, например одинаковые ID сервиса и теста, а также совпадение временного промежутка, то вторая и последующие задачи не будут зарегистрированы<span class="qwen-markdown-text">)</span>*

</div>##### <span class="qwen-markdown-strong"><span class="qwen-markdown-text">Логирование</span></span>

<div class="qwen-markdown-paragraph" id="bkmrk-%D0%92%D1%81%D0%B5-%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D1%8F-%D1%84%D0%B8%D0%BA%D1%81%D0%B8%D1%80%D1%83"><div class="qwen-markdown-paragraph" id="bkmrk-%D0%92%D1%81%D0%B5-%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D1%8F-%D1%84%D0%B8%D0%BA%D1%81%D0%B8%D1%80%D1%83-1"><span class="qwen-markdown-text">Все действия фиксируются в </span>**<span class="qwen-markdown-text">«Журнале событий»</span>**<span class="qwen-markdown-text">:</span></div>- <span class="qwen-markdown-text">Время постановки задачи</span>
- <span class="qwen-markdown-text">ID пользователя, инициировавшего очистку</span>
- <span class="qwen-markdown-text">ID сервиса</span>
- <span class="qwen-markdown-text">Категории удалённых данных</span>

</div>##### <span class="qwen-markdown-strong"><span class="qwen-markdown-text">Важно:</span></span>

<div class="qwen-markdown-paragraph" id="bkmrk-%D0%A3%D0%B4%D0%B0%D0%BB%D1%91%D0%BD%D0%BD%D1%8B%D0%B5-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5-%D0%BD%D0%B5-"><div class="qwen-markdown-paragraph" id="bkmrk-%D0%A3%D0%B4%D0%B0%D0%BB%D1%91%D0%BD%D0%BD%D1%8B%D0%B5-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5-%D0%BD%D0%B5--1">**<span class="qwen-markdown-text">Удалённые данные не подлежат восстановлению!</span>**</div>- <span class="qwen-markdown-text">Создайте резервную копию перед очисткой, если данные могут понадобиться</span>
- <span class="qwen-markdown-text">Очистка выполняется только в начале следующего системного временного промежутка</span>
- <span class="qwen-markdown-text">При наличии уже поставленной задачи повторные запросы не регистрируются</span>
- <span class="qwen-markdown-text">Используйте функцию только при необходимости (перенастройка сервиса, тестирование)</span>
- <span class="qwen-markdown-text">После очистки сбор данных начнётся заново</span>

  
</div>

# 6. РАЗГРАНИЧЕНИЕ ПРАВ ДОСТУПА НА WEB-ПОРТАЛЕ

# Роли и права на действия с объектами

## Роли

  
Всем пользователям системы могут быть присвоены роли:

- «Системный администратор»;
- «Оператор SLA»;
- «Пользователь» (роль по умолчанию, которая назначена всем пользователям). Чтобы избежать путаницы с абстрактным пользователем портала, далее для обозначения учётных записей с этой единственной ролью будет использовано словосочетание «учётная запись с ролью «пользователь».

Одному пользователю может быть назначено несколько ролей. Каждая роль содержит определенный набор прав.

## Права на действия с объектами

Права доступа к объектам системы основаны на двух типах связи: «пользователь – контрагент» и «пользователь – контракт». Если учётная запись имеет связь с контрагентом, пользователь получает доступ к объектам инфраструктуры всех контрактов этого контрагента, а также всех объектов, владельцем которых является данный контрагент. Если пользователь портала перечислен в списке ответственных пользователей в контракте, ему доступны объекты инфраструктуры этого контракта.

Разграничение прав доступа по принадлежности к контракту подразумевает видимость объектов, связанных с контрактом (от сервисов — до зондов). В зависимости от набора ролей в настройках учётной записи пользователь может не только просматривать объекты системы, но и редактировать их (например, редактировать пользователей), а также использовать доступные ему объекты при создании новых (например, доступные зонды и сервисы – при создании новых контрактов).

При создании пользователем контрагента «Б», создаваемый объект приобретает иерархическую связь с контрагентом «А», за которым закреплён этот пользователь. Далее такой контрагент «Б» будет называться «дочерним контрагентом» по отношению к «А». Соответственно, контрагент «А» является «родительским контрагентом» по отношению к «Б».

При создании сервиса пользователь может запретить его дальнейшее редактирование пользователями дочерних контрагентов установкой флажка "Редактирование только для владельца". В настройках теста, зонда и точки доступа есть аналогичный флажок.

Разграничение прав доступа к контрактам и дочерним объектам контракта (сервисам, зондам) осуществляется на основе связи между контрактом и пользователем (одним или несколькими), которые несут ответственность и контролируют соблюдение SLA в рамках этого контракта.

Все пользователи, которые закреплены за определёнными контрактами, имеют возможность мониторинга состояния этих контрактов и всего, что с ними связано:

- получают уведомления по электронной почте о событиях, связанных с сервисами контракта;
- просматривают паспорта неисправности, исключения и плановые работы по сервисам контракта;
- просматривают текущие показатели качества по сервисам контракта;
- просматривают отчёты SLA по контракту и получают отчёты по электронной почте;
- просматривают связанную с контрактом инфраструктуру (сервисы и зонды).

Всем пользователям, которые закреплены за определенными контрагентами, будет доступна для просмотра вся инфраструктура, связанная с данным контрагентом. Для пользователей родительских контрагентов доступна вся инфраструктура дочерних контрагентов. Чтобы ограничить видимость таким пользователям, достаточно прикрепить их к конкретным контрактам.

### Пользователь с ролью «Системный администратор»:

- работает с блоком «Администрирование» в главном меню;
- ведёт работу с учётными записями портала: создаёт пользователей; редактирует, блокирует, снимает блокировку всем, кроме других системных администраторов и Admin; подтверждает регистрацию пользователей wiSLA.Cloud;
- просматривает контракты, не может добавлять и удалять пользователя из контракта;
- просматривает настройки зондов;
- просматривает и изменяет настройки зондов в статусе "На складе";
- просматривает настройки точек доступа;
- изменяет контрагентов в настройках всех объектов системы, кроме контрактов и учётных записей других системных администраторов и Admin;
- создаёт и редактирует показатели;
- создаёт и редактирует SLA (только созданные пользователем с ролью «Системный администратор»);
- создаёт и редактирует всех контрагентов. Если системный администратор не закреплён за контрагентом, созданный им контрагент не будет иметь иерархической связи с контрагентом системного администратора;
- создаёт и редактирует тесты (только созданные пользователем с ролью «Системный администратор»);
- управляет сессиями;
- просматривает журнал событий;
- управляет доступом к разделу «Топология сети» и взаимодействует с иерархией контрагентов: имеет доступ к топологии всех контрагентов системы и возможность перехода между схемами топологии родительских и дочерних контрагентов;
- работает с элементами управления на схеме топологии: имеет доступ к фильтрации, поиску, масштабированию, а также кнопкам сохранения и информации об объектах топологии;
- редактирует схему топологии: изменяет расположение объектов на уровнях топологии, добавляет и удаляет объекты, перемещает объекты между уровнями, объединяет в группы и создает связи между объектами, добавляет каналы связи и внешние связи между объектами;
- управляет режимами сохранения топологии: выбирает режим ручного сохранения через кнопку «Сохранить» или режим автоматического сохранения после изменений, задаваемый в настройках;
- управляет настройками топологии сети: изменяет параметры сканирования, добавляет и удаляет подсети, редактирует настройки IP-адресов, портов, логинов и паролей, и других технических параметров для всех контрагентов;
- работает со списком контрагентов: выполняет поиск, сортировку и настройку отображения столбцов в таблице контрагентов, может изменять порядок столбцов и настраивать видимость столбцов;
- выполняет поиск и настройку видимости объектов инфраструктуры, имея доступ ко всем объектам, связанным с контрагентами в системе, включая объекты на уровнях дочерних контрагентов.

***Мастер-пользователь***

При установке системы wiSLA создается техническая учетная запись системного администратора для заведения первичной инфраструктуры.

Полное имя: Admin

Эл. почта: Admin

Пароль: Admin@123

Роль: Системный администратор

Особенности:

- Роль Системный администратор для этой учетная запись не может быть снята самостоятельно.
- Данная учетная запись активирована при установке системы.
- Пароль для этой учетная запись может быть всегда изменен с портала wiSLA. (даже если в настройках системы указана смена пароля только через email)
- Данный пользователь может снимать/добавлять роль Системный администратор для других учетных записей.

### Пользователь с ролью «Оператор SLA»:

- работает с блоками «Мониторинг», «Отчёты», «Инфраструктура» в главном меню портала;
- не имеет доступа в разделы блока «Администрирование», но может работать с контрагентами (изменять роли и создавать новых со страницы контракта) и тестами (со страницы сервиса);
- может быть прикреплён только к одному контрагенту;
- создаёт объекты инфраструктуры, которые наследуют его связь с контрагентом;
- создаёт и редактирует сервисы, контракты, зонды, точки доступа. Для редактирования доступны любые объекты инфраструктуры, принадлежащие контрагенту, к которому он прикреплён, а также объекты, видимые через контракты, в которые он добавлен как ответственный пользователь;
- создаёт и редактирует показатели, при этом для редактирования доступны показатели, созданные только пользователем с ролью «Оператор SLA» и принадлежащие его контрагенту;
- создаёт и редактирует SLA, при этом для редактирования доступны SLA, созданные только пользователем с ролью «Оператор SLA», принадлежащие родительскому или дочерним контрагентам;
- создаёт и редактирует тесты (через настройки сервиса). Для редактирования доступны также тесты, созданные пользователем с ролью «Системный администратор»;
- создаёт новых контрагентов (через настройки контракта), которые наследуют его связь с контрагентом и становятся по отношению к этому контрагенту дочерними;
- меняет набор ролей контрагента (через настройки контракта);
- не может изменять владельца в настройках объектов инфраструктуры, включая настройки своего профиля;
- использует и редактирует объекты инфраструктуры дочерних контрагентов: сервисы, контракты, зонды, точки доступа, SLA, тесты (через сервисы);
- только оператор SLA создаёт плановые работы, а также создаёт, редактирует и удаляет ручные исключения;
- только оператор SLA изменяет статус паспорта неисправности (приостанавливает и возобновляет);
- только оператор SLA добавляет в контракт шаблоны отчётов SLA, формирует отчёты, публикует их и перерассчитывает;
- управляет доступом к разделу «Топология сети» для своего контрагента и дочерних контрагентов, к которым он прикреплён, с возможностью перехода к схемам топологии выбранного контрагента;
- работает с элементами управления на схеме топологии: имеет доступ к базовым элементам интерфейса, включая масштабирование, поиск, фильтрацию, добавление объектов и редактирование доступных объектов инфраструктуры контрагента;
- редактирует схему топологии: перемещает объекты, добавляет новые объекты, создаёт и удаляет связи между объектами, добавляет каналы связи и внешние связи между объектами контрагента и дочерних контрагентов;
- управляет режимом сохранения топологии для своих объектов: может выбирать между ручным и автоматическим режимами сохранения через настройки топологии;
- управляет настройками топологии для своего контрагента: добавляет и удаляет подсети, настраивает IP-адреса, порты, логины, пароли и другие технические параметры, доступные для его инфраструктуры;
- работает со списком контрагентов, видимых ему по иерархии: имеет доступ к фильтрации, сортировке и настройке отображения столбцов для контрагентов, связанных с его контрагентом;
- выполняет поиск по именам и владельцам контрагентов, видимых в иерархии, и видит все объекты инфраструктуры дочерних контрагентов, связанных с его контрагентом.

### Учётная запись с ролью «Пользователь»:

- работает с блоками «Мониторинг», «Отчёты», «Инфраструктура» в главном меню портала;
- не имеет доступа в разделы блока «Администрирование»;
- не может создавать и редактировать объекты инфраструктуры;
- видит объекты только в рамках своего контракта и контрагента;
- изменяет настройки своего профиля;
- имеет ограниченный доступ к разделу «Топология сети»: видит только топологию, связанную с его контрагентом, без возможности перехода к другим контрагентам или схемам топологии;
- взаимодействует с элементами управления на схеме топологии в режиме просмотра: доступ к масштабированию и просмотру объектов, но без возможности добавления, редактирования или удаления объектов;
- не имеет права редактировать схему топологии: объекты и их расположение доступны только для просмотра;
- не имеет доступа к настройкам топологии сети: окно настроек топологии скрыто, параметры сканирования и управления подсетями недоступны;
- видит список контрагентов, к которым он прикреплён, в одноуровневом формате, без возможности сортировки, фильтрации или настройки столбцов;
- выполняет поиск только в рамках своего контрагента и контракта, видя объекты инфраструктуры, которые относятся исключительно к его контрагенту.

## Настройка видимости объектов инфраструктуры разными контрагентами

1. Оператор SLA может добавлять в новые контракты уже созданные и действующие в других контрактах сервисы, при этом не происходит дублирование сервисов в общем перечне.
2. Для каждого партнёра потребителя услуги SLA (оператора связи для корпоративных клиентов, потребителя связи для операторов связи) должен быть создан свой контракт, чтобы его пользователи могли видеть только свои сервисы.
3. Операторы SLA родительского контрагента могут видеть и использовать все объекты инфраструктуры дочерних контрагентов.
4. Для мониторинга магистральных сервисов региональных отделений клиента требуется: 
    - добавить все магистральные региональные сервисы клиента в один контракт федерального отделения клиента. – Пользователям федерального отделения становятся доступны все магистральные сервисы;
    - прикрепить магистральные региональные сервисы к контрактам соответствующих региональных отделений клиента. – Пользователям каждого регионального отделения клиента становится доступен магистральный сервис их региона и не видны другие магистральные сервисы.

Информация о правах доступа пользователей с разным набором ролей и настроек сведена в таблицу 6.

Таблица 6 – Права на действия с объектами для разных ролей пользователей.

<div align="center" id="bkmrk-%C2%A0-%D0%94%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5-%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D1%8B%D0%B9"><table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none; height: 2338.6px; width: 1014px;" width="1022"><thead><tr style="height: 20.9954px;"><td nowrap="nowrap" style="width: 103.087px; border: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 20.9954px;" width="25">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black;"> </span>**

</td><td style="width: 100.587px; border-top: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-image: initial; border-left: none; padding: 0cm 5.4pt; height: 20.9954px;" width="180">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Действие</span>**

</td><td colspan="3" style="width: 320.511px; border-top: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-image: initial; border-left: none; padding: 0cm 5.4pt; height: 20.9954px;" valign="top" width="321">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Системный администратор</span>**

</td><td colspan="2" style="width: 227.064px; border-top: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-image: initial; border-left: none; padding: 0cm 5.4pt; height: 20.9954px;" width="227">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Оператор SLA</span>**

</td><td colspan="3" style="width: 225.012px; border-top: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-image: initial; border-left: none; padding: 0cm 5.4pt; height: 20.9954px;" width="231">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Пользователь</span>**

</td></tr><tr style="height: 74.8148px;"><td nowrap="nowrap" style="width: 103.087px; border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-left: 1pt solid rgb(31, 73, 125); border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 74.8148px;" width="25">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black;"> </span>**

</td><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;" width="180">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';"> </span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;" width="113">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Без роли Оператор SLA и контрагента</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;" width="113">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">+Контрагент</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;" width="95">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">+Оператор SLA</span><span lang="EN-US" style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US;"> +</span><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Контрагент</span>**

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;" width="113">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Контрагент без контракта</span>**

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;" width="113">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">+ Контракт</span>**

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;" width="85">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Без контрагентов и контрактов</span>**

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;" width="76">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">+ Контракт</span>**

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;" width="71">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">+ Контрагент</span>**

</td></tr></thead><tbody><tr style="height: 56.2963px;"><td nowrap="nowrap" rowspan="5" style="width: 103.087px; border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-left: 1pt solid rgb(31, 73, 125); border-image: initial; border-top: none; background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 337.037px;" width="25"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black;">Пользователи</span>

</td><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="180">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Возможность видеть пользователей</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Все</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Все</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="95"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Все</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Только свой профиль</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Только свой профиль</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="85"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Только свой профиль</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="76"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Только свой профиль</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="71"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Только свой профиль</span>

</td></tr><tr style="height: 56.2963px;"><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="180">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Создание новых пользователей портала</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="95"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="85"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="76"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="71"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td></tr><tr style="height: 56.2963px;"><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="180">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Редактирование пользователей портала</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да, пользователей и операторов </span><span lang="EN-US" style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext; mso-ansi-language: EN-US;">SLA</span><span lang="EN-US" style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;"> </span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да, пользователей и операторов </span><span lang="EN-US" style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext; mso-ansi-language: EN-US;">SLA</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="95"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да, пользователей и операторов </span><span lang="EN-US" style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext; mso-ansi-language: EN-US;">SLA</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Только свой профиль</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Только свой профиль</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="85"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Только свой профиль</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="76"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Только свой профиль</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 56.2963px;" width="71"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Только свой профиль</span>

</td></tr><tr style="height: 93.3333px;"><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 93.3333px;" width="180">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Возможность видеть ответственных пользователей контракта</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 93.3333px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Все</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 93.3333px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Все</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 93.3333px;" width="95"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Все</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 93.3333px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да, если доступны</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 93.3333px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да, если доступны</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 93.3333px;" width="85"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 93.3333px;" width="76"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 93.3333px;" width="71"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td></tr><tr style="height: 74.8148px;"><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 74.8148px;" width="180">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Возможность добавлять пользователей к контракту</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 74.8148px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 74.8148px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 74.8148px;" width="95"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 74.8148px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да, если доступны</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 74.8148px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да, если доступны</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 74.8148px;" width="85"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 74.8148px;" width="76"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(253, 254, 202); padding: 0cm 5.4pt; height: 74.8148px;" width="71"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td></tr><tr style="height: 57.9977px;"><td nowrap="nowrap" rowspan="3" style="width: 103.087px; border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-left: 1pt solid rgb(31, 73, 125); border-image: initial; border-top: none; background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 171.806px;" width="25"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black;">Контрагенты</span>

</td><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 57.9977px;" width="180">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Возможность видеть контрагентов</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 57.9977px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Все</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 57.9977px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Все</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 57.9977px;" width="95"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Все</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 57.9977px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 57.9977px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да, только в настройках контракта</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 57.9977px;" width="85"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 57.9977px;" width="76"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да, только в настройках контрактов</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 57.9977px;" width="71"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да, только в настройках контрактов</span>

</td></tr><tr style="height: 38.9931px;"><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 38.9931px;" width="180">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Создание контрагентов</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 38.9931px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 38.9931px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 38.9931px;" width="95"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 38.9931px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да, только через настройки контракта</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 38.9931px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да, только через настройки контракта</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 38.9931px;" width="85"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 38.9931px;" width="76"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 38.9931px;" width="71"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td></tr><tr style="height: 74.8148px;"><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 74.8148px;" width="180">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Редактирование контрагентов</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 74.8148px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Все</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 74.8148px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Все</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 74.8148px;" width="95"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Все</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 74.8148px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 74.8148px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет, только добавление ролей через настройки контракта</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 74.8148px;" width="85"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 74.8148px;" width="76"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(228, 223, 236); padding: 0cm 5.4pt; height: 74.8148px;" width="71"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td></tr><tr style="height: 74.8148px;"><td nowrap="nowrap" rowspan="3" style="width: 103.087px; border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-left: 1pt solid rgb(31, 73, 125); border-image: initial; border-top: none; background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 242.963px;" width="25"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black;">Инфраструктура</span>

</td><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 74.8148px;" width="180">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Возможность видеть объекты инфраструктуры</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 74.8148px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Все</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 74.8148px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Все</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 74.8148px;" width="95"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Все</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 74.8148px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Своего контрагента и его дочерних контрагентов</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 74.8148px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Своего контрагента и его дочерних контрагентов, этого контракта.</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 74.8148px;" width="85"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 74.8148px;" width="76"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Этого контракта</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 74.8148px;" width="71"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Своего контрагента</span>

</td></tr><tr style="height: 56.2963px;"><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 56.2963px;" width="180">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Создание объектов инфраструктуры</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 56.2963px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Только показатели и </span><span lang="EN-US" style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext; mso-ansi-language: EN-US;">SLA</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 56.2963px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Только показатели и </span><span lang="EN-US" style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext; mso-ansi-language: EN-US;">SLA</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 56.2963px;" width="95"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 56.2963px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 56.2963px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 56.2963px;" width="85"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 56.2963px;" width="76"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 56.2963px;" width="71"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td></tr><tr style="height: 111.852px;"><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 111.852px;" width="180">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Редактирование и использование в других контрактах объектов инфраструктуры</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 111.852px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Только редактирование показателей и </span><span lang="EN-US" style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext; mso-ansi-language: EN-US;">SLA</span><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">, созданных системным администратором</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 111.852px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Только редактирование показателей и </span><span lang="EN-US" style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext; mso-ansi-language: EN-US;">SLA</span><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">, созданных системным администратором</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 111.852px;" width="95"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 111.852px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да, редактирование показателей и </span><span lang="EN-US" style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext; mso-ansi-language: EN-US;">SLA</span><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">, созданных только оператором </span><span lang="EN-US" style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext; mso-ansi-language: EN-US;">SLA</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 111.852px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да, редактирование показателей и </span><span lang="EN-US" style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext; mso-ansi-language: EN-US;">SLA</span><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">, созданных только оператором </span><span lang="EN-US" style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext; mso-ansi-language: EN-US;">SLA</span><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">, этого контракта</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 111.852px;" width="85"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 111.852px;" width="76"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(218, 238, 243); padding: 0cm 5.4pt; height: 111.852px;" width="71"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td></tr><tr style="height: 37.7778px;"><td rowspan="2" style="width: 103.087px; border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-left: 1pt solid rgb(31, 73, 125); border-image: initial; border-top: none; background: rgb(214, 227, 188); padding: 0cm 5.4pt; height: 125.903px;" width="25"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black;">Тесты</span>

</td><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(214, 227, 188); padding: 0cm 5.4pt; height: 37.7778px;" width="180">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Доступ к списку тестов </span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(214, 227, 188); padding: 0cm 5.4pt; height: 37.7778px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(214, 227, 188); padding: 0cm 5.4pt; height: 37.7778px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(214, 227, 188); padding: 0cm 5.4pt; height: 37.7778px;" width="95"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(214, 227, 188); padding: 0cm 5.4pt; height: 37.7778px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(214, 227, 188); padding: 0cm 5.4pt; height: 37.7778px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(214, 227, 188); padding: 0cm 5.4pt; height: 37.7778px;" width="85"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(214, 227, 188); padding: 0cm 5.4pt; height: 37.7778px;" width="76"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(214, 227, 188); padding: 0cm 5.4pt; height: 37.7778px;" width="71"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td></tr><tr style="height: 88.125px;"><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(214, 227, 188); padding: 0cm 5.4pt; height: 88.125px;" width="180">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Создание и редактирование тестов</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(214, 227, 188); padding: 0cm 5.4pt; height: 88.125px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да, редактирование тестов, созданных только системным администратором</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(214, 227, 188); padding: 0cm 5.4pt; height: 88.125px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да, редактирование тестов, созданных только системным администратором</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(214, 227, 188); padding: 0cm 5.4pt; height: 88.125px;" width="95"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(214, 227, 188); padding: 0cm 5.4pt; height: 88.125px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да, через настройки сервиса (включая созданные системным администратором)</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(214, 227, 188); padding: 0cm 5.4pt; height: 88.125px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да, через настройки сервиса (включая созданные системным администратором)</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(214, 227, 188); padding: 0cm 5.4pt; height: 88.125px;" width="85"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(214, 227, 188); padding: 0cm 5.4pt; height: 88.125px;" width="76"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(214, 227, 188); padding: 0cm 5.4pt; height: 88.125px;" width="71"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td></tr><tr style="height: 93.3333px;"><td nowrap="nowrap" rowspan="4" style="width: 103.087px; border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-left: 1pt solid rgb(31, 73, 125); border-image: initial; border-top: none; background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 428.889px;" width="25"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black;">Отчёты</span>

</td><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 93.3333px;" width="180">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Просмотр отчётов SLA, паспортов неисправности, плановых работ, исключений</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 93.3333px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Все</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 93.3333px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Все</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 93.3333px;" width="95"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Все</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 93.3333px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Своего контрагента, его дочерних контрагентов</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 93.3333px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Своего контрагента, его дочерних контрагентов, этого контракта</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 93.3333px;" width="85"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 93.3333px;" width="76"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Этого контракта</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 93.3333px;" width="71"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Своего контрагента</span>

</td></tr><tr style="height: 130.37px;"><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 130.37px;" width="180">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Приостановка и продолжение паспортов неисправности, создание плановых работ и исключений</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 130.37px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 130.37px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 130.37px;" width="95"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Все</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 130.37px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Своего контрагента, его дочерних контрагентов</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 130.37px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Своего контрагента, его дочерних контрагентов, этого контракта</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 130.37px;" width="85"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 130.37px;" width="76"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 130.37px;" width="71"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td></tr><tr style="height: 93.3333px;"><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 93.3333px;" width="180">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Загрузка шаблонов, формирование и публикация отчётов </span><span lang="EN-US" style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US;">SLA</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 93.3333px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 93.3333px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 93.3333px;" width="95"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 93.3333px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Своего контрагента, его дочерних контрагентов</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 93.3333px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Своего контрагента, его дочерних контрагентов, этого контракта</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 93.3333px;" width="85"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 93.3333px;" width="76"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 93.3333px;" width="71"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td></tr><tr style="height: 111.852px;"><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 111.852px;" width="180">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Перерасчёт отчётов </span><span lang="EN-US" style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US;">SLA</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 111.852px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 111.852px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 111.852px;" width="95"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Да</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 111.852px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Своего контрагента, его дочерних контрагентов, только при наличии изменений по исключениям</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 111.852px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Своего контрагента, его дочерних контрагентов, этого контракта только при наличии изменений по исключениям</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 111.852px;" width="85"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 111.852px;" width="76"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: rgb(252, 213, 180); padding: 0cm 5.4pt; height: 111.852px;" width="71"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td></tr><tr style="break-inside: avoid; height: 65.0579px;"><td nowrap="nowrap" style="width: 103.087px; border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-left: 1pt solid rgb(31, 73, 125); border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 65.0579px;" width="25"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black;">Аналитика</span>

</td><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 65.0579px;" width="180">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Текущие показатели и виджеты</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 65.0579px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Все</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 65.0579px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Все</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 65.0579px;" width="95"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Все</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 65.0579px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Своего контрагента, его дочерних контрагентов</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 65.0579px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Своего контрагента, его дочерних контрагентов</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 65.0579px;" width="85"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 65.0579px;" width="76"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Этого контракта</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 65.0579px;" width="71"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Своего контрагента</span>

</td></tr><tr style="break-inside: avoid; height: 64.2477px;"><td nowrap="nowrap" style="width: 103.087px; border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-left: 1pt solid rgb(31, 73, 125); border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 64.2477px;" width="25"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black;">Администрирование</span>

</td><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 64.2477px;" width="180">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Доступ к разделу «Администрирование»</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 64.2477px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Да</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 64.2477px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Да</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 64.2477px;" width="95"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Да</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 64.2477px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 64.2477px;" width="113"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 64.2477px;" width="85"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 64.2477px;" width="76"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 64.2477px;" width="71"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет</span>

</td></tr><tr style="height: 74.8148px;"><td style="width: 103.087px; border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-left: 1pt solid rgb(31, 73, 125); border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black;">Топология сети</span>

</td><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Доступ к разделу «Топология сети»</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Нет доступа</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Доступ к топологии контрагента</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Полный доступ к топологии контрагента и дочерних</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Доступ к топологии контрагента</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Доступ к топологии контракта</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет доступа</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Доступ к топологии контракта</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Доступ к топологии контрагента</span>

</td></tr><tr style="height: 93.3333px;"><td style="width: 103.087px; border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-left: 1pt solid rgb(31, 73, 125); border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 93.3333px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black;">  
</span>

</td><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 93.3333px;">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Просмотр объектов топологии</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 93.3333px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Нет доступа</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 93.3333px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Просмотр объектов контрагента</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 93.3333px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Полный доступ ко всем объектам инфраструктуры</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 93.3333px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Просмотр объектов контрагента</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 93.3333px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Просмотр объектов контракта</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 93.3333px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченный просмотр только объектов контракта</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 93.3333px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Просмотр объектов контракта</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 93.3333px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Просмотр объектов контрагента</span>

</td></tr><tr style="height: 56.2963px;"><td style="width: 103.087px; border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-left: 1pt solid rgb(31, 73, 125); border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black;">  
</span>

</td><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 56.2963px;">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Масштабирование и фильтрация</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Нет доступа</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Базовое масштабирование и фильтрация</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Полный доступ к масштабированию и фильтрации</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Масштабирование и фильтрация</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Базовое масштабирование</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет доступа</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Базовое масштабирование</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Базовое масштабирование</span>

</td></tr><tr style="height: 56.2963px;"><td style="width: 103.087px; border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-left: 1pt solid rgb(31, 73, 125); border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black;">  
</span>

</td><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 56.2963px;">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Добавление и удаление объектов</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Нет доступа</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Ограниченное добавление в контрагента</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Полный доступ к добавлению и удалению объектов</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченное добавление</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Добавление объектов по контракту</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет доступа</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченное добавление</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченное добавление</span>

</td></tr><tr style="height: 74.8148px;"><td style="width: 103.087px; border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-left: 1pt solid rgb(31, 73, 125); border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black;">  
</span>

</td><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Редактирование и перемещение объектов</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Нет доступа</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Ограниченное редактирование</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Полный доступ к редактированию и перемещению</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченное редактирование</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченное редактирование</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет доступа</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченное редактирование</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченное редактирование</span>

</td></tr><tr style="height: 74.8148px;"><td style="width: 103.087px; border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-left: 1pt solid rgb(31, 73, 125); border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black;">  
</span>

</td><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Сохранение топологии</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Нет доступа</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Ручное сохранение</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Выбор между ручным и автоматическим режимом</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченное сохранение</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченное сохранение</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет доступа</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченное сохранение</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченное сохранение</span>

</td></tr><tr style="height: 56.2963px;"><td style="width: 103.087px; border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-left: 1pt solid rgb(31, 73, 125); border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black;">  
</span>

</td><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 56.2963px;">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Настройки топологии</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Нет доступа</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Ограниченный доступ к настройкам</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Полный доступ к настройкам топологии</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченные настройки</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченные настройки</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет доступа</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченные настройки</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 56.2963px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченные настройки</span>

</td></tr><tr style="height: 37.7778px;"><td style="width: 103.087px; border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-left: 1pt solid rgb(31, 73, 125); border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 37.7778px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black;">  
</span>

</td><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 37.7778px;">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Поиск объектов в топологии</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 37.7778px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Нет доступа</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 37.7778px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Поиск по объектам контрагента</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 37.7778px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Полный доступ к поиску по объектам</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 37.7778px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Поиск по объектам контрагента</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 37.7778px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Поиск по объектам контракта</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 37.7778px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет доступа</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 37.7778px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Поиск по объектам контракта</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 37.7778px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Поиск по объектам контрагента</span>

</td></tr><tr style="height: 74.8148px;"><td style="width: 103.087px; border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-left: 1pt solid rgb(31, 73, 125); border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black;">  
</span>

</td><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Управление связями и каналами</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Нет доступа</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Ограниченное управление связями</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Полный доступ к созданию и редактированию связей и каналов</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Управление связями в пределах контракта</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченное управление</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет доступа</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченное управление</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченное управление</span>

</td></tr><tr style="height: 74.8148px;"><td style="width: 103.087px; border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-left: 1pt solid rgb(31, 73, 125); border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black;">  
</span>

</td><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Создание и редактирование групп объектов</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Нет доступа</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Ограниченное создание групп</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Полный доступ к созданию и редактированию групп объектов</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченное создание групп</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Создание групп по контракту</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет доступа</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченное создание групп</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченное создание групп</span>

</td></tr><tr style="height: 74.8148px;"><td style="width: 103.087px; border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-left: 1pt solid rgb(31, 73, 125); border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black;">  
</span>

</td><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Просмотр и управление дочерними контрагентами</span>**

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Нет доступа</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Доступ к дочерним контрагентам</span>

</td><td style="width: 106.837px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: windowtext;">Полный доступ к дочерним контрагентам</span>

</td><td style="width: 113.526px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Доступ к дочерним контрагентам</span>

</td><td style="width: 113.538px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченный доступ к дочерним контрагентам</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Нет доступа</span>

</td><td style="width: 74.9731px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченный доступ</span>

</td><td style="width: 75.0657px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 74.8148px;"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Ограниченный доступ</span>

</td></tr><tr style="height: 57.9977px;"><td nowrap="nowrap" style="width: 103.087px; border-right: 1pt solid rgb(31, 73, 125); border-bottom: 1pt solid rgb(31, 73, 125); border-left: 1pt solid rgb(31, 73, 125); border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 57.9977px;" width="25"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black;"> </span>

</td><td style="width: 100.587px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 57.9977px;" width="180">**<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman';">Специальные функции</span>**

</td><td colspan="3" style="width: 320.511px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 57.9977px;" width="321"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Может создавать пользователей с любым набором ролей. Может сбрасывать пароли всех пользователей, кроме системных администраторов, изменять владельца всех объектов</span>

</td><td colspan="2" style="width: 227.064px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 57.9977px;" width="227"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;">Создание контрактов и объектов инфраструктуры</span>

</td><td colspan="3" style="width: 225.012px; border-top: none; border-left: none; border-bottom: 1pt solid rgb(31, 73, 125); border-right: 1pt solid rgb(31, 73, 125); background: white; padding: 0cm 5.4pt; height: 57.9977px;" width="231"><span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;"> </span>

<span style="font-size: 7.0pt; mso-bidi-font-size: 9.0pt; font-family: 'Calibri',sans-serif; mso-bidi-font-family: 'Times New Roman'; color: black; mso-color-alt: windowtext;"> </span>

</td></tr></tbody></table>

</div><div align="center" id="bkmrk-"></div>## Объединение ролей пользователя

Пользователю можно назначить несколько ролей одновременно.  
Совмещение двух ролей «Системный администратор» и «Оператор SLA» даёт пользователю дополнительные возможности:

- создание контрактов, в которых можно выбрать любых контрагентов и любые сервисы, которые есть в системе;
- создание плановых работ и исключений, в которые можно включить любые сервисы в системе;
- редактирование всех объектов инфраструктуры в системе для любого контрагента или контракта.

При этом появляются ограничения:

- пользователь может быть прикреплён только к одному контрагенту (обусловлено наличием роли «Оператор SLA»);
- пользователь может создавать объекты инфраструктуры только для того контрагента, к которому он прикреплён

# Редактирование владельцев объектов

В процессе реорганизации структуры предприятия, изменения топологии сети и других случаях может появиться необходимость в редактировании владельца объекта (рисунок 63). Эта функция доступна только пользователям с ролью «Системный администратор» и пользователям с объединённой ролью «Системный администратор» + «Оператор SLA». Следует отметить, что редактирование владельцев объектов инфраструктуры должно применяться только в исключительных случаях. Для пользователя «Оператор SLA» поле «Владелец» отображается в режиме чтения.

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2023-12/scaled-1680-/Xu4image.png)](https://wiki.wellink.ru/uploads/images/gallery/2023-12/Xu4image.png)

Рис. 63 Редактирование поля «Владелец» на странице редактирования сервиса

# 7. РЕЗЕРВНОЕ КОПИРОВАНИЕ И ВОССТАНОВЛЕНИЕ

Резервное копирование системы wiSLA осуществляется путём регулярного запуска исполняемого файла при помощи cron — планировщика задач в UNIX-подобных операционных системах. Интерфейс для настройки резервного копирования представлен в средстве установки, управления и конфигурации системы Wisla.

**Система wiSLA использует две базы данных:**

- **HBase -** для хранения основных данных
- **PostgreSQL** — для служебных данных.

<p class="callout warning">Перед любыми операциями восстановления обязательно создайте новую полную резервную копию текущего состояния системы.</p>

В средствах установки, управления и конфигурации системы присутствует ряд возможностей по резервному копированию (backup) и восстановлению резервных копий (Рис.1)

[![image_2026-01-23_13-57-32.png](https://wiki.wellink.ru/uploads/images/gallery/2026-01/scaled-1680-/image-2026-01-23-13-57-32.png)](https://wiki.wellink.ru/uploads/images/gallery/2026-01/image-2026-01-23-13-57-32.png)

*(Рис.1.) Изображения меню резервного копирования из средства установки, управления и конфигурации системы*

## **Восстановление базы данных HBase**

**Backup HBase DB** (Создание резервной копии) - при выборе данного пункта будет создан файл резервной копии **backup-файл hb\_2024-01-09.tar.gz** - в нем будут содержится данные из NoSQL СУБД HBase.

**Restore HBase DB: clear and insert new tables (Полная замена данных)** - при выборе данного пункта система запустит процесс очистки таблиц в NoSQL СУБД HBase. После завершения очистки система автоматически приступит к загрузке данных из резервной копии (backup-файла).  
  
*Пример работы пункта **Restore HBase DB: clear and insert new tables:***

- *Выбираем пункт **Restore HBase DB: clear and insert new tables***
- *После выбора пункта **Restore HBase DB: clear and insert new tables** система выведет предупреждение (WARNING) с вопросом "All metric table will be renamed - Переименовать все метрики в таблицах" и запросит выполнить действие "YES" или "NO" (Рис.2)*

<p class="callout info">При выборе пункта "NO" вы вернетесь в меню резервного копирования.</p>

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2026-01/scaled-1680-/jetimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2026-01/jetimage.png)

*Рис.2 Предупреждение "All metric table will be renamed - Переименовать все метрики в таблицах"*

- *По окончанию процесса переименования таблиц в NoSQL СУБД HBase система запросит указать путь до файла резервной копии (backup-файла). (Рис.3)*

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2026-01/scaled-1680-/Wbwimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2026-01/Wbwimage.png)

*Рис.3 Окно ввода пути до файла резервной копии*

- *После заполнения поля путь до файла резервной копии (backup-файла) дождитесь окончания процесса восстановления.*

**Clear HBase DB tables (очистка данных)** - при выборе данного пункта будет произведена полная очистка таблиц *в NoSQL СУБД HBase.*

## **Восстановление базы данных PostgreSQL**

**Backup Postgres DB (Создание резервной копии)** - при выборе данного пункта будет создан файл резервной копии базы данных wisla в домашнем каталоге **wisla.**  
**wisla\_backup\_2024\_01\_09.backup** - в нем будут содержится данные из СУБД PostgreSQL.

**Restore Postgres DB(Полное восстановление) -** при выборе данного пункта будет произведена процедура полного восстановления резервной копии данных в PostgreSQL.

<p class="callout warning">Перед выполнением пункта **"Restore Postgres DB (Полное восстановление)"** необходимо убедиться, что в целевой базе данных wisla в СУБД PostgreSQL нет данных. Если база wisla уже существует и содержит данные, их необходимо **УДАЛИТЬ** перед началом восстановления. В противном случае процесс может завершиться ошибкой или привести к повреждению данных.</p>

  
***Удаление базы данных wisla в СУБД PostgreSql перед восстановлением.***

- *Переходим в терминал ОС Linux и переходим под пользователя wisla используя команду:* ```bash
    sudo su - wisla
    ```
- *После перехода под пользователя wisla необходимо подключится к СУБД PostgreSQL используя команду:*  
    ```bash
    LD_LIBRARY_PATH="/opt/wisla5/postgresql/current/lib" "/opt/wisla5/postgresql/current/bin/psql" postgres
    ```
- *Попав в терминал СУБД PostgreSQL необходимо выполнить команду удаления базы данных wisla:*  
    ```bash
    DROP DATABASE IF EXISTS wisla;
    ```
- *После успешного удаления базы данных wisla необходимо создать базу данных снова, используя команду:*  
    ```bash
    CREATE DATABASE wisla;
    ```
- *Восстановить базу данных wisla используя пункт **Restore Postgres DB(Полное восстановление)** из средства установки, управления и конфигурации системы. (Рис.4)  
    [![image_2026-01-23_13-57-32.png](https://wiki.wellink.ru/uploads/images/gallery/2026-01/scaled-1680-/image-2026-01-23-13-57-32.png)](https://wiki.wellink.ru/uploads/images/gallery/2026-01/image-2026-01-23-13-57-32.png)*

*Рис. 4 Изображения меню резервного копирования из средства установки, управления и конфигурации системы*

- *Выполните патч базы данных (обязательно!): После успешного восстановления перейдите в подменю Maintenance / Postgres и выполните пункт patch database.(Рис.5)* [![image_2026-01-23_16-30-30.png](https://wiki.wellink.ru/uploads/images/gallery/2026-01/scaled-1680-/Mvcimage-2026-01-23-16-30-30.png)](https://wiki.wellink.ru/uploads/images/gallery/2026-01/Mvcimage-2026-01-23-16-30-30.png)*Рис 5. подменю Maintenance / Postgres*

## **Резервное копирование конфигурации средства установки, управления и конфигурации системы.**

**Backup installation info** - при выборе данного пункта будет создан файл резервной копии конфигураций приложения wisla в домашнем каталоге wisla.

В архив попадают ключевые конфигурационные файлы из **/opt/wisla5/current\_version/**:

- CONFIG
- APPLICATIONS
- TOPOLOGY

<p class="callout warning">Не рекомендуется изменять вручную эти параметры, так как не всегда установщик сможет их применить, особенно это касается файла TOPOLOGY - топологию можно только поменять при полной переустановки.</p>

## **Автоматическое резервное копирование по расписанию.**

**[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2026-01/scaled-1680-/iq2image.png)](https://wiki.wellink.ru/uploads/images/gallery/2026-01/iq2image.png)**

*Рис 6. Изображения меню резервного копирования из средства установки, управления и конфигурации системы*

**Autobackup configuration** - при выборе данного пункта появится окно настройки автоматического резервного копирования.

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2026-01/scaled-1680-/HNSimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2026-01/HNSimage.png)

*Рис 7. Окно настройки автоматического резервного копирования*

В данном пункте меню необходимо заполнить следующие пункты:

- **Backup destination** - указать место расположения для файлов резервных копий.
- **Server for backup files** - указать Hostname сервера на котором будут располагаться резервные копии.
- **User login at the backup server** - указать имя пользователя на сервере где будут располагаться резервные копии.
- **Make full Hbase DB backuo** - установить флаг делать полные резервные копии NoSQL Hbase.

По окончанию заполнения нажать кнопку "ОК" для подтверждения введенных данных и перейти в новое окно с установкой времени выполнения автоматического резервного копирования.

![image.png](https://wiki.wellink.ru/uploads/images/gallery/2026-01/scaled-1680-/VR5image.png)*Рис 8. Окно с установкой времени выполнения автоматического резервного копирования*

По окончанию установки времени нажать кнопку "ОК" и система начнет применять настройки автоматического резервного копирования. Как только настройки будут применены система вернет вас в меню меню резервного копирования из средства установки, управления и конфигурации системы.   
Теперь резервные копии будут сниматься в автоматическом режиме в установленное вами время и сохраняться на указанном сервере.

# 8. ОТКАЗОУСТОЙЧИВЫЙ КЛАСТЕР

Раздел «Отказоустойчивый кластер» включает следующие компоненты:  
«Необходимое окружение и библиотеки»,  
«Подготовительные этапы к установке кластера»,  
«Действия в программе установке wiSLA»,  
«Настройка скриптов для учёта кратковременных обрывов связи»,  
«Действия по восстановлению работы кластера при выходе из строя одного из узлов ЦОД1»,  
«Действия по восстановлению работы кластера при выходе из строя одного из узлов ЦОД2»,  
«Действия по восстановлению работы кластера при выходе из строя третьей точки опоры».

# Необходимое окружение и библиотеки

Необходимые пакеты для установщика на oracle linux 8

```bash
autogen-libopts-5.18.12-8.el8.x86_64.rpm           ntpdate-4.2.6p5-29.el7.centos.2.x86_64.rpm
compat-openssl10-1.0.2o-4.el8.x86_64.rpm           pv-1.6.6-7.el8.x86_64.rpm
dialog-1.3-13.20171209.el8.x86_64.rpm              python3-bcrypt-3.1.6-2.el8.1.x86_64.rpm
glibc-langpack-ru-2.28-225.0.4.el8_8.6.x86_64.rpm  python3-paramiko-2.12.0-1.el8.noarch.rpm
libsodium-1.0.18-2.el8.x86_64.rpm                  python3-pynacl-1.3.0-5.el8.x86_64.rpm
ntp-4.2.6p5-29.el7.centos.2.x86_64.rpm             uuid-1.6.2-43.el8.x86_64.rpm
```

- libnsl-2.28-225.0.4.el8\_8.6.x86\_64.rpm - пакет который ставился на 1-й и 4-й сервера
- compat-openssl10-1.0.2o-4.el8.x86\_64.rpm - для pgpool
- uuid-1.6.2-43.el8.x86\_64.rpm glibc-langpack-ru-2.28-225.0.4.el8\_8.6.x86\_64.rpm -Postgresql требует пакеты glibc-langpack-ru и uuid

На узлах 2,5(hadoop) должна быть организована "общая папка" , при создании файла в примонтированном gluster на одном узле, он должен появляться на другом

Скрипт для чистки всего(кроме pgpool), следует запускать перед установкой и после удаления из установщика.

Установщик не чистит папки в home директории. И установщик может не убрать процессы java, postgres, pgpool, если возникают проблемы при установке, запуске, остановки - проверить наличие процессов

```bash
for i in $(seq 1 7);
do
ssh 0001wislatest0$i sudo killall java
ssh 0001wislatest0$i sudo killall postgres 
ssh 0001wislatest0$i 'rm -rf /opt/wisla5/* /home/wisla/{hadoop,zookeeper,hbase,postgresql}'
done
ssh 0001wislatest02 rm -rf /mnt/glusterVol/* #где glusterVol - куда примонтировали gluster.
```

<div id="bkmrk-ssh-0001wislatest02-"></div><div id="bkmrk-%D0%9D%D0%B0-%D1%81%D0%B0%D0%BC%D0%BE%D0%BC-%D0%B4%D0%B5%D0%BB%D0%B5-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE-1"><div id="bkmrk-%D0%9D%D0%B0-%D1%81%D0%B0%D0%BC%D0%BE%D0%BC-%D0%B4%D0%B5%D0%BB%D0%B5-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE-2">На самом деле установщик при установке видит что папки в home есть и на glusterVol есть папка hadoop, установщик предлагает на каждую папку запрос об удалении. Однако лучшим вариантом будет "<span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400;">почистить</span> скриптом", т.к. это упростит работу.</div></div>

# Подготовительные этапы к установке кластера

### Преимущества кластера

Настройка отказоустойчивого кластера wiSLA позволяет решить 2 задачи:

- в случае отказа одного из ЦОД система сохраняет работоспособность;
- в кластере работает балансировка нагрузки, что позволяет более эффективно использовать  
    аппаратные ресурсы серверов.

  
В примере будет показана установка системы wiSLA на отказоустойчивый контур, который включает в себя семь серверов, распределённых между двумя ЦОД (по три в каждом) и одним дополнительным сервером – «третьей точкой опоры» (см. рисунок 66). Для взаимодействия между серверами выделена подсеть «межсерверного взаимодействия».

[![zzz.png](https://wiki.wellink.ru/uploads/images/gallery/2024-01/scaled-1680-/zzz.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-01/zzz.png)

Рис. 66 Логическая группировка серверов в отказоустойчивом контуре wiSLA

Дополнительно могут быть развернуты wisla contactor portals (но не на 3 и 6 ноде, где уже есть портал оператора)

Отказоустойчивый контур должен состоять минимум из двух блоков (ЦОД), которые включают в себя сервера с основными компонентами, и дополнительного сервера (третей точки опоры), с помощью которого контролируется доступность основных ЦОД и целостность кластера. Всего для отказоустойчивого контура должно быть выделено не менее пяти отдельных серверов. Желательно, чтобы аппаратная конфигурация серверов была одинаковой. В этом случае можно производить установку и обновление системы с помощью программы установки без ручного изменения параметров распределения оперативной памяти по компонентам.

В таблице приведён пример настройки отказоустойчивого контура, который содержит два ЦОД (по три сервера на каждом) и один дополнительный сервер (третья точки опоры).

Таблица 8 – Топология кластера (пример).

<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" id="bkmrk-%D0%A6%D0%9E%D0%94-%2F-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80-%D0%98%D0%BC%D1%8F-%D1%81%D0%B5%D1%80" style="border-collapse: collapse; width: 100%; border-spacing: 0px; height: 697.708px;"><tbody><tr style="height: 23.7292px;"><td style="width: 28.23%; border: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="168">**ЦОД / сервер**

</td><td style="width: 27.3473%; border-top: 1pt solid black; border-right: 1pt solid black; border-bottom: 1pt solid black; border-image: initial; border-left: none; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="217">**Имя сервера (<span lang="EN-US" style="mso-ansi-language: EN-US;">hostname</span>) / IP-адрес**

</td><td style="width: 44.4117%; border-top: 1pt solid black; border-right: 1pt solid black; border-bottom: 1pt solid black; border-image: initial; border-left: none; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="253">**Компоненты**

</td></tr><tr style="height: 122.292px;"><td rowspan="3" style="width: 28.23%; border-right: 1pt solid black; border-bottom: 1pt solid black; border-left: 1pt solid black; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 321.125px;" valign="top" width="168">ЦОД1

</td><td style="width: 27.3473%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 122.292px;" valign="top" width="217"><span lang="EN-US" style="mso-ansi-language: EN-US;">wislaserver</span>01 / 192.168.1.101

</td><td style="width: 44.4117%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 122.292px;" valign="top" width="253"><span lang="EN-US" style="mso-ansi-language: EN-US;">PostgreSQL: Master</span>

<span lang="EN-US" style="mso-ansi-language: EN-US;">Pgpool</span>

<span lang="EN-US" style="mso-ansi-language: EN-US;">HBase: HRegionServer</span>

<span lang="EN-US" style="mso-ansi-language: EN-US;">Hadoop: DataNode</span>

<span lang="EN-US" style="mso-ansi-language: EN-US;">Zookeeper</span>

</td></tr><tr style="height: 76.5px;"><td style="width: 27.3473%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 76.5px;" valign="top" width="217"><span lang="EN-US" style="mso-ansi-language: EN-US;">wislaserver0</span>2<span lang="EN-US" style="mso-ansi-language: EN-US;"> / 192.168.1.102</span>

</td><td style="width: 44.4117%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 76.5px;" valign="top" width="253"><span lang="EN-US" style="mso-ansi-language: EN-US;">HBase: HMaster, HRegionServer</span>

<span lang="EN-US" style="mso-ansi-language: EN-US;">Hadoop: NameNode, DataNode</span>

<span lang="EN-US" style="mso-ansi-language: EN-US;">Zookeeper</span>

</td></tr><tr style="height: 122.333px;"><td style="width: 27.3473%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 122.333px;" valign="top" width="217"><span lang="EN-US" style="mso-ansi-language: EN-US;">wislaserver03 / 192.168.1.103</span>

</td><td style="width: 44.4117%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 122.333px;" valign="top" width="253"><span lang="EN-US" style="mso-ansi-language: EN-US;">APP-server</span>

<span lang="EN-US" style="mso-ansi-language: EN-US;">WEB-server</span>

<span lang="EN-US" style="mso-ansi-language: EN-US;">HBase: HRegionServer</span>

<span lang="EN-US" style="mso-ansi-language: EN-US;">Hadoop: DataNode</span>

<span lang="EN-US" style="mso-ansi-language: EN-US;">Zookeeper</span>

</td></tr><tr style="height: 127.292px;"><td rowspan="3" style="width: 28.23%; border-right: 1pt solid black; border-bottom: 1pt solid black; border-left: 1pt solid black; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 322.125px;" valign="top" width="168">ЦОД2

</td><td style="width: 27.3473%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 127.292px;" valign="top" width="217"><span lang="EN-US" style="mso-ansi-language: EN-US;">wislaserver04 / 192.168.1.104</span>

</td><td style="width: 44.4117%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 127.292px;" valign="top" width="253"><span lang="EN-US" style="mso-ansi-language: EN-US;">PostgreSQL: Slave</span>

<span lang="EN-US" style="mso-ansi-language: EN-US;">Pgpool</span>

<span lang="EN-US" style="mso-ansi-language: EN-US;">HBase: HRegionServer</span>

<span lang="EN-US" style="mso-ansi-language: EN-US;">Hadoop: DataNode</span>

<span lang="EN-US" style="mso-ansi-language: EN-US;">Zookeeper</span>

</td></tr><tr style="height: 74.5px;"><td style="width: 27.3473%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 74.5px;" valign="top" width="217"><span lang="EN-US" style="mso-ansi-language: EN-US;">wislaserver05 / 192.168.1.105</span>

</td><td style="width: 44.4117%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 74.5px;" valign="top" width="253"><span lang="EN-US" style="mso-ansi-language: EN-US;">HBase: HMaster, HRegionServer</span>

<span lang="EN-US" style="mso-ansi-language: EN-US;">Hadoop: NameNode, DataNode</span>

<span lang="EN-US" style="mso-ansi-language: EN-US;">Zookeeper</span>

</td></tr><tr style="height: 120.333px;"><td style="width: 27.3473%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 120.333px;" valign="top" width="217"><span lang="EN-US" style="mso-ansi-language: EN-US;">wislaserver06 / 192.168.1.106</span>

</td><td style="width: 44.4117%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 120.333px;" valign="top" width="253"><span lang="EN-US" style="mso-ansi-language: EN-US;">APP-server</span>

<span lang="EN-US" style="mso-ansi-language: EN-US;">WEB-server</span>

<span lang="EN-US" style="mso-ansi-language: EN-US;">HBase: HRegionServer</span>

<span lang="EN-US" style="mso-ansi-language: EN-US;">Hadoop: DataNode</span>

<span lang="EN-US" style="mso-ansi-language: EN-US;">Zookeeper</span>

</td></tr><tr style="height: 30.7292px;"><td style="width: 28.23%; border-right: 1pt solid black; border-bottom: 1pt solid black; border-left: 1pt solid black; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 30.7292px;" valign="top" width="168">Дополнительный сервер

</td><td style="width: 27.3473%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 30.7292px;" valign="top" width="217"><span lang="EN-US" style="mso-ansi-language: EN-US;">wislaserver07 / 192.168.1.107</span>

</td><td style="width: 44.4117%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 30.7292px;" valign="top" width="253"><span lang="EN-US" style="mso-ansi-language: EN-US;">Zookeeper</span>, wiSLA-Installer

</td></tr></tbody></table>

Предварительно для каждого сервера контура требуется базовая настройка, которая описана в разделе «Подготовка операционной системы к запуску программы установки». Для серверов с Hadoop NameNode (wislaserver02 и wislaserver05) потребуется дополнительно примонтировать блочное устройство, объем диска на обоих серверах должен быть одинаковым. Для серверов с Pgpool (wislaserver01 и wislaserver04) должен быть выделен IP-адрес в подсети межсерверного взаимодействия, который будет использовать Pgpool. Далее в примерах настройки используется «192.168.1.110».

На серверах с Pgpool (wislaserver01 и wislaserver04) также требуется убедиться в отсутствии alias-интерфейса

 «eth0:10», где eth0 – корневой интерфейс, на котором настроена подсеть межсерверного взаимодействия, фактически может отличаться.

### Настройка беспарольного доступа по SSH для межсерверного взаимодействия

Для корректной установки системы wiSLA и взаимодействия серверов контура должен быть организован беспарольный доступ по SSH под пользователем wisla по принципу «каждый с каждым». Также требуется беспарольный доступ под пользователем root между серверами с Pgpool и третей точкой опоры. При этом для доступа с сервера на сервер используется hostname. Для этого требуется выполнить следующие шаги:

<p class="callout warning">!Внимание, возможно требуется после копирования длинных команд - заменять пробелы на пробелы</p>

<p class="callout warning">!Внимание, при изменении топологии, возможно корректирование предлагаемых комманд</p>

1\. На 7-й сервере добавить хосты в /etc/hosts

```bash
mkdir installDir; pushd installDir
host_prefix=0001wislatest0
echo 192.168.1.101 "$host_prefix"1 >> hostsForALL
echo 192.168.1.102 "$host_prefix"2>> hostsForALL
echo 192.168.1.103 "$host_prefix"3>> hostsForALL
echo 192.168.1.104 "$host_prefix"4>> hostsForALL
echo 192.168.1.105 "$host_prefix"5>> hostsForALL
echo 192.168.1.106 "$host_prefix"6>> hostsForALL
echo 192.168.1.107 "$host_prefix"7>> hostsForALL
cat hostsForALL | sudo tee -a /etc/hosts
hostnames="0001wislatest01 0001wislatest02 0001wislatest03 0001wislatest04 0001wislatest05 0001wislatest06 0001wislatest07"
hostnames_1_6="0001wislatest01 0001wislatest02 0001wislatest03 0001wislatest04 0001wislatest05 0001wislatest06"
hostnames_1_4_7="0001wislatest01 0001wislatest04 0001wislatest07"

```

2\. На каждом сервере контура под пользователем wisla выполнить генерацию ключей, пароль оставить пустым (можно вообще 1 ключ создать и скопировать его везде):

```bash
su -l wisla
cd /home/wisla
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa # или ssh-keygen -t rsa
```

Если не известен пароль, то необходимо:

```bash
зайти на хост на который нужно подключиться 
скопировать содержимое ~/.ssh/*.pub #ssh-keygen -t rsa если нет файла
добавить в конец файла ~/.ssh/authorized_keys
```

<div id="bkmrk--3"><div id="bkmrk-b%29%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D1%82%D0%B5-%D0%B2-%D0%BA%D0%BE%D0%BD%D0%B5%D1%86"></div></div>4\. Скопировать /etc/hosts на каждый хост

```bash
for i in $hostnames_1_6; do cat hostsForALL | ssh "$i" 'sudo tee -a /etc/hosts';done 
for i in $hostnames_1_6; do ssh "$i" "sudo hostnamectl set-hostname $i";done 
```

5\. С каждого сервера контура под пользователем wisla выполнить копирование ключа на все остальные сервера для пользователя wisla и для пользователя root для части серверов(На серверах с Pgpool и дополнительном сервере под пользователем wisla выполнить копирование ключа на другие сервера с Pgpool или дополнительный сервер для пользователя root):

```bash
host_keys="$(for i in $hostnames;do ssh \"$i\" 'cat /home/wisla/.ssh/*.pub'; done)"

for i in $hostnames;do echo "$host_keys" | ssh "$i" tee -a /home/wisla/.ssh/authorized_keys; done

host_keys="$(for i in $hostnames_1_4_7;do ssh "$i" 'cat /home/wisla/.ssh/*.pub'; done)"

for i in $hostnames_1_4_7;do echo "$host_keys"| ssh "$i" 'sudo mkdir -p /root/.ssh; sudo tee -a /root/.ssh/authorized_keys'; done
```

6\. Выполнить разовое подключение по SSH под пользователем wisla с каждого сервера на другие сервера, чтобы подтвердить добавление ключей удалённых серверов (по умолчанию отпечаток ключа будет храниться в файле /home/wisla/.ssh/known\_hosts). При этом на вопрос «Are you sure you want to continue connecting (yes/no)?» требуется отвечать «yes». При подключении пароль удалённого сервера запрашиваться не должен.

Выполнить команду на каждом сервере под пользователем wisla:

```bash
for i in $hostnames; do ssh "$i" exit; done
```

Выполнить команду на 1 4 7 серверах под пользователем wisla:

```bash
for i in $hostnames_1_4_7; do ssh root@"$i" exit; done
```

В некоторых случаях доступ по root из ssh невозможен: следует проверить файл /etc/security/access.conf(ROOT:ALL) и файл /etc/ssh/sshd\_config (PermitRootLogin yes)

### Установка GlusterFS

GlusterFS – распределённая, параллельная, линейно масштабируемая файловая система с возможностью защиты от сбоев. Предварительно на серверах wislaserver02 и wislaserver05 должны быть созданы lvm-разделы абсолютно одинакового размера. Далее в примере используется «/dev/sdb1», фактически название раздела может отличаться.

Действия по установке и настройке GlusterFS выполняются под пользователем root.

Для установки GlusterFS на серверах wislaserver02 и wislaserver05 требуется выполнить следующие шаги:  
1\. Загрузить установочные пакеты GlusterFS по ссылке ftp://ftp.wellink.ru/Deploies/Centos/cluster/glusterfs.tar.gz ;  
2\. Подключиться к серверу по SSH под пользователем root;  
3\. Перейти в каталог с архивом, распаковать архив, установить необходимые пакеты glusterfs, glusterfs-server, glusterfs-cli,:

```bash
tar zxvf glusterfs.tar.gz
yum install glusterfs-3.5.2-1.el6.x86_64.rpm glusterfs-api-3.5.2-1.el6.x86_64.rpm
glusterfs-cli-3.5.2-1.el6.x86_64.rpm glusterfs-fuse-3.5.2-1.el6.x86_64.rpm glusterfs-georeplication-3.5.2-1.el6.x86_64.rpm glusterfs-libs-3.5.2-1.el6.x86_64.rpm glusterfsserver-3.5.2-1.el6.x86_64.rpm
```

### Настройка GlusterFS

Для настройки работы GlusterFS требуется выполнить следующие шаги:

1\. Рекомендовано на серверах wislaserver02 и wislaserver05 отформатировать раздел для glusterfs в файловую систему xfs:

```bash
mkfs.xfs /dev/sdb1
```

2\. Смонтировать раздел, добавить в автозапуск и запустить glusterfs на wislaserver02 и wislaserver05:

```bash
mkdir -p /mnt/gluster && mount /dev/sdb1 /mnt/gluster && mkdir -p /mnt/gluster/brick
echo "/dev/sdb1 /mnt/gluster xfs defaults 0 0" >> /etc/fstab
systemctl start glusterd # /etc/init.d/glusterd start
```

3\. На сервере wislaserver02 выполнить команды:

```bash
gluster peer probe "$host_prefix"5
gluster volume create namenodevol rep 2 transport tcp "$host_prefix"2:/mnt/gluster/brick
"$host_prefix"5:/mnt/gluster/brick
gluster volume start namenodevol
mkdir /mnt/glusterVol; mount -t glusterfs "$host_prefix"2:/namenodevol /mnt/glusterVol/
chown wisla:wisla -R /mnt/glusterVol
```

4\. На сервере wislaserver05 выполнить команды:

```bash
mkdir /mnt/glusterVol; mount -t glusterfs "$host_prefix"5:/namenodevol /mnt/glusterVol/ 
chown wisla:wisla -R /mnt/glusterVol
```

Внимание, следует протестировать что файл созданный на одном узле в /mnt/glusterVol ,должен появиться в том же месте на другом узле

5\. На сервере wislaserver02 выполнить команды:

```bash
touch /mnt/glusterVol/test_file.txt
```

6\. На сервере wislaserver05 проверить наличие файла и затем файл можно удалить

```
ls /mnt/glusterVol/test_file.txt
rm -f /mnt/glusterVol/test_file.txt
```

# Действия в программе установки wiSLA

  
Шаги для установки wiSLA описаны в разделе «Работа с программой установки». Но есть ряд отличий в процессе, они будут приведены ниже.  
Программа установки предварительно должна быть скопирована на сервер wislaserver07 в домашний каталог пользователя wisla. Права на файл должны быть у пользователя wisla, и файл должен быть исполняемым. Далее требуется выполнить действия, которые перечислены в блоке «Перечень действий для установки wiSLA», с учётом отличий в настройках, которые описаны ниже:

После запуска установщика можно подложить файл топологии и конфигурации по привычному пути, но это "на свой страх и риск".

1\. Запуск программы установки.

2\. Запуск установки системы.

3\. Топология. Потребуется указать топологию, описанную выше в таблице 8:

```bash
Application servers: wislaserver03 wislaserver06
Operator Web servers: wislaserver03 wislaserver06
Contractor Web servers: wislaserver03 wislaserver06
Postgres main (single server): wislaserver01
Postgres slaves: wislaserver04
Pgpool servers: wislaserver01 wislaserver04
Zookeeper quorum: wislaserver01 wislaserver02 wislaserver03 wislaserver04 wislaserver05 wislaserver06
wislaserver07
Hadoop/HBase masters: wislaserver02 wislaserver05
Hadoop/HBase workers: wislaserver01 wislaserver02 wislaserver03 wislaserver04 wislaserver05 wislaserver06
```

4\. Ожидание инициализации модулей .

5\. Оценка параметров сервера и подбор оптимальных значений по распределению памяти.

Нужно учитывать, что программа установки делает оценку физических параметров того сервера, на котором была запущена. Поэтому, если аппаратная конфигурация серверов контура отличается, то следует рассчитать распределение памяти и вручную изменять предлагаемые настройки модулей системы по ходу установки.

6\. Выбор версии и архитектуры Java Runtime Environment.

7\. Настройка компонента Zookeper.

8\. Настройка компонента Hadoop:

```
Name directory: /mnt/glusterVol
Zookeeper quorum: wislaserver01:2181 wislaserver02:2181 wislaserver03:2181 wislaserver04:2181
wislaserver05:2181 wislaserver06:2181 wislaserver07:2181
Replication count: 4
```

Для настройки «Replication count» используется число, которое высчитывается по формуле:  
(HadoopWorkersCount / 2) + 1, где HadoopWorkersCount – количество серверов, заданное в топологии в строке «Hadoop/HBase workers».

Также стоит отметить, что путь hdfs://wisla. Надо в hosts прописать на 1,3,4,6 сервере 127.0.0.1 wisla. Что-то где-то прибито гвоздями и порт должен быть 8020. wisla:8020 или - wisla не имеет разницы, так как это порт по умолчанию.

9\. Настройка компонента HBase, стоит проверить путь к хадупу [hdfs://wisla](hdfs://wisla).

10\. Настройка компонента PostgreSQL (без изменений). Возможно стоит взять более широкую маску сети(/24) причем раз это сеть, можно адрес сети написать  
После шага 10 «Настройка компонента PostgreSQL» появится дополнительный шаг для конфигурирования Pgpool, на котором потребуется задать настройки:

```bash
Trust host or network: 192.168.1.0/24
Specifies the virtual IP address: 192.168.1.110
Specifies the netmask for virtual IP address: 255.255.255.0
Virtual interface: eth0
```

- Trust host or network – подсеть межсерверного взаимодействия.
- Specifies the virtual IP address – IP-адрес, который выделен для работы pgpool в подсети межсерверного взаимодействия.
- Specifies the netmask for virtual IP address – маска подсети межсерверного взаимодействия.
- Virtual interface – корневой интерфейс, на котором настроена подсеть межсерверного взаимодействия на серверах wislaserver01 и wislaserver04.

<p class="callout warning">Указываем сеть в которой работает СУЩЕСТВУЮЩИЙ интерфейс, и указываем IP который НЕ используется. Также указываем СУЩЕСТВУЮЩИЙ интерфейс. pgpool на него навесит ip (причем ip уже должен быть назначен на всех хостах которые подключены в сеть, куда смотрит интерфейс). возможно стоит взять более широкую маску сети(/24)</p>

<p class="callout warning">a) для корректной работы pgpool желателен отдельный сетевой интерфейс. К примеру он может быть вланом.   
b) pgpool назначает на интерфейс ip, а :10 это номер псевдонима.  
c) в сети, на которую смотрит интерфейс должны быть назначены ip в той же подсети.  
d) активный pgpool назначает на этот интерфейс ip.  
e) если вы обращаетесь к PostgreSQL то должны быть подключены к сети, в которой есть pgpool</p>

11\. Настройка компонента WildFly:

- app host for portal ... - пишем соответствующие ip для данных хостов

12\. Настройка топологии wiSLA.

13\. Настройки модуля сбора данных:

- wiProbe destination - указываем, куда будут программные или аппаратные зонды стучаться

14\. Настройки интеграции LDAP.

15\. Настройки дополнительных ресурсов wiSLA.

16\. Настройка рассылки уведомлений.

17\. Настройка оператора портала.

<p class="callout warning">Обращаем ваше внимание, если вы получаете доступ к порталу с помощью проброса портов или через прокси сервер, то вам необходимо отредактировать пункт HOST и в Whitelisted domains установить необходимые IP-адреса.</p>

18\. Подтверждение настроек.

19\. Автоматический запуск после установки.

20\. Реиндексация wildfly (не бд).

21\. Начало работы с порталом.

# Настройка скриптов для учёта кратковременных обрывов связи

Для настройки учёта кратковременных обрывов связи необходимо выполнить следующие шаги:

1. Предварительно следует создать каталог /opt/wisla5/scripts/ на серверах ЦОД1 и ЦОД2. Владельцем каталогов должен быть пользователь wisla. На серверах wislaserver03 и wislaserver06 эти каталоги будут созданы автоматически после установки wiSLA. Далее приведена команда для создания каталога:  
    ```bash
    mkdir -p /opt/wisla5/scripts
    ```
    
    Архив со скриптами можно загрузить по ссылке ftp://ftp.wellink.ru/Deploies/Centos/cluster/failover\_scripts.tar.gz, скопировать на любой из серверов кластера для пользователя wisla и распаковать с помощью команды:  
    ```bash
    tar zxvf failover_scripts.tar.gz
    ```
    
    Владельцем скриптов и конфигурационных файлов должен быть пользователь wisla.
2. На сервере wislaserver04 в каталоге /opt/wisla5/pgpool/current/sbin/ переименовать файл ifconfig на ifconfig1 с помощью команды:  
    ```bash
    sudo mv /opt/wisla5/pgpool/current/sbin/ifconfig /opt/wisla5/pgpool/current/sbin/ifconfig1
    ```
3. Скопировать скрипты на сервера контура.  
    Для копирования рекомендуется использовать консольную утилиту scp. Пример команды копирования:  
    ```bash
    scp TRUSTED_SERVERS wisla@wislaserver01:/opt/wisla5/scripts/
    ```
    
    В примере администратор находится в каталоге с распакованными скриптами, копирует файл  
    TRUSTED\_SERVERS на сервер wislaserver01 в каталог /opt/wisla5/scripts/.  
    <span style="color: rgb(35, 111, 161);">Таблица 7 – Размещение скриптов для учёта кратковременных обрывов связи.</span>  
    <table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; width: 100%; border-spacing: 0px; height: 522.042px;"><tbody><tr style="height: 23.7292px;"><td style="width: 26.8846%; border: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="160">**Сервер**
    
    </td><td style="width: 40.327%; border-top: 1pt solid black; border-right: 1pt solid black; border-bottom: 1pt solid black; border-image: initial; border-left: none; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="280">**Файл**
    
    </td><td style="width: 32.7751%; border-top: 1pt solid black; border-right: 1pt solid black; border-bottom: 1pt solid black; border-image: initial; border-left: none; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="198">**Путь**
    
    </td></tr><tr style="height: 23.7292px;"><td rowspan="6" style="width: 26.8846%; border-right: 1pt solid black; border-bottom: 1pt solid black; border-left: 1pt solid black; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 142.375px;" valign="top" width="160">wislaserver01
    
    </td><td style="width: 40.327%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="280"><span lang="EN-US" style="mso-ansi-language: EN-US;">TRUSTED\_SERVERS</span>
    
    </td><td style="width: 32.7751%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="198">/opt/wisla5/scripts/
    
    </td></tr><tr style="height: 23.7292px;"><td style="width: 40.327%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="280"><span lang="EN-US" style="mso-ansi-language: EN-US;">isolation\_test.sh</span>
    
    </td><td style="width: 32.7751%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="198">/opt/wisla5/scripts/
    
    </td></tr><tr style="height: 23.7292px;"><td style="width: 40.327%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="280">pgpool\_connect.sh
    
    </td><td style="width: 32.7751%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="198">/opt/wisla5/scripts/
    
    </td></tr><tr style="height: 23.7292px;"><td style="width: 40.327%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="280">DATA\_PROCESSING\_CENTER\_SERVERS
    
    </td><td style="width: 32.7751%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="198">/opt/wisla5/pgpool/current/
    
    </td></tr><tr style="height: 23.7292px;"><td style="width: 40.327%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="280">TRUSTED\_SERVERS
    
    </td><td style="width: 32.7751%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="198">/opt/wisla5/pgpool/current/
    
    </td></tr><tr style="height: 23.7292px;"><td style="width: 40.327%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="280">failover.sh
    
    </td><td style="width: 32.7751%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="198"><span lang="EN-US" style="mso-ansi-language: EN-US;">/opt/wisla</span>5<span lang="EN-US" style="mso-ansi-language: EN-US;">/pgpool/current/</span>
    
    </td></tr><tr style="height: 23.7292px;"><td rowspan="2" style="width: 26.8846%; border-right: 1pt solid black; border-bottom: 1pt solid black; border-left: 1pt solid black; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 47.4584px;" valign="top" width="160">wislaserver02
    
    </td><td style="width: 40.327%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="280"><span lang="EN-US" style="mso-ansi-language: EN-US;">TRUSTED\_SERVERS</span>
    
    </td><td style="width: 32.7751%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="198">/opt/wisla5/scripts/
    
    </td></tr><tr style="height: 23.7292px;"><td style="width: 40.327%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="280"><span lang="EN-US" style="mso-ansi-language: EN-US;">isolation\_test.sh</span>
    
    </td><td style="width: 32.7751%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="198">/opt/wisla5/scripts/
    
    </td></tr><tr style="height: 23.7292px;"><td rowspan="2" style="width: 26.8846%; border-right: 1pt solid black; border-bottom: 1pt solid black; border-left: 1pt solid black; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 47.4584px;" valign="top" width="160">wislaserver03
    
    </td><td style="width: 40.327%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="280"><span lang="EN-US" style="mso-ansi-language: EN-US;">TRUSTED\_SERVERS</span>
    
    </td><td style="width: 32.7751%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="198">/opt/wisla5/scripts/
    
    </td></tr><tr style="height: 23.7292px;"><td style="width: 40.327%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="280"><span lang="EN-US" style="mso-ansi-language: EN-US;">isolation\_test.sh</span>
    
    </td><td style="width: 32.7751%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="198">/opt/wisla5/scripts/
    
    </td></tr><tr style="height: 23.7292px;"><td rowspan="7" style="width: 26.8846%; border-right: 1pt solid black; border-bottom: 1pt solid black; border-left: 1pt solid black; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 166.104px;" valign="top" width="160">wislaserver04
    
    </td><td style="width: 40.327%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="280"><span lang="EN-US" style="mso-ansi-language: EN-US;">TRUSTED\_SERVERS</span>
    
    </td><td style="width: 32.7751%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="198">/opt/wisla5/scripts/
    
    </td></tr><tr style="height: 23.7292px;"><td style="width: 40.327%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="280"><span lang="EN-US" style="mso-ansi-language: EN-US;">isolation\_test.sh</span>
    
    </td><td style="width: 32.7751%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="198">/opt/wisla5/scripts/
    
    </td></tr><tr style="height: 23.7292px;"><td style="width: 40.327%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="280">pgpool\_connect.sh
    
    </td><td style="width: 32.7751%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="198">/opt/wisla5/scripts/
    
    </td></tr><tr style="height: 23.7292px;"><td style="width: 40.327%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="280">DATA\_PROCESSING\_CENTER\_SERVERS
    
    </td><td style="width: 32.7751%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="198">/opt/wisla5/pgpool/current/
    
    </td></tr><tr style="height: 23.7292px;"><td style="width: 40.327%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="280">TRUSTED\_SERVERS
    
    </td><td style="width: 32.7751%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="198">/opt/wisla5/pgpool/current/
    
    </td></tr><tr style="height: 23.7292px;"><td style="width: 40.327%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="280">failover.sh
    
    </td><td style="width: 32.7751%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="198">/opt/wisla5/pgpool/current/
    
    </td></tr><tr style="height: 23.7292px;"><td style="width: 40.327%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="280">ifconfig
    
    </td><td style="width: 32.7751%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="198"><span lang="EN-US" style="mso-ansi-language: EN-US;">/opt/wisla5/pgpool/current/sbin/</span>
    
    </td></tr><tr style="height: 23.7292px;"><td rowspan="2" style="width: 26.8846%; border-right: 1pt solid black; border-bottom: 1pt solid black; border-left: 1pt solid black; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 47.4584px;" valign="top" width="160">wislaserver05
    
    </td><td style="width: 40.327%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="280"><span lang="EN-US" style="mso-ansi-language: EN-US;">TRUSTED\_SERVERS</span>
    
    </td><td style="width: 32.7751%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="198">/opt/wisla5/scripts/
    
    </td></tr><tr style="height: 23.7292px;"><td style="width: 40.327%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="280"><span lang="EN-US" style="mso-ansi-language: EN-US;">isolation\_test.sh</span>
    
    </td><td style="width: 32.7751%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="198">/opt/wisla5/scripts/
    
    </td></tr><tr style="height: 23.7292px;"><td rowspan="2" style="width: 26.8846%; border-right: 1pt solid black; border-bottom: 1pt solid black; border-left: 1pt solid black; border-image: initial; border-top: none; padding: 0cm 5.4pt; height: 47.4584px;" valign="top" width="160">wislaserver06
    
    </td><td style="width: 40.327%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="280"><span lang="EN-US" style="mso-ansi-language: EN-US;">TRUSTED\_SERVERS</span>
    
    </td><td style="width: 32.7751%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="198">/opt/wisla5/scripts/
    
    </td></tr><tr style="height: 23.7292px;"><td style="width: 40.327%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="280"><span lang="EN-US" style="mso-ansi-language: EN-US;">isolation\_test.sh</span>
    
    </td><td style="width: 32.7751%; border-top: none; border-left: none; border-bottom: 1pt solid black; border-right: 1pt solid black; padding: 0cm 5.4pt; height: 23.7292px;" valign="top" width="198">/opt/wisla5/scripts/
    
    </td></tr></tbody></table>
4. Сконфигурировать файлы со списком серверов и скрипты. Файл должен завершаться пустой строкой. Редакторы vi (vim) и nano делают это автоматически при сохранении файла.  
    **wislaserver01:**  
    В файле /opt/wisla5/scripts/TRUSTED\_SERVERS указать список серверов ЦОД2 и третью точку опоры:  
    ```bash
    wislaserver04
    wislaserver05
    wislaserver06
    wislaserver07
    ```
    
    В файле /opt/wisla5/pgpool/current/DATA\_PROCESSING\_CENTER\_SERVERS указать список  
    серверов ЦОД1:  
    ```bash
    wislaserver01
    wislaserver02
    wislaserver03
    ```
    
    В файле /opt/wisla5/pgpool/current/TRUSTED\_SERVERS указать третью точку опоры:  
    ```bash
    wislaserver07
    ```
    
    В конфигурационном файле /opt/wisla5/pgpool/current/etc/pgpool.conf в опции trusted\_servers (по умолчанию строка 442) указать сервер с pgpool ЦОД2 и третью точку опоры:  
    ```bash
    trusted_servers = 'wislaserver04,wislaserver07'
    ```
    
    **wislaserver02:**  
    В файле /opt/wisla5/scripts/TRUSTED\_SERVERS указать список серверов ЦОД2 и третью точку опоры:  
    ```bash
    wislaserver04
    wislaserver05
    wislaserver06
    wislaserver07
    ```
    
    <div>**wislaserver03:**</div>В файле /opt/wisla5/scripts/TRUSTED\_SERVERS указать список серверов ЦОД2 и третью точку опоры:  
    ```bash
    wislaserver04
    wislaserver05
    wislaserver06
    wislaserver07
    ```
    
    **wislaserver04:**  
    В файле /opt/wisla5/scripts/TRUSTED\_SERVERS указать список серверов ЦОД1 и третью точку опоры:  
    ```bash
    wislaserver01
    wislaserver02
    wislaserver03
    wislaserver07
    ```
    
    В файле /opt/wisla5/pgpool/current/DATA\_PROCESSING\_CENTER\_SERVERS указать список серверов ЦОД2:  
    ```bash
    wislaserver04
    wislaserver05
    wislaserver06
    ```
    
    В файле /opt/wisla5/pgpool/current/TRUSTED\_SERVERS указать третью точку опоры:  
    ```bash
    wislaserver07
    ```
    
    В скрипте /opt/wisla5/pgpool/current/sbin/ifconfig указать (отредактировать) дополнительный IPадрес, который был зарезервирован для работы pgpool:  
    ```bash
    PGPOOL_ALIAS="192.168.1.110"
    ```
    
    В конфигурационном файле /opt/wisla5/pgpool/current/etc/pgpool.conf в опции trusted\_servers (строка 442) указать сервер с pgpool ЦОД1 и третью точку опоры:  
    ```bash
    trusted_servers = 'wislaserver01,wislaserver07'
    ```
    
    **wislaserver05:**  
    В файле /opt/wisla5/scripts/TRUSTED\_SERVERS указать список серверов ЦОД1 и третью точку опоры:  
    ```bash
    wislaserver01
    wislaserver02
    wislaserver03
    wislaserver07
    ```
    
    **wislaserver06:**  
    В файле /opt/wisla5/scripts/TRUSTED\_SERVERS указать список серверов ЦОД1 и третью точку опоры:  
    ```bash
    wislaserver01
    wislaserver02
    wislaserver03
    wislaserver07
    ```
    
    Добавить в crontab задачи на запуск скриптов. Для этого под пользователем wisla нужно выполнить команду:  
    ```
    crontab -e
    ```
    
      
    Открывается конфигурация cron для пользователя wisla в редакторе vim.  
    **wislaserver01:**  
    ```bash
    */1 * * * * /opt/wisla5/scripts/isolation_test.sh
    */1 * * * * /opt/wisla5/scripts/pgpool_connect.sh
    ```
    
    **wislaserver02:**  
    ```bash
    */1 * * * * /opt/wisla5/scripts/isolation_test.sh
    ```
    
    **wislaserver03:**  
    ```bash
    */1 * * * * /opt/wisla5/scripts/isolation_test.sh
    ```
    
    **wislaserver04:**  
    ```bash
    */1 * * * * /opt/wisla5/scripts/isolation_test.sh
    */1 * * * * /opt/wisla5/scripts/pgpool_connect.sh
    ```
    
    **wislaserver05:**  
    ```bash
    */1 * * * * /opt/wisla5/scripts/isolation_test.sh
    ```
    
    **wislaserver06:**  
    ```bash
    */1 * * * * /opt/wisla5/scripts/isolation_test.sh
    ```
    
    Перезапустить систему, используя программу установки wiSLA – в разделе Maintenance вначале выполнить «Stop all», затем «Start all».

# Действия по восстановлению работы кластера при выходе из строя одного из узлов ЦОД1

Отказоустойчивый кластер фактически рассчитан только на один отказ одного из узлов кластера, после которого требуется восстановление его работы. В случае выхода из строя двух узлов система перестаёт функционировать.

при статусе:

```bash
psql -p 19999 -c "show pool_nodes"
```

```bash
node_id | hostname | port | status | lb_weight | role
---------+---------------+------+--------+-----------+---------
0 | wislaserver01 | 5432 | 3 | 0.500000 | standby
1 | wislaserver04 | 5432 | 2 | 0.500000 | primary
```

1)стопнуть вторую ноду из инсталлера  
2)запустить вторую ноду из инсталлера

```
/opt/wisla5/pgpool/current/bin/pcp_recovery_node -p 9898 -h 10.198.2.17 -U wisla 1
#Password:  wisla
```

Дождаться выполнения -&gt; все ок

### Выход из строя ЦОД1

  
При выходе из строя ЦОД1 все компоненты переходят в активный режим на ЦОД2:

- Pgpool на сервере wislaserver04 переводит PostgreSQL в режим master и активирует alias на интерфейс на сервере;
- Hadoop и HBase на сервере wislaserver05 переходят в режим active;
- wiSLA на сервере wislaserver06 забирает себе все задачи, которые ранее были распределены  
    между двумя серверами.

В данном случае требуется восстановить согласованность данных и перенести активные модули на ЦОД1. Потребуется полная остановка и запуск системы на обоих ЦОД. Для этого нужно выполнить следующие действия:  
1\. Восстановить связь между узлами кластера.  
2\. В отдельной сессии SSH на сервере wislaserver07 под пользователем wisla запустить программу установки.  
3\. В разделе «Maintenance» -&gt; «wiSLA management» остановить wiSLA на всех серверах:

```bash
Stop_all
```

4\. В разделе «Maintenance» -&gt; «Pgpool management» запустить Pgpool на сервере wislaserver01:

```bash
Start on wislaserver01
```

5\. Убедиться в том, что Pgpool на сервере wislaserver01 активирован. Для этого в разделе «Statuses» выбрать «Pgpool status».  
6\. В отдельной сессии SSH открыть shell сервера wislaserver04 под пользователем wisla.  
7\. На сервере wislaserver04 выполнить команду для просмотра состояния узлов PostgreSQL:

```bash
psql -p 19999 -c "show pool_nodes"
```

8\. Убедиться в том, что сервер wislaserver04 имеет status «2» (активен) и role «primary», а wislaserver01 имеет status «3» (неактивен) и role «standby»:

```bash
node_id | hostname | port | status | lb_weight | role
---------+---------------+------+--------+-----------+---------
0 | wislaserver01 | 5432 | 3 | 0.500000 | standby
1 | wislaserver04 | 5432 | 2 | 0.500000 | primary
```

9\. На сервере wislaserver04 выполнить команду:

```bash
ip a
```

и убедиться в **наличии** alias «eth0:10» на интерфейсе «eth0» .  
10\. В отдельной сессии SSH открыть командную строку сервера wislaserver01 под пользователем wisla.  
11\. На сервере wislaserver01 выполнить команду:

```bash
ip a
```

и убедиться в **отсутствии** alias «eth0:10» на интерфейсе «eth0».  
12\. На сервере wislaserver04 выполнить команду:

```bash
LD_LIBRARY_PATH=/opt/wisla5/pgpool/current/lib/ pcp_recovery_node -d 0 127.0.0.1 9898 wisla wisla 0
```

13\. Дождаться выполнения команды, должно снова появиться приглашение для ввода.  
14\. Снова выполнить команду для просмотра состояния узлов PostgreSQL и убедиться в том, что сервер wislaserver01 уже имеет status «2» (активен) и role «primary», а wislaserver04 сохранил status «2» (активен), но изменил role на «standby».

```bash
[wisla@wislaserver04 ~]$ psql -p 19999 -c "show pool_nodes"
node_id | hostname | port | status | lb_weight | role
---------+---------------+------+--------+-----------+---------
0 | wislaserver01 | 5432 | 2 | 0.500000 | primary
1 | wislaserver04 | 5432 | 2 | 0.500000 | standby
```

15\. В открытой программе установки остановить Pgpool на сервере wislaserver04. Для этого в разделе «Maintenance» -&gt; «Pgpool management» выполнить:

```bash
Stop on wislaserver04
```

16\. В открытой программе установки остановить PostgreSQL на сервере wislaserver04. Для этого в разделе «Maintenance» -&gt; «Postgresql management» выполнить:

```bash
Stop on wislaserver04
```

17\. В открытой программе установки запустить Pgpool на сервере wislaserver04. Для этого в разделе «Maintenance» -&gt; «Pgpool management» выполнить:

```bash
Start on wislaserver04
```

18\. Убедиться в том, что Pgpool на сервере wislaserver04 активирован. Для этого в разделе «Statuses» выбрать «Pgpool status».  
19\. На сервере wislaserver04 выполнить команду:

```bash
ip a
```

и убедиться в **отсутствии** alias «eth0:10» на интерфейсе «eth0».  
20\. На сервере wislaserver01 выполнить команду:

```bash
ip a
```

и убедиться в **наличии** alias «eth0:10» на интерфейсе «eth0».  
21\. На сервере wislaserver01 выполнить команду для просмотра состояния узлов PostgreSQL и убедиться в том, что сервер wislaserver01 имеет status «2» (активен) и role «primary», а wislaserver04 имеет status «3» (неактивен) и role «standby».

```bash
[wisla@wislaserver01 ~]$ psql -p 19999 -c "show pool_nodes"
node_id | hostname | port | status | lb_weight | role
---------+---------------+------+--------+-----------+---------
0 | wislaserver01 | 5432 | 2 | 0.500000 | primary
1 | wislaserver04 | 5432 | 3 | 0.500000 | standby
```

22\. На сервере wislaserver01 выполнить команду (обратить внимание на замену числа 0 на 1 в конце команды):

```bash
LD_LIBRARY_PATH=/opt/wisla5/pgpool/current/lib/ pcp_recovery_node -d 0 127.0.0.1 9898 wisla wisla 1
```

23\. Дождаться выполнения команды, должно снова появиться приглашение для ввода.  
24\. На сервере wislaserver01 повторно выполнить команду для просмотра состояния узлов PostgreSQL и убедиться в том, что сервер wislaserver01 сохранил status «2» (активен) и role «primary», а wislaserver04 изменил status на «2» (активен), role осталась «standby».

```bash
[wisla@wislaserver01 ~]$ psql -p 19999 -c "show pool_nodes"
node_id | hostname | port | status | lb_weight | role
---------+---------------+------+--------+-----------+---------
0 | wislaserver01 | 5432 | 2 | 0.500000 | primary
1 | wislaserver04 | 5432 | 2 | 0.500000 | standby
```

25\. На сервере wislaserver04 выполнить команду:

```bash
tail -n 10 /home/wisla/postgresql/postgres.log
```

и убедиться в наличии строки:

```bash
database system is ready to accept read only connections
```

26\. В отдельной сессии SSH открыть командную строку сервера wislaserver02 под пользователем root.  
27\. На сервере wislaserver02 выполнить команды:

```bash
systemctl start glusterd  #/etc/init.d/glusterd start
mount -t glusterfs wislaserver05:/namenodevol /mnt/glusterVol/
```

28\. На сервере wislaserver02 убедиться в наличии непустого каталога /mnt/glusterVol/current/

```bash
ls /mnt/glusterVol/current/
```

29\. В открытой программе установки в разделе «Maintenance» -&gt; «HBase management» выполнить остановку HBase на всех серверах:

```bash
Stop_all
```

30\. В открытой программе установки в разделе «Maintenance» -&gt; «Hadoop management» выполнить остановку Hadoop на всех серверах:

```bash
Stop_all
```

31\. В открытой программе установки в разделе «Maintenance» -&gt; «Zookeeper management» выполнить остановку Zookeeper на всех серверах:

```bash
Stop_all
```

32\. В открытой программе установки в разделе «Maintenance» -&gt; «Zookeeper management» выполнить запуск Zookeeper на всех серверах:

```bash
Start_all
```

33\. В открытой программе установки в разделе «Maintenance» -&gt; «Hadoop management» выполнить запуск Hadoop на всех серверах:

```bash
Start_all
```

34\. В открытой программе установки в разделе «Maintenance» -&gt; «HBase management» выполнить запуск HBase на всех серверах:

```bash
Start_all
```

35\. В открытой программе установки в разделе «Maintenance» -&gt; «wiSLA management» выполнить запуск wiSLA на всех серверах:

```bash
Start_all
```

36\. После запуска wiSLA проверить состояние компонентов системы в разделе «Statuses» -&gt; «All statuses» и убедиться в работоспособности портала wiSLA.

# Действия по восстановлению работы кластера при выходе из строя одного из узлов ЦОД2

Отказоустойчивый кластер фактически рассчитан только на один отказ одного из узлов кластера, после которого требуется восстановление его работы. В случае выхода из строя двух узлов система перестаёт функционировать.

### Выход из строя ЦОД2

При выходе из строя ЦОД2 все компоненты остаются в активном режиме работы на ЦОД1. В данном случае требуется восстановить согласованность данных и восстановить работу системы на ЦОД2. Потребуется полная остановка и запуск системы на обоих ЦОД. Для этого нужно выполнить следующие действия:  
1\. Восстановить связь между узлами кластера.  
2\. В отдельной сессии SSH на сервере wislaserver07 под пользователем wisla запустить программу установки.  
3\. В разделе «Maintenance» -&gt; «wiSLA management» остановить wiSLA на всех серверах:

```bash
Stop_all
```

4\. В разделе «Maintenance» -&gt; «Pgpool management» запустить Pgpool на сервере wislaserver04:

```bash
 Start on wislaserver04
```

5\. Убедиться в том, что Pgpool на сервере wislaserver04 активирован. Для этого в разделе «Statuses» выбрать «Pgpool status».  
6\. В отдельной сессии SSH открыть командную строку сервера wislaserver01 под пользователем wisla.  
7\. На сервере wislaserver01 выполнить команду для просмотра состояния узлов PostgreSQL:

```
psql -p 19999 -c "show pool_nodes"
```

8\. Убедиться в том, что сервер wislaserver01 имеет status «2» (активен) и role «primary», а wislaserver04 имеет status «3» (неактивен) и role «standby»:

```bash
node_id | hostname | port | status | lb_weight | role
---------+---------------+------+--------+-----------+---------
0 | wislaserver01 | 5432 | 2 | 0.500000 | primary
1 | wislaserver04 | 5432 | 3 | 0.500000 | standby
```

9\. На сервере wislaserver01 выполнить команду:

```bash
ip a
```

и убедиться в **наличии** alias «eth0:10» на интерфейсе «eth0» .  
10\. В отдельной сессии SSH открыть командную строку сервера wislaserver04 под пользователем wisla.  
11\. На сервере wislaserver04 выполнить команду:

```bash
ip a
```

и убедиться в **отсутствии** alias «eth0:10» на интерфейсе «eth0».  
12\. На сервере wislaserver01 выполнить команду:

```bash
LD_LIBRARY_PATH=/opt/wisla5/pgpool/current/lib/ pcp_recovery_node -d 0 127.0.0.1 9898 wisla wisla 1
```

13\. Дождаться выполнения команды, должно снова появиться приглашение для ввода.  
14\. На сервере wislaserver01 снова выполнить команду для просмотра состояния узлов PostgreSQL и убедиться в том, что сервер wislaserver01 сохранил status «2» (активен) и role «primary», а wislaserver04 изменил status на «2» (активен), role осталась «standby».

```bash
[wisla@wislaserver01 ~]$ psql -p 19999 -c "show pool_nodes"
node_id | hostname | port | status | lb_weight | role
---------+---------------+------+--------+-----------+---------
0 | wislaserver01 | 5432 | 2 | 0.500000 | primary
1 | wislaserver04 | 5432 | 2 | 0.500000 | standby
```

15\. На сервере wislaserver04 выполнить команду:

```bash
ip a
```

и убедиться в **отсутствии** alias «eth0:10» на интерфейсе «eth0».  
16\. На сервере wislaserver01 выполнить команду:

```bash
ip a
```

и убедиться в**наличии** alias «eth0:10» на интерфейсе «eth0» .  
17\. На сервере wislaserver04 выполнить команду:

```bash
tail -n 10 /home/wisla/postgresql/postgres.log
```

и убедиться в наличии строки:

```bash
database system is ready to accept read only connections
```

18\. В отдельной сессии SSH открыть командную строку сервера wislaserver05 под пользователем root.  
19\. На сервере wislaserver05 выполнить команды:

```bash
systemctl start glusterd #/etc/init.d/glusterd start
mount -t glusterfs wislaserver02:/namenodevol /mnt/glusterVol/
```

20\. На сервере wislaserver05 убедиться в наличии непустого каталога /mnt/glusterVol/current/

```bash
ls /mnt/glusterVol/current/
```

21\. В открытой программе установки в разделе «Maintenance» -&gt; «HBase management» выполнить остановку HBase на всех серверах:

```bash
Stop_all
```

22\. В открытой программе установки в разделе «Maintenance» -&gt; «Hadoop management» выполнить остановку Hadoop на всех серверах:

```bash
Stop_all
```

23\. В открытой программе установки в разделе «Maintenance» -&gt; «Zookeeper management» выполнить остановку Zookeeper на всех серверах:

```bash
Stop_all
```

24\. В открытой программе установки в разделе «Maintenance» -&gt; «Zookeeper management» выполнить запуск Zookeeper на всех серверах:

```bash
Start_all
```

25\. В открытой программе установки в разделе «Maintenance» -&gt; «Hadoop management» выполнить запуск Hadoop на всех серверах:

```bash
Start_all
```

26\. В открытой программе установки в разделе «Maintenance» -&gt; «HBase management» выполнить запуск HBase на всех серверах:

```bash
Start_all
```

27\. В открытой программе установки в разделе «Maintenance» -&gt; «wiSLA management» выполнить запуск wiSLA на всех серверах:

```bash
Start_all
```

28\. После запуска wiSLA проверить состояние компонентов системы в разделе «Statuses» -&gt; «All statuses» и убедиться в работоспособности портала wiSLA.

# Действия по восстановлению работы кластера при выходе из строя третьей точки опоры

Данная ситуация не влияет на работоспособность контура, но грозит отказом системы в случае выхода из строя одного из ЦОД. Для восстановления работы третьей точки опоры требуется выполнить следующие действия:  
1\. Восстановить связь между узлами кластера.  
2\. На сервере wislaserver07 запустить программу установки.  
3\. В разделе «Maintenance» -&gt; «Zookeeper management» запустить Zookeeper на сервере wislaserver07:

```
Start on wislaserver07
```

4\. Проверить состояние компонентов системы в разделе «Statuses» -&gt; «All statuses» и работоспособность wiSLA.

# 9. WISLA В ИЗОЛИРОВАННОМ КОНТУРЕ

## Особенности работы wiSLA в изолированном контуре

В случаях, когда требуется обеспечить дополнительную безопасность сетевой инфраструктуры, часто принимается решение развернуть wiSLA в изолированном по отношению к сети Интернет контуре. ПАК wiSLA может корректно работать в этом режиме. Основные отличия касаются ввода адреса точки доступа и отображения точек доступа на карте, так как для работы этого функционала требуется доступ к внешнему геокодеру и карт-серверу как серверов wiSLA, так и рабочих станций пользователей:

- в открытом контуре адрес вводится в одну строку, а координаты определяются автоматически. В  
    случае отсутствия интернет-соединения у пользователей системы создать точку доступа не  
    удастся;
- в изолированном контуре с локальным геокодером адрес вводится в несколько полей ввода,  
    предпринимается попытка автоматического получения координат. В случае неудачи или при  
    ошибочном определении координаты могут быть введены вручную или изменены;
- в изолированном контуре без геокодера адрес вводится в несколько полей, координаты вводятся  
    вручную;
- в изолированном контуре без локального карт-сервера точки доступа не смогут быть отображены  
    на карте сервисов;
- в случае отсутствия координат в настройках точки доступа последние не смогут быть отображены  
    на карте сервисов.

Настройки могут быть выполнены при первичной установке wiSLA или в процессе эксплуатации. Они задаются в программе установки wiSLA. Перед выполнением настроек следует:

- принять решение, будет ли использоваться локальный геокодер. Если да – выполнить его  
    установку и настройку;
- принять решение, будет ли использоваться локальный карт-сервер. Если да – выполнить его  
    установку и настройку.

Вопрос настройки локального геокодера и карт-сервера выходит за рамки настоящего Руководства. При  
необходимости можно обратиться в службу технической поддержки для получения консультации.

## Переключение wiSLA в изолированный режим

Все связанные с облачным режимом настройки находятся в программе установки на вкладке «wiSla  
resources configuration».

Параметр «Local geo services» определяет тип контура:

- true – для закрытого контура,
- false – для открытого контура.

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2025-11/scaled-1680-/aE2image.png)](https://wiki.wellink.ru/uploads/images/gallery/2025-11/aE2image.png)

Параметр «Nominatim service URL» предоставляет возможность работы с произвольным Nominatimсервером. Используется для определения координат по адресу в изолированном контуре. Данная настройка игнорируется для открытого контура, если значение задано. Пример значения: «http://map.wellink.ru/nominatim/».

Параметр «URL to tiles for map» – путь к изображениям карты. Например, «http://map.wellink.ru/osm\_tiles/».

Для переключения wiSLA в изолированный режим требуется:

- запустить программу установки (подробно запуск рассматривается в разделе «Работа с программой установки», а внесение изменений – в «Изменение одного или нескольких параметров wiSLA»);
- в режиме «Config Update» перейти на вкладку «wiSLA Resources Configuration»;
- изменить значения параметров «Local geo services», «Nominatim service URL», «URL to tiles for map»;
- выполнить остановку и запуск wiSLA.

Для проверки успешности настройки следует:

- авторизоваться на портале оператора с учётной записью системного администратора;
- перейти в раздел «Точки доступа»;
- нажать «+ Точка доступа». Вместо поля «Адрес» должны быть доступны для ввода «Область», «Город», «Улица», «Дом»;
- заполнить поля корректными тестовыми данными. Проверить получение координат в случае если был настроен локальный геокодер или ввести координаты вручную – в противном случае;
- сохранить настройки точки доступа. Проверить факт появления новой точки доступа в общем списке;
- если был настроен локальный карт-сервер, перейти в раздел «Карта сервисов», изменить масштаб карты.

При успешном появлении точки доступа в общем списке на странице «Точки доступа» переключение  
wiSLA в изолированный режим считается выполненным корректно.

При успешном открытии карты сервисов после изменения в настройках адреса карт-сервера на локальный настройка карт-сервера считается выполненной успешно. Если же карта сервисов не открывается, на странице возникают ошибки, или масштаб невозможно изменить следует проверить корректность значения параметра «URL to tiles for map», доступность и работоспособность самого картсервера на рабочем месте администратора.

При успешном получении координат в настройках точки доступа после изменения адреса геосервиса настройка геосервиса считается выполненной успешно. Если введённый адрес корректен, а координаты не определяются, следует повторить попытку с другим адресом. Если в обоих случаях система не смогла определить координаты, следует проверить корректность значения параметра «Local geo services», доступность и работоспособность локального геосервиса на рабочем месте администратора.

Внимание, если не устанавливать URL для Nominatim - то можно задавать адрес вручную, но поиск не будет работать.

# 10. ОБЛАЧНЫЙ РЕЖИМ

## Особенности облачного режима

ПАК wiSLA может работать как облачная платформа, предоставляющая услуги мониторинга малому и среднему бизнесу (SME).

Если портал развёрнут в режиме wiSLA.Cloud:

- у новых пользователей есть возможность пройти регистрацию самостоятельно;
- при регистрации нового пользователя в случае совпадения названия компании с существующей в базе пользователь может запросить доступ на портал у системного администратора;
- число действий системного администратора по добавлению пользователя по запросу сведено к минимуму;
- новые пользователи, которые прошли регистрацию, создаются с ролями «Пользователь» + «Оператор SLA»;
- учётные записи и контрагенты с неподтверждённой в течение 48 часов регистрацией удаляются. Периодичность поиска таких записей настраивается;
- на странице «Зонды» есть кнопка для загрузки программного агента;
- администратор может изменять набор программных агентов для загрузки;
- сервис может быть добавлен со страницы зонда, если зонд не в архиве, и его настройки были сохранены ранее;
- возможна интеграция с внешними системами веб-аналитики (например, Яндекс-метрикой, Convead);
- функционал топологии сети недоступен.

## Включение и настройка облачного режима  


Все связанные с облачным режимом настройки находятся в программе установки на вкладке «wiSLA Cloud System».

За активацию режима облачной системы отвечает параметр «Enable wiSLA cloud». Принимает значения: true (облачный режим) или false (стандартный режим).

Интервал запуска процедуры поиска учётных записей и контрагентов, не завершивших регистрацию в течение 48 часов, определяется параметром «Registrations attempts check interval» на вкладке «wiSLA Cloud System», принимает целое значение в минутах.

Адрес электронной почты администратора, на который будут приходить письма о запросе доступа, задаётся параметром «Support email». Значением может быть один адрес электронной почты.

Интеграцию с внешним сервисом веб-аналитики можно включить в «Third-party scripts enabled» (true – включена, false – выключена), указать путь к xml-файлу настроек интеграции (скрипту) – в «Path to thirdparty scripts xml». Скрипт можно получить в службе технической поддержки.

Эти параметры могут быть заданы при первичной установке wiSLA или позже. Для изменения параметров следует использовать программу установки wiSLA:

- запустить программу установки (подробно запуск рассматривается в разделе «Работа с программой установки», а внесение изменений – в «Изменение одного или нескольких параметров wiSLA»);
- в режиме «Config Update» перейти на вкладку «wiSLA Cloud System»;
- задать параметры;
- продолжить процедуру обновления;
- выполнить перезапуск wiSLA.

На рисунке 67 показан пример настройки wiSLA Cloud.

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-01/scaled-1680-/Zp0image.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-01/Zp0image.png)

Рис. 67 Пример заполнения параметров на вкладке wiSLA Cloud System

В примере после применения настроек:

- будет включен режим wiSLA Cloud;
- пользователи и контрагенты, не подтвердившие регистрацию в течение 48 часов, будут удаляться. Интервал проверки составит 30 минут;
- запросы на добавление учётных записей будут отсылаться на адрес admin@thecompany.com;
- статистика посещения страниц будет отслеживаться;
- параметры интеграции с внешним сервисом веб-аналитики для отслеживания статистики заданы в файле /home/wiSLA/CloudServices.xml.

## Подготовка ссылок на программные агенты

Как было отмечено, пользователи в облачном режиме wiSLA могут загружать программные агенты для создания собственной инфраструктуры без помощи системного администратора. Загрузка проводится на странице «Справка», для этого предусмотрена кнопка «Загрузить Агент». Или на вкладке "Зонды", по кнопке "Скчать зонд". Список агентов, который получит пользователь портала после нажатия этой кнопки, зависит от настроек, выполненных на сервере wiSLA.

Для корректного формирования этого списка требуется:

- получить и подготовить к копированию актуальные файлы программных агентов wiProbe;
- скопировать файлы на сервер wiSLA;
- изменить владельца файлов на «wisla», группа «wisla»;
- проследить, чтобы у владельца были права на чтение;
- для linux-агентов снять разрешение на исполнение, если оно появилось при копировании;
- находясь на сервере, файлы следует перенести в каталог /opt/wisla5/wildfly/current/wisla\_program\_agents;
- в каталоге создать текстовый файл index со ссылками на файлы. Пример файла показан ниже;
- сохранить файл index. Перезапуск wiSLA не требуется. Если изменения не применились, выполнить выход и вход на портал;
- рекомендуется проверить работоспособность ссылок и загруженных файлов после применения настроек.

Пример файла index:

```html
{
"Windows":"alfa-test2-win_slamon-agent-win-1.12.62271.exe",
"Linux":"",
"Fedora 19 | x32":"",
"Fedora 19 | x64":"",
"Debian 6 | x32":"",
"Debian 6 | x64":"alfa-test2_slamon_1.12.62271_x86_64.deb",
"CentOS 6.4 | x32":"",
"CentOS 6.4 | x64":"alfa-test2_slamon-1.12.62271.x86_64.rpm",
"Ubuntu 12.04 | x32":"",
"Ubuntu 12.04 | x64":"alfa-test2_slamon_1.12.62271_x86_64.deb"
}
```

В примере сделаны записи для появления ссылок на программные агенты для Windows, Linux rpm, RedOS, Astra Linux, Debian. На рисунке 68 показан результат настройки на портале.

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2024-09/scaled-1680-/7Peimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2024-09/7Peimage.png)

Рис. 68 Список агентов на портале оператора после настройки

# 11. ПОДГОТОВКА АГЕНТА ДЛЯ АВТОМАТИЧЕСКОГО СКАНИРОВАНИЯ СЕТИ

Сканирование сети выполняется для получения списка устройств с их IP-адресами для топологии сети, чтобы не создавать устройства вручную. Агентом для сканирования сети может быть любой сервер, виртуальная машина, зонд или иное устройство, работающее под управлением Unix-совместимой операционной системы, на которое можно установить пакеты, которые обеспечат сканирование. Устройство должно иметь возможность приёма команд с удалённого сервера по протоколу SSH.

Для работы функции сканирования требуется обеспечить запуск следующих утилит:

- zmap ([https://github.com/zmap/zmap](https://github.com/zmap/zmap), требует отдельной загрузки и установки, на Red Hat-подобных ОС входит в состав EPEL – epel-release). Получает список IP-адресов;
- arp (в составе пакета net-tools, обычно входит в состав дистрибутива ОС). Позволяет сопоставить списку IP-адресов MAC-адреса;
- nmblookup (в составе пакета samba4-client, обычно входит в состав дистрибутива ОС). Получает сетевые идентификаторы NetBIOS.

Установка проводится в соответствии с руководством администратора соответствующей операционной системы.

Задания на сканирование подсетей поступают с сервера приложений wiSLA на агент в виде команд по протоколу SSH, выполняются с sudo и требуют привилегий администратора. Пользователь, под которым будет происходить подключение для запуска сканирования, должен входить в sudoers и иметь возможность выполнения команд с повышенными привилегиями без ввода пароля.

После установки требуется настроить утилиту zmap. Обычно по умолчанию в ней отключено сканирование локальных подсетей. Для включения достаточно найти файл настроек zmap (как правило, это /etc/zmap/blacklist.conf), закомментировать строки, по которым планируется сканирование или добавить собственные правила. В случае проблем с установкой или настройкой zmap обратитесь в  
службу технической поддержки.

В сети может работать несколько таких агентов. Администратор может проводить сканирование, последовательно меняя настройки сканирования на портале оператора в разделе «Топология сети».

# 12. ПОДГОТОВКА СЕНСОРА NETFLOW

Сенсор Netflow используется в работе теста Netflow, который предоставляет возможность анализа сетевого трафика на уровне сеансов, делая запись о каждой транзакции TCP/IP. Сенсор представляет собой устройство, собирающее статистику по проходящему через него трафику. Собранные данные отправляются в формате Netflow 5 на коллектор Netflow.

Сенсор может быть развёрнут на оборудовании под управлением Unix-совместимой операционной системы, через которое проходит трафик, и которое позволяет установить пакеты fprobe и tcpdump. Брандмауэр должен позволять исходящие соединения на порт UDP 9996. Пользователь должен входить в sudoers и иметь возможность выполнения команд с повышенными привилегиями без ввода пароля.

## Подготовка сенсора к работе  


##### 1) Выяснить IP-адрес коллектора Netflow

 Адрес такой же, как у сервера приложений wiSLA. Запуск коллектора описан в разделе «Действия по обслуживанию wiSLA»;

##### 2) Установить пакет fprobe.

Для установки рекомендуется обратиться к руководству администратора соответствующей операционной системы. Примеры команды для rpm-совместимых дистрибутивов Linux:

**<span style="text-decoration: underline;">2.1 Для Debian/Ubuntu/Astra</span>,** deb-совместимых дистрибутивов Linux:

 2.1.1 Обновите список пакетов:

```bash
$ sudo apt update
```

2.1.2 Установите fprobe (для Debian/Ubuntu, deb-совместимых дистрибутивов Linux):

```bash
$ sudo apt install fprobe
```

**<span style="text-decoration: underline;">2.2 Для CentOS/RHEL:</span>**

2.2.1 Установите EPEL-репозиторий (если еще не установлен):

```bash
$ sudo yum install epel-release
```

2.2.2 Установите fprobe:

```bash
$ sudo yum install fprobe
```

или

```bash
$ sudo dnf install fprobe
```

##### 3) Настройка ftprobe

После установки необходимо настроить fprobe для мониторинга трафика на конкретном интерфейсе и отправки данных на коллектор.

**<span style="text-decoration: underline;">3.1 Для Debian/Ubuntu/Astra</span>**

3.1.1 Откройте файл конфигурации:

```bash
$ sudo nano /etc/default/fprobe
```

3.1.2 Приведите файл к следующему виду:

```bash
# fprobe default configuration file

INTERFACE="eth0"                     # Интерфейс для мониторинга (например, eth0)
FLOW_COLLECTOR="192.168.1.100:9996"  # Адрес коллектора (IP и порт-9996)

# Дополнительные параметры (опционально)
OTHER_ARGS="-fip"
```

где:

- INTERFACE: Укажите интерфейс, который нужно мониторить. Если нужно мониторить все интерфейсы, укажите `any`.
- FLOW\_COLLECTOR: Укажите IP-адрес и порт коллектора (сервер wiSLA).
- OTHER\_ARGS указывает прочие опции. 
    - Например, можно перехватывать только IP-пакеты, указав "-fip";

3.1.3 Сохраните файл и выйдите из редактора (в nano: `Ctrl+O`, затем `Ctrl+X`).

3.1.4 В случае внесении корректировок в файл при запущенном ftprobe, чтобы применить настройки, необходимо перезапустить fprobe.

**<span style="text-decoration: underline;">3.2 Для CentOS/RHEL:</span>**

3.2.1 Откройте файл конфигурации:

```bash
$ sudo nano /etc/sysconfig/fprobe
```

3.2.2 Приведите файл к следующему виду:

```bash
OPTIONS="-ieth0 -B4096 -r2 -q10000 -t10000:10000000 192.168.1.100:9996"
```

где:

- `-ieth0`: Интерфейс для мониторинга (например, eth0).
- `192.168.1.100:9996`: Адрес коллектора (IP и порт).

3.2.3 Сохраните файл и выйдите из редактора.

##### 4) Запуск и управление ftprobe

- Для Debian/Ubuntu/Astra:
    
    ```
    sudo systemctl start fprobe
    ```
- Для CentOS/RHEL:
    
    ```
    sudo service fprobe start
    ```

##### 5) Автозапуск при загрузке системы:

- Для Debian/Ubuntu/Astra:
    
    ```
    sudo systemctl enable fprobe
    ```
- Для CentOS/RHEL:
    
    ```
    sudo chkconfig fprobe on
    ```

##### 5) Проверка статуса fprobe:

- Для Debian/Ubuntu/Astra:
    
    ```
    sudo systemctl status fprobe
    ```
- Для CentOS/RHEL:
    
    ```
    sudo service fprobe status
    ```

##### Дополнительно:

**Остановка fprobe:**

- Для Debian/Ubuntu/Astra:
    
    ```
    sudo systemctl stop fprobe
    ```
- Для CentOS/RHEL:
    
    ```
    sudo service fprobe stop
    ```

**Перезапуск fprobe:**

- Для Debian/Ubuntu/Astra:
    
    ```
    sudo systemctl restart fprobe
    ```
- Для CentOS/RHEL:
    
    ```
    sudo service fprobe restart
    ```

**Проверка что fprobe установлен:**

```
which fprobe
```

Если команда возвращает путь (например, `/usr/sbin/fprobe`), значит, `fprobe` установлен.

**Иные команды для управления службой fpobe**

Запуск сенсора:

```bash
$ /etc/init.d/fprobe start
```

Остановка сенсора:

```bash
$ /etc/init.d/fprobe stop
```

Перезапуск сенсора:

```bash
$ /etc/init.d/fprobe restart
```


##### Пример файла настройки fprobe:

- **В deb-совместимых дистрибутивах Linux**

Расположение: **/etc/default/fprobe**

```bash
#fprobe default configuration file
INTERFACE="eth0"
FLOW_COLLECTOR="192.168.1.10:9996"
#fprobe can't distinguish IP packet from other (e.g. ARP)
OTHER_ARGS="-fip"
```

- **В rpm-совместимых дистрибутивах Linux**

Расположение: **/etc/sysconfig/fprobe**

```bash
OPTIONS="-ieth0 -B4096 -r2 -q10000 -t10000:10000000 192.168.1.10:9996 -fip"
```

##### Проверка работы fprobe

**Проверка отправки данных на коллектор:**

1. На сервере коллектора (wiSLA), с помощью утилиты tcpdump, выполните команду:
    
    ```bash
    $ sudo tcpdump -nni any udp and port 9996
    ```
    
    Если данные поступают, вы увидите строки вида:
    
    ```
    18:57:41.010226 IP 192.168.1.10.52861 > 192.168.1.100.9996: UDP, length 120
    ```
2. На сервере с fprobe проверьте, отправляются ли данные:
    
    ```bash
    $ sudo netstat -tunap | grep fprobe
    ```
    
    Или:
    
    ```bash
    $ sudo ss -tunap | grep fprobe
    ```

##### Полное удаление fprobe на линукс: sudo apt-get purge fprobe


##### По итогу

Поздравляю, теперь fprobe настроен и готов к работе. Он будет собирать данные о трафике на указанном интерфейсе и отправлять их на коллектор NetFlow.

# 13. РАСЧЕТ АППАРАТНОЙ ЧАСТИ WISLA

# Расчет аппаратной части промышленного контура wiSLA

**РАСЧЕТ АППАРАТНОЙ ЧАСТИ ПРОМЫШЛЕННОГО КОНТУРА WISLA БЕЗ УЧЁТА ОТКАЗОУСТОЙЧИВОСТИ**

Сервера для контура различаются по своему функциональному назначению:

1. Demo Server (демонстрационный сервер). Для тестово-демонстрационных целей на новых площадках. Не более 50 сервисов (~600 тестов, ~3000 метрик).

 2. Standalone Server Base (сервер «Всё в одном» для средних нагрузок) + NoSQL Server (Hbase) + SQL Server (PostgreSQL). Полный набор необходимых приложений для «не кластерной» установки. Не более 300 сервисов (~1800 тестов, ~18000 метрик).

 3. Standalone Server High-Performance (сервер «Всё в одном» для высоких нагрузок) + NoSQL Server (Hbase) + SQL Server (PostgreSQL). Полный набор необходимых приложений для «не кластерной» установки. Не более 1000 сервисов (~6000 тестов, ~60000 метрик).

Конфигурации более 1000 сервисов подлежат дополнительному проектированию. В зависимости от типа производимых измерений оптимальные аппаратные конфигурации могут быть изменены.

**Опционально**: Backup server. Рекомендуется предусмотреть сервер для хранения резервных копий. От 1 ТБ до ~2 ТБ в зависимости от срока хранения, частоты съема резервных копий, глубины хранения данных.

**Аппаратные конфигурации на каждый тип сервера**:

- Тип 1: Demo Server: 
    - CPU: 4 core;
    - RAM: 16 Гбайт;
    - HDD: 500 Гбайт (no RAID);
    - OS: Astra Linux 1.7+ (Или на архитектуре Debian, RHEL).
- Тип 2: Standalone Server Base: 
    - CPU: 6 core;
    - RAM: 20 Гбайт;
    - HDD: 1 Тбайт (no RAID);
    - OS: Astra Linux 1.7+ (Или на архитектуре Debian, RHEL).
- Тип 3: Standalone Server High-Performance: 
    - CPU: 12 core;
    - RAM: 64 Гбайт;
    - HDD: 2 Тбайт (no RAID);
    - OS: Astra Linux 1.7+ (Или на архитектуре Debian, RHEL).

**РАСЧЕТ АППАРАТНОЙ ЧАСТИ ПРОМЫШЛЕННОГО КОНТУРА WISLA С УЧЁТОМ ОТКАЗОУСТОЙЧИВОСТИ**

1. Кластерное решение для средних нагрузок (4 сервера для развертывания (2+2))

- 2 сервера для развертывания: (Application Server (сервера приложений JBoss) + NoSQL Server (Hbase. (Включает в себя HBase Master и Region Server))  
    APP. Выполняет основную бизнес-логику системы, от сбора данных до расчета отчетов SLA. Обрабатывает запросы пользователей.   
    NoSQL. Сервер выполняет функции контроллера и хранилища для больших объемов данных, поступающих от измерительных устройств, представленных значениями метрик.
- 2 сервера для развертывания: (Application Server (сервера приложений JBoss) + SQL Server (PostgreSQL))  
    APP. Выполняет основную бизнес-логику системы, от сбора данных до расчета отчетов SLA. Обрабатывает запросы пользователей.   
    SQL. Сервер осуществляет хранение инфраструктуры системы, а также некоторых рассчитываемых данных (статусы сервисов, состояние паспорта неисправности, отчеты SLA).  
    Не более 5 000 сервисов (~30 000 тестов, ~300 000 метрик).

 2. Кластерное решение для высоких нагрузок (6 серверов для развертывания (4+2))

- 4 сервера для развертывания: (Application Server (сервера приложений JBoss) + NoSQL Server (Hbase. Включает в себя HBase Master и Region Server))  
    APP. Выполняет основную бизнес-логику системы, от сбора данных до расчета отчетов SLA. Обрабатывает запросы пользователей.   
    NoSQL. Сервер выполняет функции контроллера и хранилища для больших объемов данных, поступающих от измерительных устройств, представленных значениями метрик.
- 2 сервера для развертывания: (Application Server (сервера приложений JBoss) + SQL Server (PostgreSQL))  
    APP. Выполняет основную бизнес-логику системы, от сбора данных до расчета отчетов SLA. Обрабатывает запросы пользователей.   
    SQL. Сервер осуществляет хранение инфраструктуры системы, а также некоторых рассчитываемых данных (статусы сервисов, состояние паспорта неисправности, отчеты SLA).  
    Не более 10 000 сервисов (~60 000 тестов, ~600 000 метрик).  
    Конфигурации более 10 000 сервисов подлежат дополнительному проектированию. В зависимости от типа производимых измерений, оптимальные аппаратные конфигурации могут быть изменены.

**Опционально**: Backup server. Рекомендуется предусмотреть сервер для хранения резервных копий.  
От 1 ТБ до ~10 ТБ в зависимости от срока хранения, частоты съема резервных копий, глубины хранения данных.

**Аппаратные конфигурации на каждый тип сервера:**

- Тип 4: Кластерное решение для средних нагрузок (4 сервера для развертывания (2+2)) 
    - 2 сервера: APP + NoSQL: 
        - CPU: 16 core;
        - RAM: 32 Гбайт;
        - HDD: 3 Тбайт (RAID 10);
        - OS: Astra Linux 1.7+ (Или на архитектуре Debian, RHEL).
    - 2 сервера: APP + SQL: 
        - CPU: 16 core;
        - RAM: 64 Гбайт;
        - HDD: 2 Тбайт (RAID 10);
        - OS: Astra Linux 1.7+ (Или на архитектуре Debian, RHEL).

- Тип 5: Кластерное решение для высоких нагрузок (6 серверов для развертывания (4+2)) 
    - 4 сервера: APP + NoSQL: 
        - CPU: 16 core;
        - RAM: 32 Гбайт;
        - HDD: 3 Тбайт (RAID 10);
        - OS: Astra Linux 1.7+ (Или на архитектуре Debian, RHEL).
    - 2 сервера: APP + SQL: 
        - CPU: 16 core;
        - RAM: 64 Гбайт;
        - HDD: 2 Тбайт (RAID 10);
        - OS: Astra Linux 1.7+ (Или на архитектуре Debian, RHEL).

**ЗАКЛЮЧЕНИЕ** Приведенные выше расчеты являются рекомендуемыми и носят справочный характер. В рамках отдельных проектов параметры и конфигурация промышленного контура могут отличаться.  
Аппаратные конфигурации приводятся исходя из рекомендаций руководств по эксплуатации, используемых в системе продуктов (Java, JBoss, PostgreSQL, Hbase).

# 14. ПРОДЛЕНИЕ ЛИЦЕНЗИИ

Для обеспечения бесперебойного мониторинга IT-инфраструктуры и работы критически важных функций (доступ пользователей, сбор данных, аварийные оповещения) необходимо своевременно продлевать лицензию wiSLA.

<p class="callout warning">**<span class="qwen-markdown-strong"><span class="qwen-markdown-text" data-spm-anchor-id="a2ty_o01.29997173.0.i2.163f5171lXGmyu">Важно</span></span>**: истечение срока лицензии может привести к прекращению сбора данных, потере доступа к оповещениям об аварийных событиях и отсутствию доступа пользователей. </p>

##### Кто может продлевать лицензию?

<span class="qwen-markdown-text">Продление лицензии доступно только для системного пользователя </span>`Admin`<span class="qwen-markdown-text">. Учетные данные для него передаются при оформлении лицензии на ПО.</span>

##### <span class="qwen-markdown-strong"><span class="qwen-markdown-text" data-spm-anchor-id="a2ty_o01.29997173.0.i8.163f5171lXGmyu">Порядок продления лицензии</span></span>  


1. <span class="qwen-markdown-text">Авторизуйтесь в системе под учетной записью </span>`Admin`<span class="qwen-markdown-text">.</span>
2. <span class="qwen-markdown-text">Перейдите в раздел </span>**<span class="qwen-markdown-text">Администрирование</span>**<span class="qwen-markdown-text"> → </span>**<span class="qwen-markdown-text">Настройка системы</span>**<span class="qwen-markdown-text">.</span>
3. <span class="qwen-markdown-text">Откройте вкладку </span>**<span class="qwen-markdown-text">Техобслуживание</span>**<span class="qwen-markdown-text">. В блоке отображается текущая дата окончания лицензии.</span>
4. <span class="qwen-markdown-text">В поле </span>**<span class="qwen-markdown-text">Лицензионный ключ</span>**<span class="qwen-markdown-text"> введите новый ключ, полученный от вендора или менеджера.</span>
5. <span class="qwen-markdown-text">Нажмите кнопку "</span>**<span class="qwen-markdown-text">Обновить ключ"</span>**<span class="qwen-markdown-text">.</span>
6. <span class="qwen-markdown-text">Убедитесь, что в интерфейсе отобразилась новая дата окончания срока действия.</span>

[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2026-04/scaled-1680-/HBzimage.png)](https://wiki.wellink.ru/uploads/images/gallery/2026-04/HBzimage.png)

**<span class="qwen-markdown-text" data-spm-anchor-id="a2ty_o01.29997173.0.i12.163f5171lXGmyu">Если возникла ошибка</span>**  
<span class="qwen-markdown-text">При ошибке обновления проверьте корректность ключа и подключение сервера к сети. Если проблема сохраняется, обратитесь в техническую поддержку или к вашему менеджеру</span>

# 15. ВАЖНАЯ ИНФОРМАЦИЯ

## О документе

© 2025 ООО “НТЦ Веллинк”. Все права защищены.

Компания ООО “НТЦ Веллинк” оставляет за собой право в одностороннем порядке без какого-либо специального уведомления, без согласия Пользователя в любое время вносить улучшения и/или изменения в продукты и/или программное обеспечение, дополнять и/или изменять настоящий документ. Новая редакция документа вступает в силу с момента ее размещения в Базе знаний компании ООО “НТЦ Веллинк” по адресу info.wellink.ru. Убедитесь, что Вы читаете последнюю актуальную версию настоящего документа.

Были предприняты максимальные усилия для того, чтобы гарантировать полноту и точность представленной в документе информации. ООО “НТЦ Веллинк” не несет ответственности за возможные описки и неточности.  
Использование Пользователем продукта и/или программного обеспечение после любых изменений и/или улучшений означает его согласие с такими изменениями и/или улучшениями.

Если у вас есть замечания, касающиеся данного документа или продуктов, которые он описывает, направляйте их по адресу support@wellink.ru.

## О компании

ООО “НТЦ Веллинк” (www.wellink.ru) разрабатывает инновационные продукты и решения в области автоматизации и управления качеством информационных и телекоммуникационных услуг для операторов связи, государственного и корпоративного сегментов.

wiSLA, wiProbe, wiTest — являются официально зарегистрированными торговыми марками компании ООО “НТЦ Веллинк”, имеют все необходимые сертификаты и защищены авторским правом.

ООО “НТЦ Веллинк” оказывает услуги по внедрению, сопровождению и улучшению своих продуктов согласно требованиям заказчика. При внедрении своих продуктов ООО “НТЦ Веллинк” опирается на обширную партнерскую сеть, которая непрерывно развивается на территории Российской Федерации и за ее пределами. Сервисный центр компании ООО “НТЦ Веллинк” готов оказывать услуги технической поддержки высокого качества в режиме 24х7.

Девиз ООО “НТЦ Веллинк”: Гибкость в отношениях, Инновации в разработке, Простота в использовании. Мы открыты для партнерства и интеграции. Мы делаем услуги измеримыми не только по цене, но и по качеству!  
Головной офис компании находится по адресу: 127322, Москва, ул. Яблочкова, д.21, корп.3 тел./факс: +7(495)665-92-63

Интернет-сайт: [www.wellink.ru](https://www.wellink.ru)

<table border="1" id="bkmrk-%C2%A0-127322%2C-%D0%B3.-%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0%2C" style="border-collapse: collapse; width: 100%; border-width: 0px;"><colgroup><col style="width: 20.8723%;"></col><col style="width: 79.19%;"></col></colgroup><tbody><tr><td style="border-width: 0px;">[![image.png](https://wiki.wellink.ru/uploads/images/gallery/2023-11/scaled-1680-/k65image.png)](https://wiki.wellink.ru/uploads/images/gallery/2023-11/k65image.png)

</td><td style="border-width: 0px;">127322, г. Москва,

ул. Яблочкова, д.21, корп.3  
Тел.: +7(495)665-92-63

</td></tr></tbody></table>