вторник, 30 октября 2018 г.

Помещение stats_temp_directory в ramdisk

Putting stats_temp_directory on a ramdisk 

sudo mkdir /var/lib/pgsql_stats_tmp
sudo chmod 777 /var/lib/pgsql_stats_tmp
sudo chmod +t /var/lib/pgsql_stats_tmp

sudo nano /etc/fstab 

Добавить в конец:
tmpfs /var/lib/pgsql_stats_tmp tmpfs size=2G,uid=postgres,gid=postgres 0 0

sudo reboot

sudo nano /etc/postgresql/10/main/postgresql.conf
 
stats_temp_directory = '/var/lib/pgsql_stats_tmp' 

sudo reboot
 

понедельник, 29 октября 2018 г.

Используем tmpfs и ramfs для ускорения сервера 1С на Linux (Ubuntu)

Настройки PostgreSQL для работы с 1С:Предприятием. Часть 2
Используем tmpfs и ramfs для ускорения сервера 1С на Linux (Ubuntu)
CREATE TABLESPACE -- define a new tablespace
Tmp в tmpfs
PostgreSQL 9.4 in RAM HOWTO
PostgreSQL. Храним таблицу в оперативной памяти (RAM)
Использование ramdisk в Linux (ramdisk, ramfs, tmpfs) или препарирование рамдисков

sudo mkdir /mnt/ramfs
sudo mount -t ramfs none /mnt/ramfs
sudo mkdir /mnt/ramfs/pgdata
sudo chown postgres:postgres /mnt/ramfs/pgdata
sudo chmod 600 /mnt/ramfs/pgdata

sudo su postgres
psql
postgres=# CREATE TABLESPACE ram LOCATION '/mnt/ramfs/pgdata';


postgres=# DROP TABLESPACE ram;


sudo nano /etc/postgresql/10/main/postgresql.conf

temp_tablespaces = 'ram'

sudo systemctl restart postgresql.service
sudo systemctl restart srv1cv83.service



sudo nano /etc/fstab

tmpfs /mnt/ramfs/ tmpfs size=8G,uid=postgres,gid=postgres 0 0

sudo reboot











Сборка PostgreSQL из исходников с патчами от 1С

четверг, 25 октября 2018 г.

Ubuntu server 16.04.5 1С:Предприятие 8.3.13.1513 PostgreSQL, версия 10.3-3.1C

Тестовая виртуальная машина

1. Устанавливаем ubuntu 16.04.5 HWE server  без swap файла,
т.е. размечаем вручную весь диск ext4 root.

ubuntu имя компьютера u1604
ubuntu пользователь user пароль 12345
ubuntu пользователь postgres password pass
ubuntu пользователь usr1cv8 password pass

Настройки виртуальной машины - RAM (32GB)
Сеть - сетевой мост.
Проще всего пробросить в виртуальную машину лицензии 1С:Предприятия 8 посредством локального hasp.
Настройки ubuntu пользователь (привязка в скриптах) user пароль 12345, имя компьютера
u1604 сеть DHCP

После установки, Ctrl +Alt + T (окно терминала)
$ sudo apt update -y
$ sudo apt upgrade -y
$ sudo apt install mc ssh samba htop -y

Возможно sudo apt upgrade -y не пройдет из за блокировки, тогда sudo reboot и повторите с начала.

$ lsusb
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Пробросить hasp средствами VirtualBox

$ lsusb
Bus 001 Device 004: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle
Bus 001 Device 003: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

$ sudo cat /proc/cpuinfo | grep MHz
$ sudo systemctl status ondemand
$ sudo systemctl stop ondemand
$ sudo systemctl disable ondemand
$ sudo poweroff

Образ u16045.ova

2. После перезагрузки по сети можно подключиться MobaXterm
к нашей виртуальной машине (по ip или или имени )  загрузить файлы установки:
$ mkdir /home/user/test

В папку /test положить файлы:

1c-enterprise83-common_8.3.13-1513_amd64.deb
1c-enterprise83-server_8.3.13-1513_amd64.deb
postgresql_10.3_2.1C_amd64_deb.tar.bz2
postgresql_10.3_2.1C_amd64_addon_deb.tar.bz2
fonts-ttf-ms_1.0-eter4ubuntu_all.deb
aksusbd_7.81-1_amd64.deb

Исправим bug
Several regex warnings when installing latest postgres update

sudo nano /usr/sbin/pam_getenv
строка 78 заменить
$val =~ s/(?<!\\)\${([^}]+)}/$ENV{$1}||""/eg;
на
$val =~ s/(?<!\\)\$\{([^}]+)\}/$ENV{$1}||""/eg;

