Найти тему
Тюнинг Админа

Установка и настройка сервера 1С 8.3.22 на Ubuntu 22.04LTS

Оглавление

Эта статья про установку сервера 1С на ubuntu в качестве тестовой системы, с последующим возможным переводом на нее баз данных компании. Будут приведены сравнения производительности двух тестовых баз Гилева на одном гипервизоре Proxmox, но в разных операционках:

  • Windows Server 2019 Standart + MSSQL 2019 Standart + 1C 8.3.18.1957
  • Ubuntu server 22.04LTS + PosgreSQL + pqAdmin + 1C 8.3.22.1709

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

Содержание

  • Рекомендации от автора по подготовке сервера
  • Параметры сервера
  • Параметры виртуальной машины
  • Установка Ubuntu server 22.04LTS
  • Подготовка после установки
  • Установка 1С
  • Установка HASP
  • Установка PostgreSQL
  • Установка pqAdmin
  • Установка консоли управления сервером 1С
  • Подключение и создание баз
  • Запуск диагностической базы Gilev для замера производительности и сравнение с таблицей значений на Windows сервере.
  • Настройка резервного копирования баз
  • Процедура восстановления базы из бэкапа
  • Регулярное обслуживание баз 1С
  • Публикация базы 1с на ВЭБ сервере
  • Вывод

Рекомендации от автора по подготовке сервера

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

Но мы с вами ребята упертые и добьёмся своего. Настоятельно рекомендую ставить на гипервизоре(хотя многие из вас по старинке ставят на голое железо без прослоек, в надежде выжать всё из платформы - поверьте мне максимум, что вы потеряете это 10℅ производительности), что реально облегчит вам жизнь, чем именно спросите вы, перечислю:

1) Cнятие бэкапа целиком виртуальной машины без остановки её работы.

2) Клонирование и дедупликация дисков на другой гипервизор в кластере.

3) Можно делать Snapshotы и быстро откатывать систему.

4) Для бэкапов можно использовать абсолютно любой nas или облако при этом не нужно дополнительное ПО.

В качестве гипервизора автор использует Proxmox.

Параметры сервера

-2

Дисковая подсистема raid1 m. 2 SSD 1TB.

Параметры виртуальной машины

-3

Почему так мало памяти спросите вы меня, а для теста Гилева больше и не нужно.

Установка ОС

Кратко в скриншотах пробежимся по этапу установки системы

  • Выбор языка
-4
  • Обновляем установщик
-5
  • Раскладку выбираем Русскую
-6
-7
  • Выбираем стандартный установочный образ
-8
  • Настраиваем статический адрес
-9
-10
  • Прокси не нужен
-11
  • Зеркало оставляем по умолчанию
-12
  • Настройка диска, выбираем расширенную настройку
-13
  • Выбираем free space и нажимаем Enter
-14

Если у вас два диска и более можете создать софтовый raid, выбрав пункт "Create software RAID (md)"

  • Выбираем добавить GPT партицию
-15
  • Не пишем объем а нажимаем Create, система по умолчанию использует все пространство.
-16
  • У вас должно получиться следующее
-17

Предупреждение перед форматированием, выбираем продолжить

-18
  • Создание учетной записи в системе и задание имени сервера
-19
  • Выбираем установить SSH сервер
-20
  • На этом шаге ничего выбирать не нужно
-21
  • Ждем окончание установки
-22

Все установка завершена, можно перезагружать машинку.

-23

Обновление системы и установка ПО

Для начала повышаем права пользователя:

sudo -s

Обновление зависимостей пакетной базы и репозитория:

apt update

Обновление системы:

apt upgrade -y

Для работы нам потребуется, net-tools, mc, wget:

apt install -y net-tools mc wget

Установка 1С

Подготовительные мероприятия по установке дополнительных компонентов.

Установим libenchant1c2a, без этого компонента 1с не установится.

добавим репозиторий universe:

nano /etc/apt/sources.list

deb http://cz.archive.ubuntu.com/ubuntu focal main universe

CTRL+O , CTRL+X

Обновление зависимостей пакетной базы и репозитория:

apt update

Установка libenchant1c2a:

apt install libenchant1c2a

Установка набора программ для чтение и редактирования

apt install imagemagick

Установим диспетчер драйверов для ODBC

apt install unixodbc

Установим libgsf-1-114

apt install libgsf-1-114

Установим шрифты mscorefonts:

apt install ttf-mscorefonts-installer fontconfig

Проверим удачно ли прошла установка шрифтов:

fc-cache -f -v

Для корректной работы сервера 1С на Ubuntu необходимо настроить кодировку локали на ru_RU.UTF-8 UTF-8:

