Это старая версия документа!
Все сервисы ПАК Астра запускаются и работают от имени выделенного пользователя «dozor», перед установкой сервисов ПАК Астра необходимо создать пользователя и группу и указать домашнюю папку и отключить вход:
useradd -d /var/lib/dozor -m -s /sbin/nologin dozor
Необходимо создать пользователя СУБД, от имени которого будут работать с базой данных все сервисы. Имя пользователя, используемое в шаблонах конфигурации и данном руководстве «dozor»:
Для создания пользователя необходимо выполнить следующие запросы:
-Вход в PostgeSQL:
psql -U postgres
Если запуск постгресса производится впервые- будет выдан запрос пароля пользователя.
-Создание пользователя dozor:
CREATE USER dozor WITH PASSWORD 'YourPassword';
где YourPassword - пароль пользователя dozor.
Выход:
\q
После создание пользователя, необходимо создать базу данных, которая будет использоваться сервисами ПАК Астра. Имя базы данных, используемое в шаблонах конфигурации и примерах в данном руководстве «dozor».
Для создания БД необходимо выполнить следующий запрос:
CREATE DATABASE dozor OWNER = dozor;
Для корректной работы базы необходимо убедиться в присутствии нужных библиотек, и добавить недостающие библиотеки. Для этого необходимо проделать следующие шаги.
Необходимо добавить по пути, для 32-ух битной системы:
/usr/lib/postgresql-13/lib
Для 64-х битной системы:
/usr/lib64/postgresql-13/lib64
библиотеку IPCSend и сделать ее исполняемой. И файлы расширения по пути:
/usr/share/postgresql-13/extension
IPSend.control и IPCsend—1.0.sql, предварительно поменяв пути расположения библиотеки внутри файлов.
Проверить наличие библиотек для 32-ух битной системы:
ls /usr/lib/*.so
Для 64-ех битной системы:
ls /usr/lib64/*.so
Сравнить со списком необходимых библиотек и, при необходимости, импортировать в папку недостающие библиотеки для 32-ух битной системы:
/usr/lib
Для 64-ех битной:
/usr/lib64
Список необходимых библиотек:
libconfig.so libcurl_helper.so libfbtree.so libhex.so libipc_receiver_udp.so liblprintf.so libmodule_common.so libmyexp.so libprofiler.so libxprintf_dump.so
Зайти в базу данных dozor через командную строку:
psql -U postgres -d dozor
Далее, находясь в базе ввести следующую комманду:
CREATE EXTENSION "IPCSend";
После ввода комманды выйти:
\q
PGAgent - это агент планирования заданий для баз данных Postgres, способный выполнять многоэтапные пакетные сценарии или сценарии оболочки и задачи SQL по сложным расписаниям.
Для установки необходимо ввести комманду:
emerge --ask pgagent
Далее в файле:
/etc/conf.d/pgagent
в строке PG_HOST=«localhost» заменить localhost на 127.0.0.1
Так же в файле:
/etc/init.d/pgagent
в строке
command_user="pgagent"
заменить pgagent на root и в строке
checkpath --file --owner root:pgagent --mode 0660 "${PGA_LOG}"
удалить :pgagent, что бы получилась строка:
checkpath --file --owner root --mode 0660 "${PGA_LOG}"
Далее добавляем pgdagent в автозагрузку
rc-update add pgagent default
И запускаем
rc-service pgagent start
Для работы скриптов и задач необходимо импортировать дамп.
Перемещаемся в папку db_update
cd /root/db_update
Следующим шагом необходимо загрузить дамп базы данных с сервера разработчика и последующий импорт:
Перед импортом базы данных необходимо добавить расширение в базу, для этого нужно зайти в БД postgres
psql -U postgres postgres
Ввести пароль при запросе и далее ввести команду для создания расширения:
Create extension pgagent;
После создания базы данных, нужно сделать импорт существующей базы данных.
Перед установкой (обновлением) базы данных в любом месте файловой системы, например в домашнем каталоге текущего пользователя:
cd ~
необходимо создать рабочую папку:
mkdir db_update
и перейти в нее:
cd db_update
Далее следует убедиться, что она пуста (например, от предыдущих обновлений) или просто очистить ее:
rm *
игнорируя предупреждения об отсутствующих файлах, если они вдруг
возникнут:
rm: cannot remove '*': No such file or directory 38
Далее импорт дампа для работы pgagent:
psql -U postgres < (путь до фала)/pgagent_jobs.sql
Следующим шагом необходимо загрузить дамп базы данных с сервера разработчика(стандартное название базы 116_empty.sql):
Импорт базы данных dozor:
psql -U postgres -d dozor < (путь до фала)/dump_dozor.sql
на запрос пароля, ввести пароль суперпользователя базы данных и дождаться окончания загрузки базы данных.
После успешного завершения дампа необходимо вызвать функцию создания партиции, необходимой для записи ивентов.
Для этого необходимо войти в БД
psql -U postgres -d dozor
Ввести пароль, и уже в коммандной строке постгресса ввести следующее:
CALL "AddNewEventsPartition"(EXTRACT(MONTH FROM (current_date))::INTEGER, EXTRACT(YEAR FROM (current_date))::INTEGER);
После всех проделанных манипуляций необходимо дать доступ pgagent к базе данных, путем прописывания пароля
Для этого нужно перейти в директорию /root
cd
создать файл .pgpass
touch .pgpass
и записать туда следующие данные
127.0.0.1:5432:postgres:postgres:<PASSWORD_P> 127.0.0.1:5432:dozor:postgres:<PASSWORD_P>
,где <PASSWORD_P> - ваш пароль от суперпользователя postgres.
После этого сохранить файл и дать ему права
chmod 0600 .pgpass
Затем необходимо добавить pgagent в автозагрузку
rc-update add pgagent default
На этом установка, настройка и импорт базы данных в PostgreSQL завершены. Для удобство работы с базой можно использовать PGAdmin, установку которого можно увидеть в этой статье
Для корректной работы сценариев, на сервере необходимо сделать несколько действий.
В настройках d3srv.cfg, находящейся по пути
cd /var/lib/dozor
В разделе [other] вписать или раскомментировать строку script_compiler.
script_compiler = /var/lib/dotnet/2.1/clr/corerun /var/lib/dotnet/app/scamp/SCAMPCompile.dll
И по пути
cd /var/lib