#sudo apt-get install libicu55  -y
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" >> /etc/apt/sources.list.d/postgresql.list'
sudo apt update -y
sudo apt-get install postgresql-common libtcl8.6 -y
mkdir -p /tmp/post
cp /home/user/test/postgresql_10.3_3.1C_amd64_deb.tar.bz2 /tmp/post/
cp /home/user/test/postgresql_10.3_3.1C_amd64_addon_deb.tar.bz2 /tmp/post/
cd /tmp/post
tar -xvf postgresql_10.3_3.1C_amd64_deb.tar.bz2
cd  postgresql-10.3-3.1C_amd64_deb
sudo dpkg -i *.deb
cd /tmp/post/
tar -xvf postgresql_10.3_3.1C_amd64_addon_deb.tar.bz2
cd postgresql-10.3-3.1C_amd64_addon_deb
sudo dpkg -i *.deb

dpkg -l | grep 10.3-3.1C | awk -F' ' '{print $2}' | sudo xargs apt-mark hold
sudo apt-mark hold postgresql-common postgresql-client-common

sudo -u postgres psql -U postgres -c "alter user postgres with password 'pass';"
sudo cp /etc/postgresql/10/main/postgresql.conf /etc/postgresql/10/main/postgresql.conf.bak
#sudo rm /etc/apt/sources.list.d/postgresql.list
#sudo apt update  -y
#Делаем проверки
#sudo systemctl status postgresql.service
#ss -tunpl | grep 5432
# $ ps aux | grep postgres | grep -- -D
postgres  4914  0.0  0.1 320972 28864 ?        S    08:37   0:00 /usr/lib/postgresql/10/bin/postgres -D /var/lib/postgresql/10/main -c config_file=/etc/postgresql/10/main/postgresql.conf

# установка 1с
cd /home/user/test
sudo apt install imagemagick -y
sudo apt install -y unixodbc libgsf-1-114 libglib2.0
#ubuntu
#sudo apt install ttf-mscorefonts-installer -y
#debian
#wget  http://ftp.ru.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.6_all.deb
#sudo  apt install -y xfonts-utils cabextract
#sudo dpkg -i ttf-mscorefonts-installer_3.6_all.deb
# фонты от Etersoft
#ubuntu
cd /home/user/test
sudo  apt install -y cabextract
sudo dpkg -i fonts-ttf-ms_1.0-eter4ubuntu_all.deb
#debian
#sudo dpkg -i fonts-ttf-ms_1.0-eter4debian_all.deb
cd /home/user/test
sudo dpkg -i 1c-enterprise83-common_8.3.13-1513_amd64.deb
sudo dpkg -i 1c-enterprise83-server_8.3.13-1513_amd64.deb
#sudo apt -f -y install
sudo chown -R usr1cv8:grp1cv8 /opt/1C
sudo echo -e "pass\npass\n" | sudo passwd usr1cv8
#sudo service srv1cv83 start
sudo systemctl start srv1cv83.service
#sudo systemctl status srv1cv83.service
#sudo service srv1cv83 status
#ss -tlnp | grep :15
#---------------------------------------------------------------------------------
cd /home/user/test
sudo dpkg -i aksusbd_7.81-1_amd64.deb
#sudo apt-get install -f -y

#sudo systemctl status aksusbd.service
#sudo systemctl status hasplmd.service

$ sudo reboot
#---------------------------------------------------------------------------------
sudo apt install libc6-i386
cd /home/user/test
sudo dpkg -i haspd-modules_7.60-eter1ubuntu_amd64.deb
sudo dpkg -i haspd_7.60-eter1ubuntu_amd64.deb
sudo apt install -f
sudo systemctl restart haspd.service
sudo systemctl status haspd.service
#--------------------------------------------------------------------------------- 

ubuntu пользователь user пароль 12345
ubuntu пользователь postgres password pass
ubuntu пользователь usr1cv8 password pass

Подключаемся и создаем базу, но не грузим конфигурацию



Файл postgresql.conf не настраиваем

Сохраняем консервы u16045_pg10.3-3.ova


Настраиваем postgresql.conf на 32 Gb

Глава 19. Настройка сервера
Настройка Postgres Pro для решений 1С
Настройки PostgreSQL для работы с 1С:Предприятием. Часть 2

sudo nano /etc/postgresql/10/main/postgresql.conf

Добавить в конец файла:

#---------------------------------------------------------------------
#https://kb.1c.ru/articleView.jsp?id=91
#shared_buffers = RAM/4
shared_buffers = 12288MB
temp_buffers = 256MB
#work_mem = RAM/32..64 или 32MB..128MB
work_mem = 128MB
#maintenance_work_mem = RAM/16..32 или work_mem * 4 или 256MB.4GB
maintenance_work_mem = 512MB
#effective_cache_size = RAM – shared_buffers
effective_cache_size = 24GB
effective_io_concurrency = 2
#random_page_cost = 1.5-2.0 для RAID, 1.1-1.3 для SSD
random_page_cost =  1.1