dpkg-reconfigure locales

Выбираем в списке нашу кодировку.

Создаем временную папку под скачиваемые архивы ПО:

mkdir /soft

Переходим в эту папку:

cd /soft

Права на папку:

chmod 777 /soft

Рекомендация: В тестовых целях использовать 32-битный дистрибутив, он со слов разработчиков свободно работает без серверной лицензии до 5-ти пользователей, но 1с-ники опять, что-то намудрили в платформе и у меня всё прекрасно работает на 64-х битной. Хотя к концу написания статьи сервер все таки стал ругаться на лицензию.

Скачиваем дистрибутив с сайта https://releases.1c.ru/ и с помощью winscp копируем на Сервер в папочку soft.

Распаковываем наш архив:

tar -xzvf server64_8_3_22_1709.tar.gz

Устанавливаем необходимые нам пакеты 1С сервера:

./setup-full-8.3.22.1709-x86_64.run --mode unattended --enable-components server,ws,server_admin

Мы устанавливаем кластер серверов 1С, сервер администрирования кластера и модули расширения веб-сервера в пакетном режиме.

  • mode unattended - включает пакетный режим
  • enable-components - служит для указания компонентов
  • additional_admin_functions - установка утилиты административной консоли.
  • client_full - установить толстый клиент.
  • client_thin - установить тонкий клиент (без возможности работы с файловым вариантом информационной базы).
  • client_thin_fib - установить тонкий клиент, который позволяет работать с любым вариантом информационной базы.
  • config_storage_server - установить сервер хранилища конфигураций.
  • integrity_monitoring - установить утилиту контроля целостности
  • liberica_jre - установить Java Runtime Environment (JRE).
  • server - установить кластер серверов
  • server_admin - установить консоль администрирования кластера серверов.
  • ws - требуется установить модули расширения веб-сервера

1C c версии 8.3.21 стала использовать systemd-сценарий запуска кластера серверов и сервера администрирования и находится в папке с платформой:

/opt/1cv8/x86_64/8.3.22.1709/srv1cv8-8.3.22.1709@.service

Установить его можно командой:

systemctl link /opt/1cv8/x86_64/8.3.22.1709/srv1cv8-8.3.22.1709@.service

Запускаем сервер 1С

systemctl start srv1cv8-8.3.22.1709@default.service

Добавляем в автозапуск

systemctl enable srv1cv8-8.3.22.1709@default.service

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

systemctl status srv1cv8-8.3.22.1709@default.service

Проверяем, слушают ли системные процессы tcp порты:

netstat -tulnp

Сервер 1С успешно установлен и запущен.

Установка HASP

Вставляем usb ключ в сервер и настраиваем проброс в виртуальную машину. И посмотрим определился ли он в системе:

sudo lsusb | grep -i hasp

У вас будет устройство, где в имени присутствует Alladin или HASP dongle.

Загрузите пакеты вот из этого репозитория:

https://download.etersoft.ru/pub/Etersoft/HASP/stable/x86_64/Ubuntu/22.04/

wget https://download.etersoft.ru/pub/Etersoft/HASP/stable/x86_64/Ubuntu/22.04/haspd_8.23-eter3ubuntu_amd64.deb

Установим пакет и парочку дополнительных, от которых они зависят:

apt install make libc6-i386

dpkg -i haspd*.deb

Запускаем сервис haspd и проверяем, запустился ли он и слушает tcp порты:

systemctl start haspd

netstat -tulnp | grep hasp

Добавим его в автозагрузку:

systemctl enable haspd

На этом настройка hasp завершена.

Установка PostgreSQL

Есть два варианта где можно взять адаптированный дистрибутив PostgreSQL для 1С:

  • 1-й вариант скачать с официального сайта 1С https://releases.1c.ru/: https://releases.1c.ru/version_file?nick=AddCompPostgre&ver=14.5-3.1C&path=AddCompPostgre%5c14_5_3_1C%5cpostgresql_14.5_3.1C_amd64_deb.tar.bz2
  • 2-й вариант скачать с сайта компании PostgresPRO https://1c.postgres.ru/, указав под какую платформу вам нужен и контактные данные. На почту моментально придет письмо с информацией о том как установить

Ниже опишу оба варианта установки:

1-й вариант.

Скачиваем наш архив:

wget https://releases.1c.ru/version_file?nick=AddCompPostgre&ver=14.5-3.1C&path=AddCompPostgre%5c14_5_3_1C%5cpostgresql_14.5_3.1C_amd64_deb.tar.bz2

Распаковываем архив:

tar -zxvf postgresql_14.5_3.1C_amd64_deb.tar.bz2

