docs/install.md

235 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Инструкция по установке
## Установка необходимых пакетов для ОС RockyLinux 9.1
Для установки системы мониторинга e-node требуется операционная система RockyLinux 9.1 с установленными набором программного обеспечения:
- Архиватор Tar
- Контейнеризатор приложений Docker
- Служба настройки и запуска многоконтейнерных приложений Docker
### Установка Tar
В случае отсутствия пакета tar на сервере можно воспользоваться rpm пакетом в составе комплекта системы мониторинга e-node находящимся в папке ./yum/tar/
yum install -y ~/enode/yum/tar/*
Проверить версию пакета tar можно с помощью команды
tar --version
> [root@server]# tar --version
> tar (GNU tar) 1.34 Copyright (C) 2021
> Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or
> later <https://gnu.org/licenses/gpl.html>. This is free software: you
> are free to change and redistribute it. There is NO WARRANTY, to the
> extent permitted by law.
> Written by John Gilmore and Jay Fenlason.
### Установка Docker и docker compose
В случае отсутствия пакета docker и утилиты docker compose на сервере можно воспользоваться rpm пакетами в составе комплекта системы мониторинга e-node находящимся в папке ./yum/docker-ce/
yum install -y ~/enode/yum/docker-ce/*
После успешной установки необходимо запустить службу и поставить ее на автозапуск после перезагрузки системы
systemctl start docker
systemctl enable docker
Проверить статус работы службы docker можно с помощью команды
systemctl status docker
Проверить версию службы docker можно с помощью команды
docker --version
> [root@server]# docker --version
> Docker version 24.0.2, build cb74dfc
Проверить версию утилиты docker compose можно с помощью команды
docker compose version
> [root@server]# docker compose version
> Docker Compose version v2.18.1
## Установка серверной части enode
```bash
./install.sh
enode app start
```
```
# НЕ АКТУАЛЬНО
## Инструкция по установке e-node
```bash
docker network create enode_network
```
```bash
groupadd --gid 1001 docker
groupmod -g 1001 docker
useradd -m --uid 1001 --gid 1001 docker -s /bin/bash
```
```bash
docker images --all
docker image prune --all
```
### Установка основной базы данных (clickhouse)
```bash
cp ../../2023.07.01_enode/build/images/clickhouse_clickhouse-server.image .
docker load --input ./clickhouse_clickhouse-server.image
docker load --input ./clickhouse-server-v23.3.7.5-lts.tar
mkdir -p ./{data,logs,config}
chown -Rf 1001:1001 config data logs
docker run -d \
--name=enode_clickhouse \
--restart=unless-stopped \
--ulimit nofile=262144:262144 \
--network enode_network \
--publish 127.0.0.1:8123:8123 \
--publish 127.0.0.1:9000:9000 \
--publish 127.0.0.1:9009:9009 \
clickhouse/clickhouse-server:23.3.7.5
docker exec -it enode_clickhouse /bin/bash
docker logs -f --tail 10000 enode_clickhouse
curl 127.0.0.1:8123
docker stop enode_clickhouse && docker rm enode_clickhouse
```
### Установка in-memory keyvalue базы данных (redis)
```bash
docker pull
cp ../../2023.07.01_enode/build/images/redis.image .
docker load --input ./redis.image
docker run -d \
--name=enode_redis \
--restart=unless-stopped \
--network enode_network \
--publish 127.0.0.1:6379:6379 \
--publish 127.0.0.1:8001:8001 \
--volume ./data:/data \
redis
```
### Установка координации распределённых систем (zookeeper)
```bash
docker pull zookeeper:3.8
docker save --output ./zookeeper:3.8.tar zookeeper:3.8
docker load --input ./zookeeper:3.8.tar
cp ../../2023.07.01_enode/build/images/bitnami_zookeeper_3_8_0.image .
docker load --input ./bitnami_zookeeper_3_8_0.image
docker run -d \
--name=enode_zookeeper \
--restart=unless-stopped \
--network enode_network \
--user 1001:1001 \
--publish 127.0.0.1:2181:2181 \
--env ZOO_SERVER_ID=1 \
--env ALLOW_ANONYMOUS_LOGIN=yes \
--env USER_ID=1001 \
--env GROUP_ID=1001 \
--volume ./data:/data \
--volume ./datalog:/datalog \
--volume ./conf:/conf \
zookeeper:3.8
bitnami/zookeeper:3.8.0
docker logs -f --tail 100 enode_zookeeper
docker stop enode_zookeeper && docker rm enode_zookeeper
```
### Установка enode_core
```bash
cp ../../2023.07.01_enode/build/images/registry_entcor_enode_enode_core_latest.image .
docker load --input ./registry_entcor_enode_enode_core_latest.image
docker images
registry.entcor/enode/enode_core
docker run -d \
--name=enode_core \
--restart=unless-stopped \
--network enode_network \
--publish 127.0.0.1:4009:4009 \
--publish 127.0.0.1:9229:9229 \
--env CH_URL=http://enode_clickhouse:8123 \
--env REDIS=redis://enode_redis:6379 \
--env ZOOKEEPER=enode_zookeeper:2181 \
--volume ./data:/host_scripts \
registry.entcor/enode/enode_core
docker logs -f --tail 10000 enode_core
docker stop enode_core && docker rm enode_core
```
### Установка enode_ui
```bash
cp ../../2023.07.01_enode/build/images/registry_entcor_enode_enode_ui_latest.image .
docker load --input ./registry_entcor_enode_enode_ui_latest.image
docker images
registry.entcor/enode/enode_ui
docker run -d \
--name=enode_ui \
--restart=unless-stopped \
--network enode_network \
registry.entcor/enode/enode_ui
docker logs -f --tail 10000 enode_ui
docker stop enode_ui && docker rm enode_ui
```
### Установка enode_lb
```bash
cp ../../2023.07.01_enode/build/images/ghcr_io_entcor_nginx_load_balancer_1_0_0.image .
docker load --input ./ghcr_io_entcor_nginx_load_balancer_1_0_0.image
docker images
ghcr.io/entcor/nginx_load_balancer
docker run -d \
--name=enode_lb \
--restart=unless-stopped \
--network enode_network \
--publish 127.0.0.1:80:80 \
--env FRONT_1_PORT_80_TCP_ADDR=enode_ui \
--env FRONT_REMOTE_PORT=80 \
--env FRONT_REMOTE_PATH=/ \
--env FRONT_PATH=/ \
--env FRONT_EXPOSE_PROTOCOL=http \
--env FRONT_HOSTNAME=localhost \
--env FRONT_LOG_LEVEL=warn \
--env API_2_PORT_4009_TCP_ADDR=enode_core \
--env API_REMOTE_PORT=4009 \
--env API_PATH=/api/ \
--env API_EXPOSE_PROTOCOL=http \
--env API_HOSTNAME=localhost \
--env API_REWRITE='^/api/(.*) /$$1 break' \
--env APIWS_3_PORT_4009_TCP_ADDR=enode_core \
--env APIWS_REMOTE_PORT=4009 \
--env APIWS_PATH=/socket.io/ \
--env APIWS_EXPOSE_PROTOCOL=http \
--env APIWS_HOSTNAME=localhost \
ghcr.io/entcor/nginx_load_balancer:1.0.0
docker logs -f --tail 10000 enode_lb
docker stop enode_lb && docker rm enode_lb
```