autovacuum = on
log_autovacuum_min_duration = 0
#autovacuum_max_workers = NCores/4..2 но не меньше 4
autovacuum_max_workers =  4
autovacuum_naptime = 20s
bgwriter_delay = 20ms
bgwriter_lru_multiplier = 4.0
bgwriter_lru_maxpages = 400
synchronous_commit = off
#checkpoint_segments = 32..256 < 9.5
checkpoint_completion_target = 0.9
#min_wal_size = 512MB .. 4GB > =9.5
min_wal_size = 1GB
#max_wal_size = 2 * min_wal_size > =9.5
max_wal_size = 2GB
ssl = off
fsync = on
commit_delay = 1000
commit_siblings = 5
#temp_tablespaces = ‘NAME_OF_TABLESPACE’
#row_security = off >= 9.5
row_security = off
max_files_per_process = 8000
from_collapse_limit = 20
join_collapse_limit = 20
standard_conforming_strings = off
escape_string_warning = off
max_locks_per_transaction = 256
max_connections = 1000

log_min_duration_statement = 0
#log_line_prefix = '%t [%p]: [%l-1] ' или '%t [%p]: [%l-1] user=%u,db=%d,client=%h '
log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h '
log_checkpoints = on
log_connections = on
log_disconnections = on
log_lock_waits = on
log_temp_files = 0
log_autovacuum_min_duration = 0
lc_messages='C'
log_duration = on
log_statement = all
log_destination = stderr


online_analyze.enable = on
shared_preload_libraries = 'online_analyze, plantuner'
online_analyze.table_type = 'temporary'
plantuner.fix_empty_table = 'on'
online_analyze.verbose = 'off'
#---------------------------------------------------------------------


sudo reboot

$ cat /etc/postgresql/10/main/postgresql.conf | grep -v '#' | grep -v "^$"

воскресенье, 14 октября 2018 г.

OpenVPN сервер ubuntu 16.04 на виртуальной машине VBOX

Создаем виртуальную машину vbox
ubuntu 16.04.5 HWE
1 ядро 512Мб
сетевой мост
без своп раздела

sudo apt update -y
sudo apt upgrade -y
sudo apt install mc ssh samba -y

Зайдем по ssh 

sudo apt install openvpn easy-rsa -y

Откроем firefox (в ubuntu), откроем эту страничку  и скопируем в буфер скрипт настройки сети:

$ nano start.sh

Скопируем из буфера следующий скрипт, в котором Вам нужно исправить ip и адрес шлюза в соответствии со своей сетью:

#!/bin/bash
#Небольшой тюнинг:
sudo /bin/su -c "echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'net.ipv6.conf.default.disable_ipv6 = 1' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'net.ipv6.conf.lo.disable_ipv6 = 1' >> /etc/sysctl.conf"
sudo  /bin/su -c "echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'vm.swappiness=0' >> /etc/sysctl.conf"
sudo sysctl -p
sudo  systemctl restart networking.service

# Настройка sudo journalctl -b sudo journalctl -b -1 sudo journalctl --list-boots
sudo sed -i 's/#Storage=auto/Storage=persistent/' /etc/systemd/journald.conf

#Добавим swap file to an Ubuntu 16.04:
sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo cp /etc/fstab /etc/fstab.bak
sudo echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

#Зададим ip для клиентов внутри vpn
sudo mkdir -p /etc/openvpn/ccd
sudo /bin/su -c "echo 'ifconfig-push 10.8.55.2 255.255.255.0' >> /etc/openvpn/ccd/client1"
sudo /bin/su -c "echo 'ifconfig-push 10.8.55.3 255.255.255.0' >> /etc/openvpn/ccd/client2"
sudo /bin/su -c "echo 'ifconfig-push 10.8.55.4 255.255.255.0' >> /etc/openvpn/ccd/client3"
sudo /bin/su -c "echo 'ifconfig-push 10.8.55.5 255.255.255.0' >> /etc/openvpn/ccd/client4"
sudo /bin/su -c "echo 'ifconfig-push 10.8.55.6 255.255.255.0' >> /etc/openvpn/ccd/client5"
sudo /bin/su -c "echo 'ifconfig-push 10.8.55.7 255.255.255.0' >> /etc/openvpn/ccd/client6"
sudo /bin/su -c "echo 'ifconfig-push 10.8.55.8 255.255.255.0' >> /etc/openvpn/ccd/client7"
sudo /bin/su -c "echo 'ifconfig-push 10.8.55.9 255.255.255.0' >> /etc/openvpn/ccd/client8"
sudo /bin/su -c "echo 'ifconfig-push 10.8.55.10 255.255.255.0' >> /etc/openvpn/ccd/client9"

Сохраним файл start.sh$ sudo sh start.sh

$ sudo reboot