Устанавливаем пакет:

dpkg -i postgresql*.deb

2-й вариант.

Запустите скрипт для добавления ключа репозитория:

wget https://repo.postgrespro.ru/1c-15/keys/pgpro-repo-add.sh

sh pgpro-repo-add.sh

Устанавливаем PostgreSQL:

apt-get install postgrespro-1c-15

По просьбам трудящихся, чтобы вызывать бинарные файлы PostgreSQL без указания пути создадим необходимые символические ссылки:

/opt/pgpro/1c-15/bin/pg-wrapper links update

Стартуем службу:

service postgrespro-1c-15 start

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

service postgrespro-1c-15 status

Зададим пароль пользователя postgres:

su postgres

psql -U postgres -c "alter user postgres with password 'Ваш_пароль';"

ALTER ROLE

Выходим:

exit

Установка закончена

Установка pqAdmin

pgAdmin4 – это веб-консоль администрирования и разработки с открытым исходным кодом для PostgreSQL и связанных с ней систем управления базами данных. Разработан на Python и jQuery, он поддерживает все функции, найденные в PostgreSQL. Можно использовать pgAdmin для разных целей – от написания базовых SQL-запросов до мониторинга ваших баз данных и настройки расширенных архитектур баз данных.

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

wget https://www.pgadmin.org/static/packages_pgadmin_org.pub

apt-key add packages_pgadmin_org.pub

Добавим в файл pgadmin4.list ссылку на репозиторий:

echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list

Обновим список зависимостей и пакетных баз:

apt update

Устанавливаем pgadmin4

apt install pgadmin4

Запустим начальную настройку:

/usr/pgadmin4/bin/setup-web.sh

Система попросит вас указать свой email и пароль для регистрации в системе для входа:

Creating configuration database…

NOTE: Configuring authentication for SERVER mode.

Enter the email address and password to use for the initial pgAdmin user account:

Email address: admin@company.ru

Password:

Retype password:

pgAdmin 4 - Application Initialisation

Creating storage and log directories…

We can now configure the Apache Web server for you. This involves enabling the wsgi module and configuring the pgAdmin 4 application to mount at /pgadmin4. Do you wish to continue (y/n)? y

The Apache web server is running and must be restarted for the pgAdmin 4 installation to complete. Continue (y/n)? y

Apache successfully restarted. You can now start using pgAdmin 4 in web mode at http://127.0.0.1/pgadmin4

Установка завершена и консоль pgadmin доступна по адресу:

http://Адрес сервера/pgadmin4

-24

Можно управлять нашим Postgesql подключившись к нему

-25

Установка консоли управления сервером 1С

Для того, чтобы установить консоль администратора необходимо скачать и установить технологическую платформу:

-26

При установке выбрать пункт Администрирование сервера:

-27

После установки, заходим в Меню пуск раскрыв папку с программой 1С:Предприятие увидим Регистрация утилиты администрирования серверов, правой кнопкой мышки выбираем дополнительно и перейти к расположению файла

-28

Открывается место расположение файла, выбираем Регистрация утилиты администрирования серверов правой кнопкой Запуск от имени администратора

-29

Произойдет регистрация DLL, можно запускать консоль администратора, она там же в Меню пуск.

Подключение и создание баз

Правой кнопкой по Central 1C:Enterprise 8.3 servers создать Центральный сервер, указываем имя сервера и нажимаем ок

-30

Все можно управлять нашим сервером 1с

-31

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

У меня заранее подготовлен dt-шник с диагностической базой Гилева.

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

Запускаем тест Гилева на Windows сервере с 1С и нажимаем кнопочку выполнить тест:

-32

Запускаем тест Гилева на Linux сервере с 1С и нажимаем кнопочку выполнить тест:

-33

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

Судя по тестам реализация сервера на Linux + PostgreSQL не уступает связке Windows + MSSQL в производительности(без тюнинга).

Настройка резервного копирования баз

Ниже покажу как делать резервное копирование и восстановление средствами PostgreSQL. Для этого создам скрипт:

nano /scripts/Backup_PostgreSQL

Наполняем его содержимым, добавляя комментарии:

#!/bin/bash

PATH=/sbin:/usr/sbin:/bin:/usr/bin

#Остановка службы 1С

systemctl stop srv1cv8-8.3.22.1709@default.service

#Выгрузка дампа Наша_база в локальную папку

pg_dump -Upostgres -w -Ft -b -EUTF8 -v -f "/Backup/dumps/Наша_база_`date '+%d.%m.%y'`.psql" "Наша_база"

#Сжатие дампа Наша_база в локальной папке

