Имеем фаршированный сервер HP DL380G6 с установленным на нем гипервизором VMware ESXi 4.1
Будем ставить 64 битный сервер 1С версии 8.2.15-289 + PostgreSQL 9.0.4 от Etersoft на x86_64 CentOS 6.1 (сервер 1C 8.2.14.540 не заработал без костылей. Постоянно отваливался ragent и в ТЖ писал всяческую чушь про Address already in use…)
Качаем http://mirror.yandex.ru/centos/6.1/isos/x86_64/CentOS-6.1-x86_64-minimal.iso
Создаем виртуальную машину в гипервизоре и ставим.
Затем:
yum update
ставим все жизненно необходимое:
yum install crontabs tmpwatch sudo wget file
Подправим файл /etc/hosts (Клиент 1С и сам сервер исключительно общается только по именам) оставим там только строки:
127.0.0.1 localhost 192.168.1.1 buxsrv
отключаем файервол, дабы не мешался пока:
chkconfig iptables off service iptables stop chkconfig ip6tables off service ip6tables stop
отключаем SELinux (1C предыдущих версий не работал с ним, да и нам на сервере в локальной сети он особо не нужен)
правим файл /etc/sysconfig/selinux
SELINUX=disabled
Теперь добавляем необходимые репозитории и ставим все, что потребуется серверу 1С:
rpm -ivh http://dl.atrpms.net/el6.1-x86_64/atrpms/stable/atrpms-repo-6-4.el6.x86_64.rpm rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -ivh http://elders.princeton.edu/data/puias/unsupported/5/x86_64/msttcorefonts-2.0-1.noarch.rpm yum install xorg-x11-xfs chkfontpath ttf2pt1 unixODBC yum install ImageMagick
По зависимостям на сервер свалится куча всякого. Возможно, возникнет ошибка вида:
/usr/bin/update-gdk-pixbuf-loaders: line 54: /etc/gtk-2.0/x86_64-unknown-linux-gnu/gdk-pixbuf.loaders: No such file or directory
если так, то делаем небольшой изврат:
cd /etc/gtk-2.0/ ln -s x86_64-redhat-linux-gnu x86_64-unknown-linux-gnu yum reinstall gtk2 rm x86_64-unknown-linux-gnu
Теперь все готово для установки постгреса и сервера 1С.
перезагружаемся и скачиваем все rpm кроме postgre-etersoft9.0-seltaaddon-9.0.4-eter8rhel.x86_64.rpm отсюда:
http://updates.etersoft.ru/pub/Etersoft/Postgres@Etersoft/stable/x86_64/CentOS/6/
далее напускаем на скаченное:
yum localinstall --nogpgcheck *.rpm
инициализируем базу:
su postgres initdb -D /var/lib/pgsql/data --locale=ru_RU.UTF-8 exit
Добавляем постгрес в автозагрузку и стартуем его:
chkconfig postgresql on service postgresql start
Задаем пароль для пользователя постгреса:
su postgres psql postgres postgres=# alter user postgres with password 'YOUR_PASSWORD'; ALTER ROLE postgres=# \q exit
с базой будем соединяться локально, поэтому подправим файл /var/lib/pgsql/data/pg_hba.conf
раскомментируем строку
host all all 127.0.0.1/32 trust
и заменим trust на md5
host all all 127.0.0.1/32 md5
Далее правим /var/lib/pgsql/data/postgresql.conf
listen_addresses = '127.0.0.1' # будем конектиться только локально effective_cache_size = 16384MB # выставим в половину от установленной на сервер памяти (в моем случае под виртуалку выделил 32 гига) fsync = on # оставил как есть, т.к. у меня SCSI контроллер с включенным write-back. fsync = off дает прирост в 1 попугай в тесте Гилёва, поэтому посчитал надежность важнее.
остальные настройки требуют детального изучения и ставяться исходя из вашего железа и базы 1С.
Все, постгрес настроен, переходим к установке сервера 1С:
качаем технологическую платформу 8.2 http://dl01.v8.1c.ru/get/Info/Platform/8_2_15_289/rpm64.tar.gz (нужно авторизоваться на сайте http://users.v8.1c.ru)
распаковываем архив и ставим
yum --nogpgcheck localinstall *.rpm
затем запускаем скрипт config_server
cd /opt/1C/v8.2/x86_64/utils/ ./config_server
если выдаст ls: cannot access /lib/libc-*.so: No such file or directory
то поставим 32 битные либы glibc
yum install glibc.i686
также может ругнуться на отсутствие libglib (потому что ищет его в /usr/lib64, а он находится в /lib64)
делаем символьную ссылку
ln -s /lib64/libglib-2.0.so.0.2200.5 /usr/lib64/libglib-2.0.so
запускаем скрипт еще раз и если он призадумался и ничего не выдал, то все ОК!
результатом должен быть файл type.xml созданный в /opt/1C/v8.2/x86_64/conf/grcmncfg
Т.к. клиент 1С-ки соеденяется с сервером только по имени, то ставим самбу (можно как вариант прописать соответствие IP к имени на клиентских машинах в файл hosts)
yum install samba
Правим /etc/samba/smb.conf под свою сеть
Ставим на автостарт демон nmbd (если нужно только NETBIOS имя)
chkconfig nmb on
На этом сервер готов (1С-ка покупалась с софтварными лицензиями, тем самым избежал увлекательного приключения с HASP ключами), переходим к клиентским машинам.
Ставим клиент с компонентом «Администрирование сервера 1С:Предприятия»
Запускаем «Администрирование серверов 1С Предприятия» Кликаем правой кнопкой по «Central 1C:Enterprise 8.2 servers» и создаем «Центральный сервер 1С:Предприятия 8.2»
Запускаем «1C Предприятие» и создаем базу:
В диалоге «Добавление информационной базы/группы» выбираем «Тип СУБД:» PostgreSQL
в поле «Сервер баз данных» прописываем 127.0.0.1
пользователь: postgres и соответственно ваш пароль, который задавали после инициализации базы постгреса.
На последок можно задействовать простенькие правила файервола:
#!/bin/bash # Очищаем предыдущие записи iptables -F # Установка политик по умолчанию iptables -P INPUT DROP iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT # Разрешаем локальный интерфейс iptables -A INPUT -i lo -j ACCEPT # Закрываемся от кривого icmp iptables -I INPUT -p icmp -f -j DROP # REL, ESTB allow iptables -A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT # Защита сервера SSH от брутфорса iptables -A INPUT -p tcp --syn --dport 22 -m recent --name root --set iptables -A INPUT -p tcp --syn --dport 22 -m recent --name root --update --seconds 30 --hitcount 3 -j DROP # Разрешаем рабочие порты iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p udp --dport 137 -j ACCEPT iptables -A INPUT -p tcp --dport 1540 -j ACCEPT iptables -A INPUT -p tcp --dport 1541 -j ACCEPT iptables -A INPUT -m multiport -p tcp --dports 1560:1591 -j ACCEPT # Разрешение главных типов протокола ICMP iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT iptables -A INPUT -p icmp --icmp-type 11 -j ACCEPT iptables -A INPUT -p icmp --icmp-type 12 -j ACCEPT
ну и кинуть в /etc/cron.daily скрипт бэкапа/оптимизации базы.
Я бэкаплю базу на виндовую шару (для монтирования шары нужно поставить cifs-utils командой yum install cifs-utils).
#!/bin/sh OLDDAYS=60 DATE=`date +%F` BACKUPDIR=/mnt/tmp.grnt/base_main/daily BACKUPNAME=$BACKUPDIR/main.psql.$DATE PGSQLOG=/home/pgsql/data/pg_log T1V=`date +%H:%M:%S` vacuumdb -d main -z -f -q -U postgres T2V=`date +%H:%M:%S` /usr/bin/logger -t PGSQL "Vacuum MAIN base is DONE. Start at $T1V and stop at $T2V" mount -t cifs -o user=garupd,pass=your_password "//192.168.1.50/backups41C" /mnt/tmp.grnt if [ -d /mnt/tmp.grnt/base_main/daily ] ; then T1D=`date +%H:%M:%S` pg_dump -U postgres -Fc -Z9 -c -f $BACKUPNAME main T2D=`date +%H:%M:%S` /usr/bin/logger -t PGSQL "Dumping MAIN base is DONE. Start at $T1D and stop at $T2D" # Deleting old backups and postgres logs find $BACKUPDIR $PGSQLOG -mtime +$OLDDAYS -delete umount /mnt/tmp.grnt else /usr/bin/logger -t PGSQL "Backup base MAIN FAILED!!!" fi ## RESTORE COMMAND ## ## ## pg_restore -U postgres -c -d DATABASE_NAME -Fc DATABASE_BACKUP_FILE ## #####################
P.S. На моем сервере тест Гилёва выдает в среднем 30 попугаев. Помимо 1С 8.2 на сервере в вируалках крутиться терминальный Windows 2003 R2 с 1С 7.7 с 20 активными пользователями и два web сервера под Ubuntu с CMS-ками.
К сожалению на данный момент ваша инструкция не работоспообна. После такой настройки скрипт ./config_server выдает некоторое количество внутренних ошибок. Запустить типовую UT 11.0.8.13 на таком сервере не возможно. Происходит «Ошибка инициализации графической подсистеамы.»
Вот такая вот прелесть:
[root@1CSERVER utils]# ./config_server
./config_server: line 148: file: command not found
./config_server: line 149: [: =: unary operator expected
./config_server: line 148: file: command not found
./config_server: line 149: [: =: unary operator expected
./config_server: line 193: [: too many arguments
./config_server: line 193: [: too many arguments
./config_server: line 193: [: too many arguments
./config_server: line 193: [: too many arguments
./config_server: line 193: [: too many arguments
Инструкцию подправил. вышеуказанные ошибки сыплются из-за отсутствия в минимальной установке CentOS пакета file
просто установите его и все будет ОК.
yum install file
В момент запуска скрипта config_server, выдает Ca not detect font directory, please specify it!
Файл type.xml не создается! libglib-2.0.so — такого файла вообще нет в системе, хотя glib x86 и x64 установлен!?
Проверьте есть ли в системе установленный пакет msttcorefonts-2.0-1.noarch
Можно еще указать скрипту явный путь к шрифтам:
./config_server /usr/share/fonts/msttcorefonts
в статье написано, что нужно сделать символьную ссылку
ln -s /lib64/libglib-2.0.so.0.2200.5 /usr/lib64/libglib-2.0.so
и будет вам libglib-2.0.so
Спасибо, все получилось!
Очень хотелось бы увидеть ваш postgres.conf
собрал по вашей инструкции, железо подобное
по тесту гилева больше 12 очков набрать не получается… хотя железо явно простаивает. Может направление укажите куда копать? 🙂
Желательно иметь шуструю дисковую подсистему ну и обязательно поиграться с параметрами postgresql.conf
Мой postgresql.conf
Мое железо:
Proliant DL380R06 Product ID: 470065-082
CPU E5520 (2×2.26 GHz)
Memory DDR3-1333 64Gb (8x8Gb)
RAID P410i wBBWC 512Mb RAID10 8x146Gb SAS 10k HDD SFF
Гипервизор VMware ESXi 4.1.0 348481
Под виртуалку с 1С выделено 32Gb оперативы.
Клиенты подключены по гигабитной сети (Используются две интегрированные сетевые объедененные для балансировки нагрузки средствами гипервизора)
Скрин теста Гилева
ОГРОМНОЕ СПАСИБО за Ваш труд!!!!
Вы очень помогли!
Ставил Centos 6.2 + (8.2.15.301) + УТ 11.
Все пошло, единственно:
— повозился с начальным паролем postgres (при первом запуске «su postgres» запросило пароль — по альтернативным источника нашел как сбросить)
— при первом запуске клиента из-под винды выдало «Ошибка инициализации графической подсистемы».
Доустановил glibc.i686 и перезагрузил сервер. Не уверен, что было связано с glibc.i686, но после этого клиент запустился без ошибок.
Вижу, что Вы «сильно в теме», а не подскажете: в чем отличия Postgres от Etersoft и 1С? И почему Вы выбрали Etersoft, а не 1С-овский Postgres?
Выбрал Postgres от Ethersoft т.к. версия посвежее 9.0.4
Отличия от Postgres с сайта 1С здесь.
У меня крутится БГУ 1.0 проблем не возникает.
Вы упомянули о сбросе пароля у postgres и каких-то источников. Может для удобства остальных сообщите способ сброса, дабы народ не искал в недрах интернета.
Желательно с сылкой на статью и кратком описании.
Типо переустановите postgres с пустым паролем 🙂
Спасибо.
Честно говоря, сразу не записал, а теперь подзабыл.
Но вроде пользовался чем-то типа такой инструкции:
http://nix-sa.blogspot.com/2011/02/postgresql.html
Обновляем Сервер 1С Centos:
# Скачиваем новые rpm пакеты 1С (users.v8.1c.ru)
# Обновляем 1С сервер (в той папке, куда скачали), переконфигурируем
service srv1cv82 stop
yum —nogpgcheck localinstall *.rpm
cd /opt/1C/v8.2/x86_64/utils/
./config_server
service srv1cv82 start
# Кому надо (как мне) — обновляем веб-публикацию
cd /opt/1C/v8.2/x86_64/
./webinst -apache22 -wsdir ut -dir /var/www/html/ut -connstr File=/ххх/ххх/1c/ххх_ut11 -confpath /etc/httpd/conf/httpd.conf
service httpd restart
Postgres не трогал.
Проверено на:
Centos 6.2 Linux 2.6.32-220.17.1.el6.x86_64
1С:Предприятие 8.2 (8.2.15.301)->(8.2.15.317) (Linux Server)
Ремарка к фразе «Postgres не трогал.»:
У меня сервер работает в файловой версии.
Есть вопрос:
centos 6.2(final)+postgre 9.0(9.0.4)+ 1c8.2.15
серверная часть (хоть и не с первого пинка) завелась и вроде все ок.
Подцепился консолью управления 1с, создал инфобазу.
запустил 1С — подключиться к существующей базе Postgre и все. висит экран 1с (сплэш) с надписью Loading configuration. Уже много часов. Не подскажете куда копать?
Можно попробовать создать базу не через административную консоль, а стандартным способом добавления базы:
запустить 1С Предприятие > Добавить > (Создание новой информационной базы) Далее > (Создание информационной базы без конфигу…) Далее > (На сервере 1С:Предприятия) Далее > (там все указать и галочка — Создать базу данных в случае ее отсутствия должна стоять)
Потом зайти в конфигуратор и загрузить конфу из dt файла.
Извиняюсь что не отвечал так долго — разбирался с Centos.
Действительно если сделать именно таким образом все ок. Пока что еше не импортировал то что у нас в файловой лежит — но уже напорядок лучше.
А есть объяснение этому феномену?
у разработчиков 1С, наверное, есть)))
все установил, вроде ьез проблем, но когда конектюсь через ммс выдает ошибку сетевого доступа к серверу, подключение не установлено, так как конечный компьютер отверг запрос на подключение,
смотрел netstat порт 1540 сервак слушает, фаервол и селинукс отключены, в чем может быть проблема?
возможны варианты:
— локальный файервол у клиента (типа касперский, аутпост и т.п.)
— проверить выключено ли защищенное соединение (указывается при добавлении базы)
— проверить пингуется ли сервер по имени
— проблема с сетью (попробовать пинговать сервер большими пакетами)
— кривизна самой 1С (встречаются проблемы при назначении специфических прав юзерам; также можно попробовать остановить сервер 1С и удалить /home/usr1cv82/.1cv82/1C/1Cv82/reg_1541/snccntx)
в с:\windows\system32\drivers\etc\ в файле hosts пропиши resolv для твоего сервера
ip_address domain_name
не вешается демон на порт 1541, куда рыть?
т.е. ragent не стартует и в процессах не висит?
или стартует и падает через некоторое время?
не стартует
Ребят выручайте, не могу установить chkfontpath, ругается на это — chkfontpath-1.10.1-6mdv2010.0.x86_64 requires xfs. Что делать подскажите?
Ругается на зависимости…
Если качнул пакет
chkfontpath
, то ставь так:yum localinstall твой_пакет_chkfontpath.rpm
Всё равно выдаёт туже ошибку, как с этим бороться?
Спасибо, разобрался, у меня оказывается не было установлено xfs.
А какова скорость вашей дисковой подсистемы??? А то у меня более 20 попугаев Гилева не получаетя.
контроллер HP Smart Array P410i, стоят 8 (SAS) SFF 6G Dual Port 10K HDD в RAID10
вывод
hdparm
из виртуалки с 1С-койhdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 1172 MB in 3.00 seconds = 390.66 MB/sec
hdparm -T /dev/sda
/dev/sda:
Timing cached reads: 14974 MB in 2.00 seconds = 7498.45 MB/sec
Подскажите пожалуйста, в скрипте бэкапа Main base это название своей базы?
Если имеете ввиду это
echo `date +%b' '%d' '%T` `hostname` Begin vacuum MAIN BASE >> /var/log/cron
то это просто любой текст ни на что не влияющий.
Добрый день. Подскажите пожалуйста, после включения правил файрвола 1с через некоторое время перестаёт запускаться, а у тех у кого запущена жутко тормозит. Всё делал по этой инструкции, только у меня USB ключ на 5 пользователей.
Правила те, которые указаны в статье выше? С ними никаких проблем не может быть.
Копируем из статьи, вставляем в текстовый файл, делаем его исполняемым, затем выполняем.
Далее сохраняем правила:
/etc/init.d/iptables save
Вывод команды
/etc/init.d/iptables status
должен выглядеть так:Table: filter
Chain INPUT (policy DROP)
num target prot opt source destination
1 DROP icmp -f 0.0.0.0/0 0.0.0.0/0
2 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
4 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
5 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 flags:0x17/0x02 recent: SET name: root side: source
6 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 flags:0x17/0x02 recent: UPDATE seconds: 30 hit_count: 3 name: root side: source
7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
8 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:137
9 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1540
10 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1541
11 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 1560:1591
12 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 3
13 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 8
14 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 11
15 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 12
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
Здравствуйте, у меня 1С нормально стартанула, все вроде бы работает, но почему-то не происходит обмен заказами — заказы нормально выгружаются, но не загружаются — пишет, что не может прочитать xml файл (та же база, но на винде в файловом варианте все выгружает/загружает как надо)
Это уже проблема 1С. Включить логи 1С и смотреть там.
Добрый день. Не подскажите как быть. В одной из фирм стояла виртуальная машина на Hyperv. На ней была установлена CentOS + PostgresSQL. Виртуалка остановилась. Что там делал их специалист не знаю. Но сейчас на руках имею после него Папку с образами жестких дисков от виртуалки и папку с Postgres извлеченную оттуда. Бекапов никаких нет. Т.е. базы из папки Postgres надо подключить ко вновь установленному Postgres. Пробовал заменять папку Data, не проходит. Заменял файлы БД во вновь созданной базе из старой, тоже не идет. Решил помучать образы из HyperV, подключил их в Virtual Box, система загрузилась, но там командный интерфейс, что то можно сделать, что бы хоть бекап сделать из Virtual box, а потом во вноб установленном Postgres загрузить эти бекапы? Объясните как новичку в Postgres. СПецов нет соответствующих.
Можно сделать дамп базы комндой:
pg_dump -U postgres -Fc -Z9 -c -f dump_name base
где:
postgres — имя пользователя базы
dump_name — файл создаваемого дампа
base — имя базы
и потом восстановить на другом хосте:
pg_restore -U postgres -c -d base -Fc dump_name