Генерация ключей
$ cd ~
$ make-cadir ~/openvpn-ca
$ cd ~/openvpn-ca
$ source vars
$ ./clean-all
$ ./build-ca
$ ./build-key-server server
....
Certificate is to be certified until Sep  4 14:15:23 2028 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

$ ./build-dh
$ openvpn --genkey --secret keys/ta.key

Генерация ключей для клиента
$ cd ~/openvpn-ca
$ source vars
$ ./build-key client1
.....
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
$ ./build-key client2
...............................
$ ./build-key client20

Скопируем ключи:
$ cd ~/openvpn-ca/keys
$ sudo cp ca.crt ca.key server.crt server.key ta.key dh2048.pem /etc/openvpn
$ sudo gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf
$ sudo cp /etc/openvpn/server.conf /etc/openvpn/server.conf.bak

Настройка сервера:
$ sudo nano /etc/openvpn/server.conf

Скопируем настройки server.conf и вставим (заменим) в /etc/openvpn/server.conf:

#port 443
port 443 port-share 127.0.0.1 4443
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key  # This file should be kept secret
dh dh2048.pem
topology subnet
server 10.8.55.0 255.255.255.0
;ifconfig-pool-persist ipp.txt
client-config-dir ccd
# раскоментировать push "redirect-gateway def1" для маршрутизации интернета
;push "redirect-gateway def1"
;push "redirect-gateway def1 bypass-dhcp"
;push "dhcp-option DNS 208.67.222.222"
;push "dhcp-option DNS 208.67.220.220"
client-to-client
;duplicate-cn
keepalive 10 120
tls-auth ta.key 0 # This file is secret
key-direction 0
;cipher BF-CBC        # Blowfish (default)
cipher AES-128-CBC   # AES
;cipher DES-EDE3-CBC  # Triple-DES
auth SHA256
comp-lzo
;max-clients 100
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log openvpn.log
;log-append  openvpn.log
verb 3
;mute 20

Сохранить.

Запуск:
$ sudo systemctl start openvpn@server
$ sudo systemctl enable openvpn@server
$ sudo systemctl status openvpn@server
   -------------------------------------------------------------------------------------------------------------------------
Упакуем сертификаты
$ mkdir -p ~/client-configs/files
$ chmod 700 ~/client-configs/files
$ cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf
$ cp ~/client-configs/base.conf ~/client-configs/base.conf.bak

Для проверки установим внутри локальной сети
$ ip a
192.168.1.231
Вместо 192.168.1.231 должен быть внешний ip
порт 443 сервера OpenVPN должен быть проброшен на роутере во вне по tcp

Настроим базовые настройки клиента, 192.168.1.231 ip адрес сервера:
$ nano ~/client-configs/base.conf
Заменить на: 
client
dev tun
proto tcp
;proto udp
remote 192.168.1.231 443
;remote my-server-1 1194
;remote my-server-2 1194
resolv-retry infinite
nobind
;user nobody
;group nogroup
persist-key
persist-tun
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]
;mute-replay-warnings
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
tls-auth ta.key 1
cipher AES-128-CBC
auth SHA256
key-direction 1
comp-lzo
verb 3
;mute 20

Сохранить.

$ nano ~/client-configs/make_config.sh
Добавить:
#!/bin/bash
# First argument: Client identifier
KEY_DIR=~/openvpn-ca/keys
OUTPUT_DIR=~/client-configs/files
BASE_CONFIG=~/client-configs/base.conf
cat ${BASE_CONFIG} \
    <(echo -e '<ca>') \
    ${KEY_DIR}/ca.crt \
    <(echo -e '</ca>\n<cert>') \
    ${KEY_DIR}/${1}.crt \
    <(echo -e '</cert>\n<key>') \
    ${KEY_DIR}/${1}.key \
    <(echo -e '</key>\n<tls-auth>') \
    ${KEY_DIR}/ta.key \
    <(echo -e '</tls-auth>') \
    > ${OUTPUT_DIR}/${1}.ovpn
Сохранить.
$ chmod 700 ~/client-configs/make_config.sh
$ cd ~/client-configs
$ ./make_config.sh client1
.........................................
$ ./make_config.sh client20