bzip2 "/Backup/dumps/Наша_база_`date '+%d.%m.%y'`.psql"

#Запуск Службы 1С

systemctl start srv1cv8-8.3.22.1709@default.service

#Копирование сжатого дампа в каталог NFS сервера

cp "/Backup/dumps/Наша_база_`date '+%d.%m.%y'`.psql.bz2" "/NFS_Backup/"

# удаление дампа из локальной папки

rm -f "/Backup/dumps/Наша_база_`/bin/date '+%d.%m.%y'`.psql.bz2"

Где:

/Backup/dumps — это папка на сервере для выгрузки дампов баз.

/NFS_Backup — это каталог с примонтированным сетевым диском на NFS сервере, куда собственно и складываются ежедневные бэкапы баз.

Делаю скрипт исполняемым:

chmod +x /scripts/Backup_PostgreSQL

Добавляем правило в планировщик заданий Cron:

nano /etc/crontab ---- Онлайн конфигуратор Crontab https://crontab.guru/

Добавляю в самом низу строчку:

0 22 * * 1-5 root /scripts/Backup_PostgreSQL

Это строка означит, что скрипт, будет запускаться с правами root каждый день с понедельника по пятницу в 22:00.

Процедура восстановления базы из бэкапа:

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

cd /Каталог_с_бэкапом

Распаковываем архив:

bunzip2 Наша_база_21.11.22.psql.bz2

Получаем файл дамп базы Наша_база_21.11.22.psql

В консоли провожу смену пользователя на posgres:

su postgres

Подключаюсь к нашему серверу баз данных использую учетную запись postgres:

psql

Удаляю ту базу, бэкап которой я хочу восстановить:

DROP DATABASE "Наша_база";

Cоздаю пустую базу с таким же именем:

CREATE DATABASE "Наша_база";

Отключаемся от сервера баз данных:

\q

Выходим из под пользователя postgres:

exit

Заливаем дамп Наша_база_17.11.22.psql в базу zup:

pg_restore -Upostgres -d "Наша_база" -w -v "Наша_база_17.11.22.psql"

Всё.

Регулярное обслуживание баз 1С

Рекомендую еженедельно по выходным или ночью выполнять регламентные операции по обслуживанию баз данных 1С на сервере с PostgreSQL, операции:

  • Очистка базы данных с помощью vacuumdb.
  • Перестроение индексов с помощью reindexdb.

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

1-я процедура: Чистка базы данных 1С средствами PostgreSQL

sudo -u postgres /usr/bin/vacuumdb --full --analyze --username postgres --dbname Название_базы

2-я процедура: Перестройка индексов

sudo -u postgres /usr/bin/reindexdb --username postgres --dbname Название_базы

Для автоматизации выполнения регламентных заданий в неурочное время настроим планировщик заданий Cron:

nano /etc/crontab --- онлайн конфигуратор crontab https://crontab.guru/

#Задание настроено по субботам в 0:30

30 0 * * 6 sudo -u postgres /usr/bin/vacuumdb --full --analyze --username postgres --dbname Название_базы

#Задание настроено по субботам в 2:30

30 2 * * 6 sudo -u postgres /usr/bin/reindexdb --username postgres --dbname Название_базы

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

Публикация базы 1с на ВЭБ сервере

Я стараюсь не публиковать базы на вэб сервере, но вам продемонстрирую Процедуру. Если вы не установили pgAdmin, то вэб сервер Apache у вас не инсталлирован, исправим это:

apt install apache2

Создаем директорию в корне веб сервера, где будет храниться конфигурация публикуемой базы:

mkdir -p /var/www/Название_базы

chown -R www-data:www-data /var/www/Название_базы

Публикуем базу 1С:

/opt/1cv8/x86_64/8.3.22.1709/webinst -publish -apache24 -wsdir Название_базы -dir /var/www/Название_базы -connstr "Srvr=Имя_сервера;Ref=Название_базы;" -confpath /etc/apache2/apache2.conf

Перезапускаем веб сервер и добавляем в автозагрузку:

systemctl restart apache2

systemctl enable apache2

Открываем в браузере http://ip_адрес/Название_базы/ Вы должны попасть в свою опубликованную базу 1С. Подключаться к ней можно как через браузер, так и платформу. В платформе при добавлении базы надо указать, что она на веб севере и ввести путь к нему.

Не забывайте про клиентские лицензии, они должны быть установлены на сервер, где выполнена публикация баз.

Вывод

Насколько видно из тестов в виртуальной среде производительность сборки сервера 1С на Linux заслуживает внимания и позволяет существенно сэкономить средства на внедрении или часть из них вложить в более производительный сервер.