0. Общие моменты
Для корректной работы приведенного ниже скрипта необходимо, чтобы на серверах 1С Предприятия, на которых активированы программные лиценизии, были установлены следующие пакеты: ring, license-tools, zabbix-agent, zabbix_sender, а так же запущен RAS.
ВАЖНО: Ответственность за любые последствия, возникшие в результате внесения изменений в работающую систему по материалам данной статьи, лежат исключительно на лице, внесшим данные изменения!
1. Настройки на сервере, содержащем программные лицензии
1.1. В конфигурационном файле zabbix_agentd.conf необходимо задать параметр Hostname (необходим для работы zabbix_seneder).
1.2. Добавить конфигурационный файл для zabbix-agent, содержащий необходимое значение параметра UserParameter
UserParameter=1c.rmngr.license.session[*],/etc/zabbix/scripts/1c_rmngr_license.sh used $1
Текст 1. Содержимое файла /etc/zabbix/zabbix_agentd.d/1c-rmngr.conf
1.3. Перезапустить сервис zabbix-agent
[fedotov@server_a ~]$ sudo systemctl restart zabbix-agent
1.4. Создать задание для cron, к примеру, выполняемое каждый час. Для этого в каталоге /etc/cron.hourly необходимо создать файл следующего содержания и установить для него права на исполнение
#!/bin/bash
/usr/bin/zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k 1c.rmngr.license -o $(/etc/zabbix/scripts/1c_rmngr_license.sh info) > /dev/null
Текст 2. Содержимое файла /etc/cron.hourly/1c.rmngr.license.sh.
2. Настройки на Zabbix-сервере
2.1. Сделать импорт шаблона 1c_rmngr_template.xml
2.2. Добавить данный шаблон узлу, на котором активированы программные лицензии.
2.3. В случае, если RAS у вас развернут на нестандартных портах, то изменить макрос {$RAS_PORT}, унаследованный от шаблона, на необходимое значение.
2.4. С помощью макроса {$LIC_UTIL_LIMIT} можно установить пороговое значение отношения количества использованных лицензий (сеансов) к максимальному количеству сеансов, лицензируемых активированными на данном сервере лицензиями. По превышению данного значения срабатывает триггер с уровнем важности "Предупрежедние" (значение по-умолчанию — 0.9).
Информация: Если количество использованных лицензий равно максимальному количеству лицензируемых сеансов, то срабатывает триггер с уровнем важности "Высокая".
Приложение 1. Файл 1c_rmngr_template.xml (шаблона Zabbix)
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
<version>4.2</version>
<date>2024-08-27T15:11:35Z</date>
<groups>
<group>
<name>Templates (Kaminsoft)</name>
</group>
</groups>
<templates>
<template>
<template>Template App 1C Enterprise License Server</template>
<name>Template App 1C Enterprise License Server</name>
<description/>
<groups>
<group>
<name>Templates (Kaminsoft)</name>
</group>
</groups>
<applications>
<application>
<name>[1С] Программные лицензии</name>
</application>
</applications>
<items>
<item>
<name>[1C/Лицензии] Сводная информация</name>
<type>2</type>
<snmp_community/>
<snmp_oid/>
<key>1c.rmngr.license</key>
<delay>0</delay>
<history>2h</history>
<trends>0</trends>
<status>0</status>
<value_type>4</value_type>
<allowed_hosts/>
<units/>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<params/>
<ipmi_sensor/>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>[1С] Программные лицензии</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
<preprocessing/>
<jmx_endpoint/>
<timeout>3s</timeout>
<url/>
<query_fields/>
<posts/>
<status_codes>200</status_codes>
<follow_redirects>1</follow_redirects>
<post_type>0</post_type>
<http_proxy/>
<headers/>
<retrieve_mode>0</retrieve_mode>
<request_method>0</request_method>
<output_format>0</output_format>
<allow_traps>0</allow_traps>
<ssl_cert_file/>
<ssl_key_file/>
<ssl_key_password/>
<verify_peer>0</verify_peer>
<verify_host>0</verify_host>
<master_item/>
</item>
<item>
<name>[1C/Лицензии] Количество файлов пользовательских лицензий</name>
<type>18</type>
<snmp_community/>
<snmp_oid/>
<key>1c.rmngr.license.count</key>
<delay>0</delay>
<history>2h</history>
<trends>365d</trends>
<status>0</status>
<value_type>3</value_type>
<allowed_hosts/>
<units/>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<params/>
<ipmi_sensor/>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>[1С] Программные лицензии</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
<preprocessing>
<step>
<type>5</type>
<params>(d+):d+
1</params>
<error_handler>0</error_handler>
<error_handler_params/>
</step>
</preprocessing>
<jmx_endpoint/>
<timeout>3s</timeout>
<url/>
<query_fields/>
<posts/>
<status_codes>200</status_codes>
<follow_redirects>1</follow_redirects>
<post_type>0</post_type>
<http_proxy/>
<headers/>
<retrieve_mode>0</retrieve_mode>
<request_method>0</request_method>
<output_format>0</output_format>
<allow_traps>0</allow_traps>
<ssl_cert_file/>
<ssl_key_file/>
<ssl_key_password/>
<verify_peer>0</verify_peer>
<verify_host>0</verify_host>
<master_item>
<key>1c.rmngr.license</key>
</master_item>
</item>
<item>
<name>[1C/Лицензии] Активные сеансы</name>
<type>7</type>
<snmp_community/>
<snmp_oid/>
<key>1c.rmngr.license.session[{$RAS_PORT}]</key>
<delay>60s</delay>
<history>90d</history>
<trends>0</trends>
<status>0</status>
<value_type>4</value_type>
<allowed_hosts/>
<units/>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<params/>
<ipmi_sensor/>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>[1С] Программные лицензии</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
<preprocessing/>
<jmx_endpoint/>
<timeout>3s</timeout>
<url/>
<query_fields/>
<posts/>
<status_codes>200</status_codes>
<follow_redirects>1</follow_redirects>
<post_type>0</post_type>
<http_proxy/>
<headers/>
<retrieve_mode>0</retrieve_mode>
<request_method>0</request_method>
<output_format>0</output_format>
<allow_traps>0</allow_traps>
<ssl_cert_file/>
<ssl_key_file/>
<ssl_key_password/>
<verify_peer>0</verify_peer>
<verify_host>0</verify_host>
<master_item/>
</item>
<item>
<name>[1C/Лицензии] Общее количество сеансов</name>
<type>18</type>
<snmp_community/>
<snmp_oid/>
<key>1c.rmngr.license.total</key>
<delay>0</delay>
<history>90d</history>
<trends>365d</trends>
<status>0</status>
<value_type>3</value_type>
<allowed_hosts/>
<units/>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<params/>
<ipmi_sensor/>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>[1С] Программные лицензии</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
<preprocessing>
<step>
<type>5</type>
<params>d+:d+:(d+)
1</params>
<error_handler>0</error_handler>
<error_handler_params/>
</step>
</preprocessing>
<jmx_endpoint/>
<timeout>3s</timeout>
<url/>
<query_fields/>
<posts/>
<status_codes>200</status_codes>
<follow_redirects>1</follow_redirects>
<post_type>0</post_type>
<http_proxy/>
<headers/>
<retrieve_mode>0</retrieve_mode>
<request_method>0</request_method>
<output_format>0</output_format>
<allow_traps>0</allow_traps>
<ssl_cert_file/>
<ssl_key_file/>
<ssl_key_password/>
<verify_peer>0</verify_peer>
<verify_host>0</verify_host>
<master_item>
<key>1c.rmngr.license.session[{$RAS_PORT}]</key>
</master_item>
</item>
<item>
<name>[1C/Лицензии] Количество уникальных пользователей</name>
<type>18</type>
<snmp_community/>
<snmp_oid/>
<key>1c.rmngr.license.uniq</key>
<delay>0</delay>
<history>90d</history>
<trends>365d</trends>
<status>0</status>
<value_type>3</value_type>
<allowed_hosts/>
<units/>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<params/>
<ipmi_sensor/>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>[1С] Программные лицензии</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
<preprocessing>
<step>
<type>5</type>
<params>d+:(d+):d+
1</params>
<error_handler>0</error_handler>
<error_handler_params/>
</step>
</preprocessing>
<jmx_endpoint/>
<timeout>3s</timeout>
<url/>
<query_fields/>
<posts/>
<status_codes>200</status_codes>
<follow_redirects>1</follow_redirects>
<post_type>0</post_type>
<http_proxy/>
<headers/>
<retrieve_mode>0</retrieve_mode>
<request_method>0</request_method>
<output_format>0</output_format>
<allow_traps>0</allow_traps>
<ssl_cert_file/>
<ssl_key_file/>
<ssl_key_password/>
<verify_peer>0</verify_peer>
<verify_host>0</verify_host>
<master_item>
<key>1c.rmngr.license.session[{$RAS_PORT}]</key>
</master_item>
</item>
<item>
<name>[1C/Лицензии] Количество использованных лицензий</name>
<type>18</type>
<snmp_community/>
<snmp_oid/>
<key>1c.rmngr.license.used</key>
<delay>0</delay>
<history>90d</history>
<trends>365d</trends>
<status>0</status>
<value_type>3</value_type>
<allowed_hosts/>
<units/>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<params/>
<ipmi_sensor/>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>[1С] Программные лицензии</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
<preprocessing>
<step>
<type>5</type>
<params>(d+):d+:d+
1</params>
<error_handler>0</error_handler>
<error_handler_params/>
</step>
</preprocessing>
<jmx_endpoint/>
<timeout>3s</timeout>
<url/>
<query_fields/>
<posts/>
<status_codes>200</status_codes>
<follow_redirects>1</follow_redirects>
<post_type>0</post_type>
<http_proxy/>
<headers/>
<retrieve_mode>0</retrieve_mode>
<request_method>0</request_method>
<output_format>0</output_format>
<allow_traps>0</allow_traps>
<ssl_cert_file/>
<ssl_key_file/>
<ssl_key_password/>
<verify_peer>0</verify_peer>
<verify_host>0</verify_host>
<master_item>
<key>1c.rmngr.license.session[{$RAS_PORT}]</key>
</master_item>
</item>
<item>
<name>[1C/Лицензии] Количество лицензированных сеансов</name>
<type>18</type>
<snmp_community/>
<snmp_oid/>
<key>1c.rmngr.license.user</key>
<delay>0</delay>
<history>2h</history>
<trends>365d</trends>
<status>0</status>
<value_type>3</value_type>
<allowed_hosts/>
<units/>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<params/>
<ipmi_sensor/>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>[1С] Программные лицензии</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
<preprocessing>
<step>
<type>5</type>
<params>d+:(d+)
1</params>
<error_handler>0</error_handler>
<error_handler_params/>
</step>
</preprocessing>
<jmx_endpoint/>
<timeout>3s</timeout>
<url/>
<query_fields/>
<posts/>
<status_codes>200</status_codes>
<follow_redirects>1</follow_redirects>
<post_type>0</post_type>
<http_proxy/>
<headers/>
<retrieve_mode>0</retrieve_mode>
<request_method>0</request_method>
<output_format>0</output_format>
<allow_traps>0</allow_traps>
<ssl_cert_file/>
<ssl_key_file/>
<ssl_key_password/>
<verify_peer>0</verify_peer>
<verify_host>0</verify_host>
<master_item>
<key>1c.rmngr.license</key>
</master_item>
</item>
</items>
<discovery_rules/>
<httptests/>
<macros>
<macro>
<macro>{$LIC_UTIL_LIMIT}</macro>
<value>0.9</value>
</macro>
<macro>
<macro>{$RAS_PORT}</macro>
<value>1545</value>
</macro>
</macros>
<templates/>
<screens/>
<tags/>
</template>
</templates>
<triggers>
<trigger>
<expression>{Template App 1C Enterprise License Server:1c.rmngr.license.used.last()}={Template App 1C Enterprise License Server:1c.rmngr.license.user.last()}</expression>
<recovery_mode>0</recovery_mode>
<recovery_expression/>
<name>[1C/Лицензии] Использованы все доступные клиентские лицензии</name>
<correlation_mode>0</correlation_mode>
<correlation_tag/>
<url/>
<status>0</status>
<priority>4</priority>
<description/>
<type>0</type>
<manual_close>1</manual_close>
<dependencies/>
<tags/>
</trigger>
<trigger>
<expression>{Template App 1C Enterprise License Server:1c.rmngr.license.used.last()}/{Template App 1C Enterprise License Server:1c.rmngr.license.user.last()}>{$LIC_UTIL_LIMIT}</expression>
<recovery_mode>0</recovery_mode>
<recovery_expression/>
<name>[1C/Лицензии] Количество использованных лицензий близко к максимальному</name>
<correlation_mode>0</correlation_mode>
<correlation_tag/>
<url/>
<status>0</status>
<priority>2</priority>
<description/>
<type>0</type>
<manual_close>1</manual_close>
<dependencies>
<dependency>
<name>[1C/Лицензии] Использованы все доступные клиентские лицензии</name>
<expression>{Template App 1C Enterprise License Server:1c.rmngr.license.used.last()}={Template App 1C Enterprise License Server:1c.rmngr.license.user.last()}</expression>
<recovery_expression/>
</dependency>
</dependencies>
<tags/>
</trigger>
</triggers>
<graphs>
<graph>
<name>[1C/Лицензии] Использование активированных лицензий</name>
<width>900</width>
<height>200</height>
<yaxismin>0.0000</yaxismin>
<yaxismax>100.0000</yaxismax>
<show_work_period>1</show_work_period>
<show_triggers>1</show_triggers>
<type>0</type>
<show_legend>1</show_legend>
<show_3d>0</show_3d>
<percent_left>0.0000</percent_left>
<percent_right>0.0000</percent_right>
<ymin_type_1>1</ymin_type_1>
<ymax_type_1>0</ymax_type_1>
<ymin_item_1>0</ymin_item_1>
<ymax_item_1>0</ymax_item_1>
<graph_items>
<graph_item>
<sortorder>0</sortorder>
<drawtype>0</drawtype>
<color>F63100</color>
<yaxisside>0</yaxisside>
<calc_fnc>2</calc_fnc>
<type>0</type>
<item>
<host>Template App 1C Enterprise License Server</host>
<key>1c.rmngr.license.user</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<drawtype>0</drawtype>
<color>1B5E20</color>
<yaxisside>0</yaxisside>
<calc_fnc>2</calc_fnc>
<type>0</type>
<item>
<host>Template App 1C Enterprise License Server</host>
<key>1c.rmngr.license.used</key>
</item>
</graph_item>
<graph_item>
<sortorder>2</sortorder>
<drawtype>0</drawtype>
<color>2774A4</color>
<yaxisside>0</yaxisside>
<calc_fnc>2</calc_fnc>
<type>0</type>
<item>
<host>Template App 1C Enterprise License Server</host>
<key>1c.rmngr.license.uniq</key>
</item>
</graph_item>
<graph_item>
<sortorder>3</sortorder>
<drawtype>0</drawtype>
<color>F7941D</color>
<yaxisside>0</yaxisside>
<calc_fnc>2</calc_fnc>
<type>0</type>
<item>
<host>Template App 1C Enterprise License Server</host>
<key>1c.rmngr.license.total</key>
</item>
</graph_item>
</graph_items>
</graph>
</graphs>
</zabbix_export>
Приложение 2. Файл 1c_rmngr_license.sh (скрипт получения данных)
#!/bin/bash
#
# 1C Enterprise 8.3 Software License Utilization Info for Zabbix
#
# (c) 2024, Alexey Y. Fedotov
#
# Email: fedotov@kaminsoft.ru
#
CACHE_DIR="/var/tmp/1C"
RAS_PORT=1545
[[ ! -d ${CACHE_DIR} ]] && mkdir -p ${CACHE_DIR}
function licenses_info {
[[ ! -f /etc/1C/1CE/ring-commands.cfg ]] && echo "ОШИБКА: Не установлена утилита ring!" && exit 1
LIC_TOOL=$(grep license-tools /etc/1C/1CE/ring-commands.cfg | cut -d: -f2)
[[ -z ${LIC_TOOL} ]] && echo "ОШИБКА: Не установлена утилита license-tools!" && exit 1
RING_TOOL=${LIC_TOOL%/*/*}"/ring/ring"
LIC_LIST=$(${RING_TOOL} license list | sed 's/(.*//')
LIC_COUNT=0
LIC_USERS=0
for CURR_LIC in ${LIC_LIST}
do
LIC_INFO=$(${RING_TOOL} license info --name ${CURR_LIC} | grep -Pe "Описание.*на d+ .*" | perl -pe "s/.*на (d+) .*/1/;")
if [[ -n ${LIC_INFO} ]] ; then
LIC_COUNT=$((${LIC_COUNT}+1))
LIC_USERS=$((${LIC_USERS}+${LIC_INFO}))
fi
done
echo ${LIC_COUNT}:${LIC_USERS}
}
function used_license {
G_BINDIR=$(ls -d /opt/1C/v8*/x*)
RMNGR_LIST=($(pgrep -xa rmngr | sed -re "s/.*-(reg|)host /|/; s/ -(regport|range).*//; s/(#k8SjZc9Dxk||.*)(.*)/2/; s/#k8SjZc9Dxk$/$(hostname)/"))
CACHE_FILE="${CACHE_DIR}/1c.rmngr.lst"
SRV_LIST=()
USED_LIC=0
ALL_SESS=0
UNIQ_USR=0
[[ -n ${1} ]] && RAS_PORT=${1}
if [[ ! -e ${CACHE_FILE} ||
${#RMNGR_LIST[*]} -ne $(wc -l ${CACHE_FILE} | cut -f1 -d" ") ||
$(date -r ${CACHE_FILE} "+%s") -lt $(date -d "-1 hour" "+%s") ]]; then
cat /dev/null > ${CACHE_FILE}
for CURR_RMNGR in ${RMNGR_LIST[*]}
do
CURR_CLSTR=$(${G_BINDIR}/rac cluster list ${CURR_RMNGR}:${RAS_PORT} | grep cluster | sed 's/.*: //')
SRV_LIST+=(${CURR_RMNGR}:${CURR_CLSTR// /,})
echo ${SRV_LIST[${#SRV_LIST[*]}-1]} >> ${CACHE_FILE}
done
else
while read -r CURR_SRV
do
SRV_LIST+=(${CURR_SRV})
done < ${CACHE_FILE}
fi
for CURR_SRV in ${SRV_LIST[*]}
do
CLSTR_LIST=${CURR_SRV##*:}
for CURR_CLSTR in ${CLSTR_LIST//,/ }
do
CURR_COUNTS=($(${G_BINDIR}/rac session list --licenses --cluster=${CURR_CLSTR} ${CURR_SRV%%:*}:${RAS_PORT} | \r
grep -Pe "(user-name|rmngr-address)" | perl -pe 's/ //g; s/
/|/; s/rmngr-address:("(.*)"|)||/2/; s/(user-name:)/
/' | \r
awk -F"|" -v hostname=$(hostname) 'BEGIN {sc=0; hc=0; } { if ($1 != "") {sc+=1; uc[$1]+=1; } \r
if (tolower($2) == tolower(hostname) ) {hc+=1;} } END {print hc" "sc" "length(uc) }'))
USED_LIC=$(( ${USED_LIC} + ${CURR_COUNTS[0]} ))
ALL_SESS=$(( ${ALL_SESS} + ${CURR_COUNTS[1]} ))
UNIQ_USR=$(( ${UNIQ_USR} + ${CURR_COUNTS[2]} ))
done
done
echo ${USED_LIC}:${UNIQ_USR}:${ALL_SESS}
}
case ${1} in
info) licenses_info ;;
used) used_license $2 ;;
*) echo "ОШИБКА: Неверный режим работы скрипта!"; exit 1;;
esac
P.S. Теперь следить за проектом можно через GitHub
Related Posts
- Восстановление последовательности документов при закрытии месяца в Бухгалтерия 3.0 не завершается
- Заполнение табличных частей
- Формирование сводных актов выполненных работ
- Ввод поступления в переработку на основании передачи сырья (между организациями)
- Конспект по установке сервера 1С на linux
- Получение имени компьютера и его IP локально и в терминале
Накатал бы кто статью, как на одном сервере 2 экземпляра 8.3 сервера на linux поставить, очень хочется старый сэд сдружить с новыми 1с бух
(1) Так в этом нет ни какой сложности (я про поставить) … Статью можно, если интерес есть 😉
(2)хитростей там хватает
Основная задача работать под 1й лицензией
Интерес есть…;)
(3) О каких именно хитростях идет речь?
(4)как пример разные libcu использовать
Как заставить работать на разных портах
(5)
libcu? Это что за «зверь» (я не в теме)? И зачем нужны разные?
Это библиотека для postgresql. Два сервера 1С запустить не проблема, а тут судя по библиотеке зачем-то 2 postgresql надо. Кстати можно и публикации апаче сделать с разных платформ, хотя тут на форуме ходит миф, что нельзя, проверено — можно.
(7) по-моему, две разных версии постгре запустить ещё проще чем две разные версии 1с.
(1)
(9)попробую-скажу))
(7)
Может поделитесь секретом, ну или хотя бы направлением в котором посмотреть? Хотя, я так подозреваю, что речь идет о апаче 2.4 и конфигурации через VirtualHost?
(11) Да не секрет, это обычный multiple-instance который и в апаче 2.2 можно было настроить. Тестил на 2.4 конечно, в папках апаче есть готовый скрипт setup-instance. Можно даже небольшую статью накидать что к чему
(12) но, соответственно, каждый инстанс на своем порту?
(13) Верно, но можно ведь сделать и виртуальные хосты, как вы заметили выше. Можно на разных доменах(думаю и уровни можно использовать), еще на помощь может придти переадресация. Мне достаточно пока других портов в работе.