Подключиться по csp и скачать конфигурационные файлы для openvpn из  /home/user/client-configs/files
$ mkdir -p  /home/user/test/vu
Первый раз:
$ scp user@XXX.XXX.XXX.XXX:/home/user/client-configs/files/* /home/user/test
Настроить  vpn клиента
S sudo reboot

Затем подключиться по vpn
-------------------------------------------------------------------------------------------
$ scp user@10.8.55.1:/home/user/client-configs/files/* /home/user/test

$ sudo openvpn --config /etc/openvpn/client1.ovpn
-------------------------------------------------------------------------------------------


 -------------------------------------------------------------------------------------------------------------------------
Перед настройкой ufw, OpenVPN должен быть настроен и проверен!!!Доступ к серверу по ssh будет только через OpenVPN!!!
Можно будет зайти только через Access console панели управления!

#Еще добавим nat (если нужна маршрутизация интернет-трафика) :
#$ sudo nano /etc/rc.local

#добавляем строки до exit 0

#    iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
#    iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
#    iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

#сохраняем
#$ sudo reboot

$ sudo ufw  reset
---------------------------------------------------------------------------------------------------------------------------
Настройка ufw
$ sudo ufw allow out on tun0
$ sudo ufw allow in on tun0
$ sudo  ufw allow 443/tcp
$ sudo ufw allow from 192.168.0.0/24 proto tcp to any port 22
$ sudo ufw default deny outgoing
$ sudo ufw default deny forward
$ sudo ufw disable
$ sudo ufw enable
$ sudo ufw status verbose



Удаление правил:
$ sudo ufw status numbered
......... 
$ sudo ufw delete 2

$ sudo reboot

Можно подключать 1С-ки.

----------------------------------------------------------------------------------------------------
$ apt list --all-versions openvpn
Listing... Done
openvpn/xenial-updates,xenial-security,now 2.3.10-1ubuntu2.1 amd64 [installed]
Для windows
Клиента качаем отсюда, версия 2.3.18
OpenVPN 2.3.18 (old stable)


Установка клиента OpenVPN ubuntu 16.04 desktop
Для контролируемого доступа службу не запускаем! 
Настройка на ручной запуск
$ sudo apt-get install openvpn -y
$ sudo reboot
$ sudo systemctl disable openvpn.service
$ sudo systemctl status openvpn.service
● openvpn.service - OpenVPN service
   Loaded: loaded (/lib/systemd/system/openvpn.service; enabled; vendor preset: enabled)
   Active: inactive (dead)

How can I run OpenVPN as root in the background, in a script?

Ручной запуск:
# Настройки не здесь /etc/openvpn/client.conf  тут будет автоматически запускаться!!!
Запустить до перезагрузки:
$ sudo openvpn --config /home/user/client.conf --daemon

Прервать соединение:
$ sudo killall openvpn

$ sudo systemctl status openvpn.service
[sudo] пароль для user:
● openvpn.service - OpenVPN service
   Loaded: loaded (/lib/systemd/system/openvpn.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
$ ping 10.8.55.1
PING 10.8.55.1 (10.8.55.1) 56(84) bytes of data.
^C
--- 10.8.55.1 ping statistics ---
6 packets transmitted, 0 received, 100% packet loss, time 5101ms
$ sudo openvpn --config /home/user/client.conf --daemon
$ ping 10.8.55.1
PING 10.8.55.1 (10.8.55.1) 56(84) bytes of data.
64 bytes from 10.8.55.1: icmp_seq=1 ttl=64 time=53.8 ms
^C
$ sudo systemctl status openvpn.service
● openvpn.service - OpenVPN service
   Loaded: loaded (/lib/systemd/system/openvpn.service; disabled; vendor preset: enabled)
   Active: inactive (dead) 
----------------------------------------------------------------------------------------------------
Автозапуск:
Автоматический запуск:
Кладем /home/user/clien1.ovpn по csp
Переименуем:
$ sudo mv /home/user/client1.ovpn /etc/openvpn/client.conf
Запускаться будет в любом  случае после однократного запуска
без настройки /etc/default/openvpn
$ sudo nano /etc/default/openvpn
Раскоментировать:
# AUTOSTART="all"
AUTOSTART="all"
Сохранить.

$ sudo reboot

Серврер будет по ssh 10.8.55.2

Узнать внешний ip (без настройки маршрутизации ip не изменяется!)
$ wget -O - -q icanhazip.com

---------------------------------------------------------------------------------------------------------------------------------------------
На плохих каналах нужно обеспечить перезапуск после падения канала:

$ ping -c 1 8.8.8.8 || sudo service openvpn stop && sudo service openvpn start
$ ping -c 1 10.8.2.1 || sudo service openvpn stop && sudo service openvpn start
 
$ sudo su - root
# mkdir /etc/scripts/
# nano /etc/scripts/openvpn.sh 
Вставитьв файл: 
#!/bin/bash
# Проверка OpenVPN соединения
ping -c 1 10.8.2.1 || service openvpn stop && service openvpn start
Сохранить:
# chmod +x /etc/scripts/openvpn.sh 
# nano /etc/crontab 
Добавить в конец
*/5 *  *  *  *   root    /etc/scripts/openvpn.sh
 
И теперь каждые 5 мин будет проверяться наличие канала, по пингу
и если пинга нет, то происходит попытка его поднятия.

четверг, 11 октября 2018 г.

Вернуть старый формат записи журнала регистрации

