OmegaBI инструкция по установке на Astra Linux
Задача: собрать работающую систему OmegaBI на одной ВМ у клиента внутри ВМ с установленной ОС Astra Linux 1.6 Smolensk. Развернуть готовый образ ВМ не представляется возможным.
URL проекта сделаем https://omegabi2
General
user_add
Скрипт добавления пользователя /ust/local/bin/user_add
#!/bin/bash
uname=$1
groupadd -r $uname
#adduser --system --home /data/$uname --shell /bin/false --no-create-home $uname
useradd -r -g $uname -d /data/$uname -s /usr/sbin/nologin $uname
bi-ctl
Скрипт управления всеми сервисами
#!/bin/bash
ACT=$1
BSS="
nginx
couchdb
postgresql
keycloak
druid
kafka
payara
nifi
"
if [[ -z $1 ]]; then ACT='status'; fi
for BS in $BSS; do
echo $BS
clear; systemctl $ACT $BS
sleep 3
done
#/data/nifi/bin/nifi.sh $ACT
echo "Payara Control"
#su -c "/data/payara/bin/asadmin start-domain" payara
#su -c "/data/payara/bin/asadmin ping-connection-pool analytics" payara
#su -c "/data/payara/bin/asadmin list-applications" payara
Java
Apache Druid официально поддерживает только Java 8. Поэтому надо ставить эту версию.
Все другие версии java лучше удалить, или надо устанавливать переменную окружения
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre
Nginx
Install from source code
Пакета nginx в Astra Linux нет. Ставим из исходников.
apt install build-essential libpcre3-dev zlib1g-dev
cd /opt
wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1d.tar.gz
tar xvf openssl-1.1.1d.tar.gz
wget https://nginx.org/download/nginx-1.21.0.tar.gz
tar xvf nginx-1.21.0.tar.gz
cd nginx-1.21.0
./configure --with-openssl=/opt/openssl-1.1.1d --with-http_ssl_module --with-stream --with-http_v2_module --with-http_realip_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-stream_ssl_module
make && make install
Проверим:
/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.21.0
built by gcc 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)
configure arguments:
Сборка angular-приложения
Сборка окружения делается только в том случае, если необходимо поменять URL доступа к приложению. В штатном варианте это https://omegabi2 - тогда не пересобираем.
Приложение frontend angular лежит в папке /data/nginx/omegabi-02
Далее все действия будем производить в корневой папке проекта: /data/nginx/omegabi-02 Добавить в файл описания конфигураций angular.json секцию с параметрами нового проекта:
"bio6-gkomega-ru": {
"budgets": [
{
"type": "anyComponentStyle",
"maximumWarning": "6kb"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.bio6-gkomega-ru.ts"
}
],
"assets": [
{
"glob": "favicon.ico",
"input": "src/assets/conf/bio6-gkomega-ru/",
"output": "/"
},
{
"input": "src/assets/",
"output": "/assets/",
"glob": "**/*",
"ignore": [
"conf/*.json",
"**/*.*~"
]
},
{
"input": "src/assets/conf/bio6-gkomega-ru/",
"output": "/assets/",
"glob": "keycloak.json"
}
]
},
- Добавить папку проекта bio6-gkomega-ru в подкаталог src/assets/conf и исправляем параметр auth-server-url на выбранный нами домен в файле src/assets/conf/bio6-gkomega-ru/keycloak.json
cat src/assets/conf/bio6-gkomega-ru/keycloak.json
{
"realm": "analytics",
"auth-server-url": "https://bio6.gkomega.ru/auth/",
"ssl-required": "none",
"resource": "app-analytics",
"public-client": true,
"verify-token-audience": true,
"use-resource-role-mappings": true,
"confidential-port": 0
}
Если запрос идет через внешний прокси по HTTPS, то “ssl-required”: “external”
- Создаем файл переменных окружения src/environments/environment.bio6-gkomega-ru.ts
import { version } from '../../package.json';
export const environment = {
title: 'OmegaBI',
production: true,
version: version,
host: 'https://bio6.gkomega.ru',
base: 'https://bio6.gkomega.ru',
api: 'https://bio6.gkomega.ru/arm/api',
druid: {
broker: 'https://bio6.gkomega.ru/druid/v2',
coordinator: 'https://bio6.gkomega.ru/druid/coordinator/v1',
indexer: 'https://bio6.gkomega.ru/druid/indexer/v1'
},
cdb: {
api: "https://bio6.gkomega.ru/cdb",
cred: "YWRtaW46YWRtaW4="
},
thetaSketchSize: 262144,
restrictedColumns: [],
defaults: {
"pivot-report": {
"статистика сайта ГИСП": {
"columns": ["Год", "Месяц"],
"rows": ["Тип ссылки"]
}
},
"PLOTTING-TR-4": {
"title": "Круговая диаграмма с детализацией",
"dataSource": "Проект ПФХД",
"dimensions": ["Этап "],
"metrics": ["Сумма"],
"reportType": "Over a period",
"sortType": "Do not sort",
"drillLevel1": "Распорядитель",
"drillLevel2": "Типология",
"drillLevel3": "Учреждение",
"allowCrossFilter": false,
},
"PLOTTING-BAR": {
"title": "Столбчатая диаграмма с детализацией",
"dataSource": "Проект ПФХД",
"dimensions": ["Этап "],
"metrics": ["Сумма"],
"reportType": "Over a period",
"sortType": "Do not sort",
"drillLevel1": "Распорядитель",
"drillLevel2": "Типология",
"drillLevel3": "Учреждение",
"drillLevel4": ""
},
"plotting-hierarchy": {
"title": "Иерархия",
"dataSource": "Проект ПФХД",
"dimensions": ["Распорядитель", "Типология", "Учреждение"],
"metrics": ["Сумма"],
"reportType": "Over a period",
"sortType": "Do not sort",
"drillLevel1": "Распорядитель",
"drillLevel2": "Типология",
"drillLevel3": "Учреждение"
},
"plotting-heatmap": {
"title": "Тепловая карта",
"dataSource": "Проект ПФХД",
"dimensions": ["Учреждение", "Этап "],
"metrics": ["Сумма"],
"reportType": "Over a period",
"sortType": "Do not sort",
"drillLevel1": "Группа должности",
"drillLevel2": "",
"drillLevel3": "",
},
"Voting": {
"title": "Опросник",
"dataSource": "Структура базового норматива затрат",
"dimensions": ["НаименованиеГосУслуги"],
"metrics": ["Доля", "Сумма"],
"reportType": "Over a period",
"sortType": "Do not sort"
},
"Radar": {
"title": "Радар",
"dataSource": "Структура базового норматива затрат",
"dimensions": ["Распорядитель", "ТипПоказателя"],
"metrics": ["Сумма"],
"reportType": "Over a period",
"sortType": "Do not sort",
"groupBy": "ТипПоказателя",
"sliderBy": "Распорядитель",
"scale": "linear",
"percentView": false,
"showCenterSumm": false,
"isPercentView": false,
"allowCrossFilter": false,
"showAxisLabels": true,
},
"PLOTTING-TR-8": {
"title": "Датчик",
"dataSource": "Принято Уволено от ДИТ",
"dimensions": [],
"reportType": "Over a period",
"metrics": ["Уволено"]
},
"PLOTTING-TR-9": {
"title": "Линейная диаграмма с детализацией",
"dataSource": "Проект ПФХД",
"dimensions": ["Этап "],
"metrics": ["Сумма"],
"reportType": "Over a period",
"sortType": "Metric",
"drillLevel1": "Учреждение",
"drillLevel2": "НаименованиеВидаРасходов",
"drillLevel3": "НаименованиеОСГУ",
"drillLevel4": ""
}
},
kc: {
"realm": 'analytics',
"clientId": 'app-analytics',
"url": 'https://bio6.gkomega.ru/auth'
}
};
В этом файле надо проверить, чтобы везде были правильные ссылки: https://omegabi2
- Запускаем сборку angular-проекта:
$ export NODE_OPTIONS="--max-old-space-size=4096"
ng build -c bio6-gkomega-ru
После успешной сборки увидим такую картинку:

PostgreSQL
Установка
Устанавливаем и настраиваем СУБД PostgreSQL.
$ sudo apt-get install language-pack-ru
$ sudo locale-gen ru_RU.UTF-8
$ sudo localectl set-locale LANG=ru_RU.UTF-8
$ sudo apt install postgresql
$ sudo -u postgres
$ createdb analytics -E UTF8 -l ru_RU.UTF-8 -T template
$ sudo -u postgres psql
postgres=# CREATE USER analytics WITH PASSWORD '123456';
postgres=# GRANT ALL PRIVILEGES ON DATABASE analytics TO analytics;
postgres=# \q
$ psql -d analytics < analytics-210226.sql
$ echo -e "host\tanalytics\tanalytics\t10.33.8.52/24\tmd5" >> /etc/postgresql/9.6/main/pg_hba.conf
$ echo -e "listen_addresses = '*'" >> /etc/postgresql/9.6/main/postgresql.conf
$ exit
$ sudo systemctl restart postgresql
Импортируем БД из дампа:
$ psql -d analytics < analytics.sql
OLAP
Проверим настройки OLAP куба:
analytics=# select * from olap_properties;
id | code | name | prop_value
------+---------------+-------------------------+--------------------------------------------------
8551 | broker | Брокер | http://omegabi.gkomega.ru/druid/v2
8301 | indexer | Индексатор | http://omegabi.gkomega.ru/druid/indexer/v1
8302 | coordinator | Координатор | http://omegabi.gkomega.ru/druid/coordinator/v1
8552 | historical | Исторический узел | http://omegabi.gkomega.ru/druid/historical/v1
8553 | middleManager | Менеджер среднего звена | http://omegabi.gkomega.ru/druid/middleManager/v1
(5 rows)
Необходимо поменять на URL (endpoint) текущего хоста:
analytics=# update olap_properties set prop_value = 'https://omegabi2/druid/v2' where id = 8551;
analytics=# update olap_properties set prop_value = 'https://omegabi2/druid/indexer/v1' where id = 8301;
analytics=# update olap_properties set prop_value = 'https://omegabi2/druid/coordinator/v1' where id = 8302;
analytics=# update olap_properties set prop_value = 'https://omegabi2/druid/historical/v1' where id = 8552;
analytics=# update olap_properties set prop_value = 'https://omegabi2/druid/middleManager/v1' where id = 8553;
После этих обновлений запросы в OLAP-куб пойдут по локальной сети на “местный” druid, а не в “обход” через интернет.
Чтобы это работало, необходимо убедиться, что есть соответствующая запись в файле /etc/hosts
$ grep omegabi2 /etc/hosts
127.0.1.1 omegabi2
Авторизация
Добавим авторизацию по паролю из нашей сети:
echo -e "host\tanalytics\tanalytics\t127.0.0.1/32\tmd5" >> /etc/postgresql/9.6/main/pg_hba.conf
MAC
Но БД в этой ОС с payara работать не будет, т.к. надо еще урегулировать Mandatory Access Control => SELinux/AppArmor/
psql -U analytics -h omegabi2 analytics
Пароль пользователя analytics:
psql: СБОЙ: error obtaining MAC configuration for user "analytics"
Исправляем ошибку MAC: в файле /etc/parsec/mswitch.conf, параметр zero_if_notfound установить в yes
# Return zero data instead of ENOENT/ENODATA in the absence of record
zero_if_notfound: yes
Payara
Скачиваем (для пример 5.20)
wget https://search.maven.org/remotecontent?filepath=fish/payara/distributions/payara/5.2020.2/payara-5.2020.2.zip -O payara-520.zip
Изначально, сервис payara 5.20 нормально заработал у меня только на java 11, хотя в документации сказано, что подойдет java 8 https://docs.payara.fish/enterprise/docs/release-notes/release-notes-20-0.html
Чтобы задать версию java, надо добавить в файл /data/payara/glassfish/config/asenv.conf строку:
#AS_JAVA="/usr/lib/jvm/java-11-openjdk-amd64"
# для Java 8 в Astra
AS_JAVA="/usr/lib/jvm/java-se-8u41-ri"
На Astra Linux payara нормально заработала с восьмой версией java.
Сервис Payara
Создаем файл сервиса /lib/systemd/system/payara.service
[Unit]
Description=Payara Server
After=network.target remote-fs.target
[Service]
User=payara
WorkingDirectory=/data/payara/glassfish
Environment=DOMAIN=domain1
#Environment=DOMAIN=production
#Environment=JAVA_PATH=/usr/lib/jvm/java-11-openjdk-amd64/bin
#Environment=PATH=/data/payara/glassfish/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-8-openjdk-amd64/bin:/usr/lib/jvm/java-8-openjdk-amd64/db/bin:/usr/lib/jvm/java-8-openjdk-amd64/jre/bin
Environment=PATH=/data/payara/glassfish/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-11-openjdk-amd64/bin:/usr/lib/jvm/java-11-openjdk-amd64/db/bin:/usr/lib/jvm/java-11-openjdk-amd64/jre/bin
#Environment=PATH=/data/payara/glassfish/bin:/data/payara/bin
Type=oneshot
RemainAfterExit=yes
ExecStart=/data/payara/glassfish/bin/asadmin start-domain $DOMAIN
ExecReload=/data/payara/glassfish/bin/asadmin restart-domain $DOMAIN
ExecStop=/data/payara/glassfish/bin/asadmin stop-domain $DOMAIN
TimeoutStartSec=300
TimeoutStopSec=30
[Install]
WantedBy=multi-user.target
Создание пула
Скачать и добавить драйвер jdbc для postgres
cd /data/payara
wget https://jdbc.postgresql.org/download/postgresql-42.2.14.jar && mv postgresql-42.2.14.jar glassfish/domains/domain1/lib
chown -R payara:payara glassfish/domains/domain1/lib
systemctl restart payara
Создать пул соединений jdbc:
/data/payara/bin/asadmin create-jdbc-connection-pool --datasourceclassname org.postgresql.xa.PGXADataSource --restype javax.sql.XADataSource --property serverName=localhost:portNumber=5432:databaseName=analytics:user=analytics:password=123456 analytics
Создать ресурс JDBC:
/data/payara/bin/asadmin create-jdbc-resource --connectionpoolid analytics jdbc/analytics
Развернуть предоставленное приложение:
#/data/payara/bin/asadmin deploy --force --name arm --contextroot arm OmegaBI-api-web-1.0-SNAPSHOT.war
/data/payara/bin/asadmin deploy --force --name analytics --contextroot analytics OmegaBI-api-web-1.0-SNAPSHOT.war
Проверка пула
Далее, создаем запускаем домен, создаем пул и проверяем пул и приложения.
su - payara
cd ~/bin
./asadmin stop-domain
./asadmin start-domain
./asadmin ping-connection-pool analytics
./asadmin list-applications
./asadmin list-jvm-options
Запускается, как java приложение через Glassfish на порту tcp6 4848
Можно войти в ПУ payara: http://10.33.8.52:4848
Смену пароля администратора можно сделать так:
~/payara-5.201/bin/asadmin change-admin-password
На запрос о вводе текущего пароля надо ввести “пустой” пароль (enter).
Установил пароль: 123456
Далее, надо разрешить удаленные подключения к ПУ Payara:
~/payara-5.201/bin/asadmin --port 4848 enable-secure-admin
~/payara-5.201/bin/asadmin stop-domain
~/payara-5.201/bin/asadmin start-domain
При подключении будет такая картинка:

Удаление пула
Иногда необходимо переделать неверно созданный пул
/data/payara/bin/asadmin list-resource-refs
/data/payara/bin/asadmin delete-resource-ref jdbc/analytics
/data/payara/bin/asadmin list-jdbc-connection-pools
/data/payara/bin/asadmin delete-jdbc-connection-pool --cascade=true analytics
Deploy backend from sources
Забираем исходный код:
cd /data/payara/work
git clone http://gitlab.gkomega.ru/omegabi/omegabi-api
Смотрим список профилей:
cd omegabi-api/OmegaBI-api-web
mvn help:all-profiles
При сборке возникла ошибка:
Non-resolvable parent POM for ru.spb.analytics:OmegaBI-api-web:1.0-SNAPSHOT: Could not find artifact ru.spb.analytics:OmegaBI-api:pom:1.0-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 4, column 13
В этом источнике обсуждается проблема:
https://stackoverflow.com/questions/7612309/maven-non-resolvable-parent-pom
Похоже, что артефакт забирается из частного репозитория, analytics.spb.ru
Установка профиля stage
mvn clean install -P stage
После сборки в каталоге target появится артефакт - war-файл.
Деплой war-приложения:
/data/payara/glassfish/bin/asadmin deploy --force --name arm --contextroot arm target/OmegaBI-api-web-1.0-SNAPSHOT.war
Если приложение уже было, то его можно убрать такой командой:
/data/payara/glassfish/bin/asadmin undeploy arm
Проверить список установленных приложений:
su -c "/data/payara/bin/asadmin list-applications" payara
Couchdb
Setup from repository
Используемая нами версия Astra Linux 1.6 совместима по пакетам с Debian Stretch (см. здесь https://webhamster.ru/mytetrashare/index/mtb0/1583222423gp4v3aatzl)
Импортируем ключ, добавляем репозиторий и ставим couchdb из пакетов, как это описано в документации: https://docs.couchdb.org/en/latest/install/unix.html#installation-using-the-apache-couchdb-convenience-binary-packages , но с некоторыми особенностями!
sudo apt update && sudo apt install -y curl apt-transport-https gnupg dirmngr
wget https://downloads.apache.org/couchdb/KEYS
sudo gpg --import KEYS
mkdir /usr/share/keyrings/
curl https://couchdb.apache.org/repo/keys.asc | gpg --dearmor | sudo tee /usr/share/keyrings/couchdb-archive-keyring.gpg >/dev/null 2>&1
source /etc/os-release
echo "deb [trusted=yes] https://apache.jfrog.io/artifactory/couchdb-deb/ stretch main" > /etc/apt/sources.list.d/couchdb.list
sudo gpg --keyserver pgpkeys.mit.edu --recv-key 0EE62FB37A00258D
sudo apt update
sudo apt install -y couchdb jq
Couchdb from source code
Сразу скажу, что у меня не получилось. Привожу заметки по этому usecase только в справочных целях.
Для версии couchdb 3.1.1 нужен Erlang версии OTP/20.
На настроенной системе это можно проверить так:
# curl -I http://localhost:5984
HTTP/1.1 200 OK
Cache-Control: must-revalidate
Content-Length: 247
Content-Type: application/json
Date: Fri, 04 Jun 2021 06:44:19 GMT
Server: CouchDB/3.1.1 (Erlang OTP/20)
X-Couch-Request-ID: 161930a7f3
X-CouchDB-Body-Time: 0
В версии Astra Linux 1.6 Smolensk встроен Erlang OTP/19
Поэтому, начинаем с установки Erlang OTP/20 из исходного кода. Пробовал ставить последнюю OTP/24 - там есть прооблема со сборкой rebar ( #wget https://erlang.org/download/otp_src_24.0.tar.gz )
sudo apt install -y pkg-config erlang-reltool libicu-dev python3 python3-pip
sudo apt install -y libncurses5-dev libncursesw5-dev libmozjs-24-dev
sudo apt install -y python-sphinx
pip3 install --upgrade sphinx_rtd_theme nose requests hypothesis
sudo apt-get install -y apt-transport-https gnupg ca-certificates git
cd /opt
git clone https://github.com/apache/couchdb.git
cd couchdb
Настройка и импорт БД
На вопрос о пароле пользователя admin, вводим “admin”
Список БД можно посмотреть так:
$ curl -u admin:admin localhost:5984/_all_dbs | jq
"_replicator",
"_users",
"grid",
"panels",
"ref-depts",
"ref-grades",
"ref-oiv-groups",
"ref-oivs",
"ref-ov-struc",
"ref-position-families",
"ref-positions"
## Вариант 2.
$ ls -1 /var/lib/couchdb/shards/00000000-7fffffff/*.couch | awk '{ FS="/"; $0=$0; print $7}'
Выгружаем данные из всех баз:
$ for DBC in _replicator _users grid panels ref-depts ref-grades ref-oiv-groupd ref-oivs ref-ov-struc ref-position-families ref-positions; do curl -u admin:admin localhost:5984/$DBC/_all_docs?include_docs=true | jq '{"docs": [.rows[].doc]}' | jq 'del(.docs[]._rev)' > $DBC.json; done
Создаем базы на целевом хосте:
$ for DBC in _replicator _users grid panels ref-depts ref-grades ref-oiv-groupd ref-oivs ref-ov-struc ref-position-families ref-positions; do curl -X PUT -u admin:admin localhost:5984/$DBC; done
Загружаем данные:
for DBC in _replicator _users grid panels ref-depts ref-grades ref-oiv-groupd ref-oivs ref-ov-struc ref-position-families ref-positions; do curl -d @$DBC.json -H "Content-Type: application/json" -u admin:admin -X POST http://localhost:5984/$DBC/_bulk_docs; done
Для одной таблицы:
for DBC in panels; do curl -d @$DBC.json -H "Content-Type: application/json" -u admin:admin -X POST http://localhost:5984/$DBC/_bulk_docs; done
Чтобы работало взаимодействие с БД необходимо поменять bind listener:
$ sed -e 's/127.0.0.1/0.0.0.0/' /opt/couchdb/etc/default.d/10-bind-address.ini
$ systemctl restart couchdb
Проверка - посмотрим список всех таблиц:
curl -u admin:admin localhost:5984/_all_dbs | jq
NiFi
Скачиваем бинарный пакет:
cd /data; wget https://apache-mirror.rbc.ru/pub/apache/nifi/1.12.1/nifi-1.12.1-bin.tar.gz
Раcпаковываем и запускаем.
user_add nifi
usermod -s /bin/bash nifi
chown -R nifi:nifi /data/nifi /var/log/nifi
su -c "/data/nifi/bin/nifi.sh start" nifi
Проверим статус:
su -c "/data/nifi/bin/nifi.sh status" nifi
Java home:
NiFi home: /opt/nifi
Bootstrap Config File: /opt/nifi/conf/bootstrap.conf
2021-02-02 10:06:43,383 INFO [main] org.apache.nifi.bootstrap.Command Apache NiFi is currently running, listening to Bootstrap on port 45349, PID=14601
Unit
Создаем unit-файл /lib/systemd/system/nifi.service
[Unit]
Description=Apache Nifi Service
[Service]
Type=forking
User=nifi
Group=nifi
Environment=DRUID_SKIP_JAVA_CHECK=1
ExecStart=/data/nifi/bin/nifi.sh start
Restart=no
[Install]
WantedBy=multi-user.target
Запускаем через systemctl
su -c "/data/nifi/bin/nifi.sh status" nifi
systemctl enable nifi
systemctl start nifi
systemctl status nifi
Kafka
listeners=PLAINTEXT://localhost:9092
Keycloak
Написан на java, работает не сервере приложений WildFly
Установка
cd /data
wget https://github.com/keycloak/keycloak/releases/download/13.0.1/keycloak-13.0.1.tar.gz -O keycloak.tgz
#wget https://downloads.jboss.org/keycloak/13.0.1/keycloak-13.0.1.zip
tar xvf keycloak.tgz
cd keycloak
Файлы конфигурации: /data/keycloak/standalone/configuration/standalone.xml, /etc/keycloak/keycloak.conf
Добавляем системного пользователя и каталоги:
user_add keycloak
mkdir -p /var/run/keycloak /etc/keycloak /var/log/keycloak
cp /data/keycloak/docs/contrib/scripts/systemd/launch.sh /data/keycloak/bin
cp /data/keycloak/docs/contrib/scripts/systemd/wildflyc.conf /etc/keycloak/
chown -R keycloak:keycloak /var/run/keycloak /etc/keycloak /var/log/keycloak
Systemd unit
cat /etc/systemd/system/keycloak.service
[Unit]
Description=The Keycloak Server
After=syslog.target network.target
Before=httpd.service
[Service]
Environment=LAUNCH_JBOSS_IN_BACKGROUND=1
EnvironmentFile=/etc/keycloak/keycloak.conf
User=keycloak
Group=keycloak
LimitNOFILE=102642
PIDFile=/var/run/keycloak/keycloak.pid
ExecStart=/data/keycloak/bin/launch.sh $WILDFLY_MODE $WILDFLY_CONFIG $WILDFLY_BIND
StandardOutput=null
[Install]
WantedBy=multi-user.target
Запускаем:
sed -i 's%WILDFLY_HOME="/opt/wildfly"%WILDFLY_HOME="/data/keycloak"%' /data/keycloak/bin/launch.sh
systemctl enable keycloak
systemctl restart keycloak
Добавить пользователей сервиса:
/data/keycloak/bin/add-user-keycloak.sh -r master -u admin -p admin
/data/keycloak/bin/add-user.sh
В данном примере поставили пароль: admin
To represent the user add the following to the server-identities definition
# первый запуск
bin/standalone.sh
Лог-файл тут: /data/keycloak/standalone/log
Реальная панель keylock доступна по URL:

Здесь надо проверить и поправить все ссылки на вкладке “Клиенты”.

Druid
Ошибка 1:
WARN [Coordinator-Exec--0] org.apache.druid.server.coordinator.rules.LoadRule - No available [_default_tier] servers or node capacity to assign segment
Сервис supervisor в демо-варианте можно остановить - он нужен для взаимодействия с kafka.
Ошибка 2:
Command[zk] failed, see logfile for more details: /data/druid/var/sv/zk.log
Решается удалением каталога метаданных /data/druid/var/zk/version-2
Guides
Logs guide
Лог-файлы по сервисам:
| Service | Sign | Logfile |
|---|---|---|
| payara | ![]() |
/home/payara/payara-5.201/glassfish/domains/domain1/logs/server.log |
| kafka | ![]() |
|
| druid | ![]() |
/home/druid/apache-druid-0.19.0/var/druid/derby.log /home/druid/apache-druid-0.19.0/var/druid/indexing-logs/*.log |
| keycloak | ![]() |
/home/keycloak/keycloak-11.0.0/standalone/log/{server.log,audit.log} |
| postgresql | ![]() |
/var/ |
| couchdb | ![]() |
/opt/couchdb/var/log/couchdb.log |
| nginx | ![]() |
|
| nifi | ![]() |
/home/nifi/nifi-1.11.4/logs/nifi-bootstrap.log; /home/nifi/nifi-1.11.4/logs/nifi-user.log |
Ports map
| Service | Port | Bind address | Tcp | App | Parent | Comment |
|---|---|---|---|---|---|---|
| couchdb | 4369 | 0.0.0.0 | v4 | erlang | epmd | |
| couchdb | 4369 | v6 | erlang | epmd | ||
| couchdb | 5984 | 0.0.0.0 | v4 | beam.smp | ||
| couchdb | random | 0.0.0.0 | v4 | beam.smp | 42xxx-46xxx | |
| druid | 1527 | 127.0.0.1 | v6 | coordinator | java | |
| druid | 2181 | v6 | zookeeper | java | ||
| druid | 8081 | v6 | coordinator | java | ||
| druid | 8082 | v6 | broker | java | ||
| druid | 8083 | v6 | historical | java | ||
| druid | 8091 | v6 | middleManager | java | ||
| druid | 8888 | v6 | router | java | ||
| kafka | 9092 | 127.0.0.1 | v6 | java | ||
| kafka | random | v6 | java | 32xxx-38xxx | ||
| keycloak | 8087 | 127.0.0.1 | v4 | java | ||
| keycloak | 8443 | 127.0.0.1 | v4 | java | ||
| keycloak | 9990 | 127.0.0.1 | v4 | java | ||
| keycloak | random | 0.0.0.0 | v4 | java | 36xxx-41xxx | |
| nifi | 9494 | 0.0.0.0 | v4 | java | ||
| nifi | 32814 | 127.0.0.1 | v6 | java | ||
| nifi | random | 127.0.0.1 | v4 | java | 39xxx-44xxx | |
| nginx | 80 | 0.0.0.0 | v4 | nginx | ||
| nginx | 80 | v6 | nginx | |||
| payara | 3700 | v6 | java | |||
| payara | 4848 | v6 | java | |||
| payara | 4900 | 10.33.8.28 | v6 | java | ||
| payara | 7676 | v6 | java | |||
| payara | 8080 | v6 | java | |||
| payara | 8181 | v6 | glassfish | java | ||
| payara | 8686 | v6 | java | |||
| postgresql | 5432 | 127.0.0.1 | v4 | postgres | ||
| postgresql | 5432 | 1 | v6 | postgres |
Credentials
- hr/1
- трудозатраты/трудозатраты
- da/1
- demo
- demo_edu
Source code repos
Доступ к репозиториям:
git clone https://gitlab.gkomega.ru/omegabi/omegabi-v02.git
git clone https://gitlab.gkomega.ru/omegabi/omegabi-api.git
Links
- Payara установка: https://blog.payara.fish/back-to-basics-installing-payara-server-5-on-ubuntu
- Настройка MAC для postgresql в Astra Linux: https://www.cyberforum.ru/postgresql/thread2023334.html
- Keycloak установка и настройка: https://www.keycloak.org/docs/latest/server_installation/index.html