Вернуть старый формат записи журнала регистрации

Вернуть старый формат записи журнала регистрации


Новый формат журнала регистрации (SQLite, *.lgd ) появился в платформе 1С:Предприятие 8 начиная с версии 8.3.5.
Само по себе обновление на 8.3.5 (или даже более новые релизы) не приводит к смене формата ЖР.
Но вот если на 8.3.5+ создать новую базу (или пересоздать старую) с очисткой папки 1Cv8Log, то при отсутствии в ней файла 1Cv8.lgf будет создан ЖР уже нового формата (*.lgd)
На большом количестве пользователей он может оказаться хуже старого режим работы. Чтобы вернуть старый режим записи — для этого (при остановленном сервере 1С):
Найдите в папке базы (…\srvinfo\reg_<PortNo>\<GUID>) папку журнала регистрации (1Cv8Log),
далее из папки 1Cv8Log удалить все файлы (или переместить, или переименовать папку),
в папке 1Cv8Log создать пустой файл 1Cv8.lgf.
Повторите эти шаги для каждой базы.
Для снижения нагрузки полезно уменьшать детализацию логирования ТЖ (например, оставить только ошибки)
Можно использовать RAM-диск для хранения журнала регистрации
Неудача нового формата для крупных масштабов признана 1С фактом с версии 8.3.12 возможности интерактивно выбирать формат журнала регистрации (т.е. опытные люди выбирают старый формат).

Конфигурация сервера 1С ubuntu, postgresql, desktop




Выбор SSD диска для сервера 1С ubuntu postgres

вторник, 9 октября 2018 г.

Конфигурация сервера supermicro

Mid-Tower / Mini-Tower Solutions


SuperServer 5039AD-T
C7Z170-SQ
OS Compatibility Chart

SuperWorkstation 5039A-iL
X11SAE
OS Compatibility Chart   

SuperServer 5039D-i
X11SSL-F
OS Compatibility Chart



Обратить внимания 3 жестких диска:

SSD диск  INTEL DC D3-S4610 SSDSC2KG480G801 480Гб

Серверный SSD диск для системы и субд.
Отличаетеся большой надежностью
3072 TBW
3 перезаписи всего объема накопителя в день (DWPD - Drive Writes Per Day) в течение 5 лет


Жесткий диск TOSHIBA Enterprise Capacity MG04ACA400E, 4Тб
Диск для бекапов.

SSD накопитель SAMSUNG 860 EVO MZ-76E250BW 250Гб, 2.5", SATA III

Дешевый SSD диск для тестирования другой версии платформы 1С,
при параллельной загрузке с этого диска.

150 TBW
0.33 перезаписи всего объема накопителя в день (DWPD - Drive Writes Per Day) в течение 5 лет


воскресенье, 7 октября 2018 г.

Сравнение процессоров для сборки начального сервера для 1С

Сравнение процессоров

Сравниваем в пересчете на одно ядро

Для работы 1С важно быстродействие процессора на одно ядро.
А уж сколько ядер нужно - тестировать на стенде с реальными базами.
Интегральная скорость работы пропорциональна  Single Thread Rating теста
Что бы не получилось вот так .


Порецессоры Desktop

Intel Core i7-6700 @ 3.40GHz vs Intel Core i7-6700K @ 4.00GHz



Intel Core i7-7700 @ 3.60GHz vs Intel Core i7-7700K @ 4.20GHz


Intel Core i7-8086K @ 4.00GHz vs Intel Core i7-8700K @ 3.70GHz



Intel Core i9-7940X @ 3.10GHz vs Intel Core i9-7900X @ 3.30GHz


Процессоры Server

Intel-Xeon-E3-1240-v3-vs-Intel-Xeon-E3-1240-v5-vs-Intel-Xeon-E3-1240-v6



Intel-Xeon-E3-1275-v5-vs-Intel-Xeon-E3-1275-v6


Intel-Xeon-E3-1280-v5-vs-Intel-Xeon-E3-1280-v6


Intel-Xeon-E3-1285-v4-vs-Intel-Xeon-E3-1285-v6









среда, 3 октября 2018 г.

Ubuntu server 16.04.5 1С:Предприятие 8.3.13.1513 PostgreSQL, версия PostgresPro 10.5

PostgresPro 10.5.2
Установка Postgres Pro Standard в Linux
Тестовая виртуальная машина

1. Устанавливаем ubuntu 16.04.5 HWE server  без swap файла,
т.е. размечаем вручную весь диск ext4 root.

ubuntu имя компьютера u1604
ubuntu пользователь user пароль 12345
ubuntu пользователь postgres password pass
ubuntu пользователь usr1cv8 password pass

Настройки виртуальной машины - RAM (32GB)
Сеть - сетевой мост.
Проще всего пробросить в виртуальную машину лицензии 1С:Предприятия 8 посредством локального hasp.
Настройки ubuntu пользователь (привязка в скриптах) user пароль 12345, имя компьютера
u1604 сеть DHCP

После установки, Ctrl +Alt + T (окно терминала)
$ sudo apt update -y
$ sudo apt upgrade -y
$ sudo apt install mc ssh samba htop -y

Возможно sudo apt upgrade -y не пройдет из за блокировки, тогда sudo reboot и повторите с начала.

$ lsusb
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Пробросить hasp средствами VirtualBox

$ lsusb
Bus 001 Device 004: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle
Bus 001 Device 003: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

$ sudo cat /proc/cpuinfo | grep MHz
$ sudo systemctl status ondemand
$ sudo systemctl stop ondemand
$ sudo systemctl disable ondemand
$ sudo poweroff

Образ u16045.ova

2. После перезагрузки по сети можно подключиться MobaXterm
к нашей виртуальной машине (по ip или или имени )  загрузить файлы установки:
$ mkdir /home/user/test

В папку /test положить файлы:

1c-enterprise83-common_8.3.13-1513_amd64.deb
1c-enterprise83-server_8.3.13-1513_amd64.deb
fonts-ttf-ms_1.0-eter4ubuntu_all.deb
aksusbd_7.81-1_amd64.deb

Исправим bug
Several regex warnings when installing latest postgres update

sudo nano /usr/sbin/pam_getenv
строка 78 заменить
$val =~ s/(?<!\\)\${([^}]+)}/$ENV{$1}||""/eg;
на
$val =~ s/(?<!\\)\$\{([^}]+)\}/$ENV{$1}||""/eg;

sudo apt-get update -y

sudo apt-get upgrade -y
sudo apt-get install -y wget gnupg2

wget -O - http://repo.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO | sudo apt-key add -
sudo sh -c 'echo deb http://repo.postgrespro.ru/1c-archive/pg1c-10.5/ubuntu/ xenial main > /etc/apt/sources.list.d/postgrespro-1c.list'
sudo apt-get update -y
sudo apt-get install -y postgrespro-1c-10
sudo /opt/pgpro/1c-10/bin/pg-setup initdb

sudo service postgrespro-1c-10 start

#sudo service postgrespro-1c-10 status
sudo -u postgres psql -U postgres -c "alter user postgres with password 'pass';"
#ss -tunpl | grep 5432
sudo cp /var/lib/pgpro/1c-10/data/postgresql.conf /var/lib/pgpro/1c-10/data/postgresql.conf.bak

# установка 1с
cd /home/user/test
sudo apt install imagemagick -y
sudo apt install -y unixodbc libgsf-1-114 libglib2.0
#ubuntu
#sudo apt install ttf-mscorefonts-installer -y
#debian
#wget  http://ftp.ru.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.6_all.deb
#sudo  apt install -y xfonts-utils cabextract
#sudo dpkg -i ttf-mscorefonts-installer_3.6_all.deb
# фонты от Etersoft
#ubuntu
cd /home/user/test
sudo  apt install -y cabextract
sudo dpkg -i fonts-ttf-ms_1.0-eter4ubuntu_all.deb
#debian
#sudo dpkg -i fonts-ttf-ms_1.0-eter4debian_all.deb
cd /home/user/test
sudo dpkg -i 1c-enterprise83-common_8.3.13-1513_amd64.deb
sudo dpkg -i 1c-enterprise83-server_8.3.13-1513_amd64.deb
#sudo apt -f -y install
sudo chown -R usr1cv8:grp1cv8 /opt/1C
sudo echo -e "pass\npass\n" | sudo passwd usr1cv8
#sudo service srv1cv83 start
sudo systemctl start srv1cv83.service
#sudo systemctl status srv1cv83.service
#sudo service srv1cv83 status
#ss -tlnp | grep :15
cd /home/user/test
sudo dpkg -i aksusbd_7.81-1_amd64.deb
#sudo apt-get install -f -y

#sudo systemctl status aksusbd.service
#sudo systemctl status hasplmd.service

Откорректировать hosts
sudo nano /etc/hosts

127.0.0.1       localhost
127.0.0.1       u1604


$ sudo reboot

ubuntu пользователь user пароль 12345
ubuntu пользователь postgres password pass
ubuntu пользователь usr1cv8 password pass

Подключаемся и создаем базу, но не грузим конфигурацию



Файл postgresql.conf не настраиваем
Настройка Postgres Pro для решений 1С

Сохраняем консервы u16045_pgp10.5.ova

понедельник, 1 октября 2018 г.

Ubuntu server 16.04.5 1С:Предприятие 8.3.13.1513 PostgreSQL, версия PostgresPro 10.5.2 standart

PostgresPro 10.5.2
Установка Postgres Pro Standard в Linux
Тестовая виртуальная машина

1. Устанавливаем ubuntu 16.04.5 HWE server  без swap файла,
т.е. размечаем вручную весь диск ext4 root.

ubuntu имя компьютера u1604
ubuntu пользователь user пароль 12345
ubuntu пользователь postgres password pass
ubuntu пользователь usr1cv8 password pass

Настройки виртуальной машины - RAM (32GB)
Сеть - сетевой мост.
Проще всего пробросить в виртуальную машину лицензии 1С:Предприятия 8 посредством локального hasp.
Настройки ubuntu пользователь (привязка в скриптах) user пароль 12345, имя компьютера
u1604 сеть DHCP

После установки, Ctrl +Alt + T (окно терминала)
$ sudo apt update -y
$ sudo apt upgrade -y
$ sudo apt install mc ssh samba htop -y

Возможно sudo apt upgrade -y не пройдет из за блокировки, тогда sudo reboot и повторите с начала.

$ lsusb
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Пробросить hasp средствами VirtualBox

$ lsusb
Bus 001 Device 004: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle
Bus 001 Device 003: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

$ sudo cat /proc/cpuinfo | grep MHz
$ sudo systemctl status ondemand
$ sudo systemctl stop ondemand
$ sudo systemctl disable ondemand
$ sudo poweroff

Образ u16045.ova

2. После перезагрузки по сети можно подключиться MobaXterm
к нашей виртуальной машине (по ip или или имени )  загрузить файлы установки:
$ mkdir /home/user/test

В папку /test положить файлы:

1c-enterprise83-common_8.3.13-1513_amd64.deb
1c-enterprise83-server_8.3.13-1513_amd64.deb
fonts-ttf-ms_1.0-eter4ubuntu_all.deb
aksusbd_7.81-1_amd64.deb

Исправим bug
Several regex warnings when installing latest postgres update

sudo nano /usr/sbin/pam_getenv
строка 78 заменить
$val =~ s/(?<!\\)\${([^}]+)}/$ENV{$1}||""/eg;
на
$val =~ s/(?<!\\)\$\{([^}]+)\}/$ENV{$1}||""/eg;

sudo sh -c 'echo "deb http://repo.postgrespro.ru/pgpro-10/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/postgrespro.list'
wget --quiet -O - http://repo.postgrespro.ru/pgpro-10/keys/GPG-KEY-POSTGRESPRO | sudo apt-key add -
sudo apt-get update
sudo apt-get install -y postgrespro-std-10
#sudo /opt/pgpro/std-10/bin/pg-wrapper links update
sudo /opt/pgpro/std-10/bin/pg-setup initdb
#sudo /opt/pgpro/std-10/bin/pg-setup service start
sudo service postgrespro-std-10 start
#sudo service postgrespro-std-10 status
sudo -u postgres psql -U postgres -c "alter user postgres with password 'pass';"
#ss -tunpl | grep 5432 

# установка 1с
cd /home/user/test
sudo apt install imagemagick -y
sudo apt install -y unixodbc libgsf-1-114 libglib2.0
#ubuntu
#sudo apt install ttf-mscorefonts-installer -y
#debian
#wget  http://ftp.ru.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.6_all.deb
#sudo  apt install -y xfonts-utils cabextract
#sudo dpkg -i ttf-mscorefonts-installer_3.6_all.deb
# фонты от Etersoft
#ubuntu
cd /home/user/test
sudo  apt install -y cabextract
sudo dpkg -i fonts-ttf-ms_1.0-eter4ubuntu_all.deb
#debian
#sudo dpkg -i fonts-ttf-ms_1.0-eter4debian_all.deb
cd /home/user/test
sudo dpkg -i 1c-enterprise83-common_8.3.13-1513_amd64.deb
sudo dpkg -i 1c-enterprise83-server_8.3.13-1513_amd64.deb
#sudo apt -f -y install
sudo chown -R usr1cv8:grp1cv8 /opt/1C
sudo echo -e "pass\npass\n" | sudo passwd usr1cv8
#sudo service srv1cv83 start
sudo systemctl start srv1cv83.service
#sudo systemctl status srv1cv83.service
#sudo service srv1cv83 status
#ss -tlnp | grep :15
cd /home/user/test
sudo dpkg -i aksusbd_7.81-1_amd64.deb
#sudo apt-get install -f -y

#sudo systemctl status aksusbd.service
#sudo systemctl status hasplmd.service

$ sudo reboot

ubuntu пользователь user пароль 12345
ubuntu пользователь postgres password pass
ubuntu пользователь usr1cv8 password pass

Подключаемся и создаем базу, но не грузим конфигурацию

Откорректировать hosts
sudo nano /etc/hosts

127.0.0.1       localhost
127.0.0.1       u1604




Файл postgresql.conf не настраиваем

Сохраняем консервы u16045_pg10.5.ova