Тонкая настройка системы
Настройка единого кода управления для услуг CFU и CFU Type2
Начиная с версии 3.8 у каждой услуги в рамках домена должны быть свои собственные, уникальные коды управления услугами. По этому если надо, чтобы у разных абонентов были одинаковые коды для услуг CFU и CFU Type2, их необходимо разнести в разные домены.
Настройка кодов управления услуг через CoCon
Начиная с версии 3.8 коды управления услуг настраиваются через консоль CoCon. Команды по управлению кодами располагаются по пути domain/<DOMAIN>/ss/feature-codes/.
Например, чтобы изменить код управления услугой "Безусловная переадресация (cfu)", можно воспользоваться командой:
antoniy@[mycelium1@ryabkov]:/$ domain/test.domain/ss/feature-codes/set cfu activate *88 Feature code successfully changed antoniy@[mycelium1@ryabkov]:/$ domain/p.city/ss/feature-codes/set cfu deactivate #88 Feature code successfully changed antoniy@[mycelium1@ryabkov]:/$ domain/p.city/ss/feature-codes/set cfu test *#88 Feature code successfully changed
Если в результате изменения кода новый код пересечется с кодом другой услуги, системе предупредит пользователя об этом:
antoniy@[mycelium1@ryabkov]:/$ domain/p.city/ss/feature-codes/set cfu activate *99 Warning: feature code changed but duplicates was found: ┌────────┬───────────┬────────────┬────────────────────────────────────────┐ │SS name │Feature key│Feature code│ Description │ ├────────┼───────────┼────────────┼────────────────────────────────────────┤ │cfu │activate │*99 │Activate 'Call Forwarding Unconditional'│ │vip_call│use │*99 │Use VIP-call service │ └────────┴───────────┴────────────┴────────────────────────────────────────┘
Если возникает необходимость изменить разделитель параметров услуг или символ окончания набора, можно воспользоваться командами расползающиеся по пути domain/<DOMAIN>/ss/feature-codes/properties/
Настройка услуг через web-конфигуратор
Откройте приложение web-конфигуратора "SS Install" ("Управление услугами"). Изменение кодов происходит в разделе "SS Codes" ("Коды услуг").
Подробно про изменения кодов услуг через web описано в разделе Изменение кодов услуг.
Настройка подсистем
Стратегия аварийной остановки сервисов
Для основных сервисов
ecss-core.service ecss-ds.service ecss-mediator.service ecss-mycelium.service ecss-pa-sip.service ecss-subscriber-portal.service
по умолчанию определена стратегия автоматической аварийной остановки сервиса при превышении частоты его перезапуска: 4 раза за 120 секунд.
При необходимости данные значения можно переопределить с помощью команды sudo systemctl edit
и и прописав параметры RestartSec, StartLimitIntervalSec, StartLimitBurst.
sudo systemctl edit <НАЗВАНИЕ СЕРВИСА>
Пример:
RestartSec=1 StartLimitIntervalSec=120 StartLimitBurst=4
Дополнительную информацию см. https://www.freedesktop.org/software/systemd/man/systemd.unit.
Настройка подсистемы Mediator
Описание системы Mediator
Система Mediator предназначена для сбора и экспорта предупреждений и статистической информации.
Общая схема взаимодействия Mediator с нодами SSW:
Рисунок 1 — Общая схема взаимодействия кластера Mediator с другими кластерами системы
В качестве источников предупреждений и статистики выступают следующие подсистемы:
- Core;
- Adapters (SIP, Megaco, SIGTRAN);
- DS.
Статистика
В качестве статистической информации выступают события вызова (call events) и счетчики (counters). Каждая подсистема, принимающая участие в обработке вызова, формирует соответствующий набор событий и счетчиков, которые агрегируются в подсистеме Mediator в соответствии с указанными правилами.
Правило агрегации определяется "модулем статистики". Совокупность модуля статистики, интервала экспорта и "модуля (или модулей) экспорта" определяет задание статистики. Описание команд добавления, просмотра и удаления представлено в разделе Команды работы с заданиями статистики.
В общем виде схема обработки статистики может быть представлена в следующем виде:
Рисунок 2 — Схема обработки статистики
Предупреждения
В общем виде схема обработки предупреждений может быть представлена в следующем виде:
Рисунок 3 — Схема обработки предупреждений
Конфигурирование
Секция AMQP-клиента
Определяет подключения к AMQP-брокеру, на котором будет осуществляться обмен информацией между системой Mediator и другими нодами:
%Секция AMQP клиента. {amqp10_client, [ {realms, [ %Строка подключения к брокеру, на котором будет осуществляться обмен информацией между системой Mediator и другими нодами {local, "/ssw", "ssw", "ssw", [{localhost, {host, "IP or Hostname of RPS amqp broker"}, 5672, 10}]}, %Строка подключения к брокеру, к которому подключена система TTS {tts, "/ssw", "ssw", "ssw", [{tts, {host, "IP or Hostname of TTS amqp broker"}, 5672, 10}]} ] } ] }
Секция SSH-консоли
{cocon, [ {realm, local} % Realm, определенный в секции AMQP-клиента ]}
Секция подключения к LDAP-серверу
{ldapman, [ {ldap_server_ip, "127.0.0.1"}, % IP-адрес LDAP-сервера {ldap_server_port, 389}, % Порт LDAP-сервера {ldap_dc, "dc=ecss"}, % DC директория, в которой будем работать {ldap_system_username, "admin"}, % Имя пользователя, из под которого система будет работать с LDAP-сервером (вести аудит и прочее) {ldap_system_password, "admin"} % Пароль ]}
Секция rtop_agent
Определяет название кластера.
{rtop_agent, [ {realm, local} % идентификатор подключения к системе DS ]}
Секция логирования
%Секция конфигурирования подсистемы логирования: {chronica, [ {rules, [ {restart, "ecss_starter", info, [restart], on}, {alarm_error, "*", error, [rps_alarm], on}, % notification via alarm subsystem {all_errors, "*", error, [error, journald], on}, % catch all errors {all_warning, "*", warning, [error], on}, % catch all warnings {all_infos_bin, "*&!rps_watchdog", info, [info_bin], on}, % Binary {all_logs_bin, "*", debug, [default_bin], off}, {mycelium_bin, "mycelium*", debug, [default_bin], off}, {alarm_bin, "alarm*", debug, [default_bin], off}, {ap_bin, "ap_*", debug, [default_bin], off}, {ccn_bin, "ccn*", debug, [default_bin], off}, {oasys_bin, "oasys*", debug, [default_bin], off}, {snmp_bin, "snmp*", debug, [default_bin], off}, {http_terminal_cmds_bin, "hc_*", debug, [default_bin], off}, {http_terminal_bin, "cocon_http*", debug, [default_bin], off} ]}, {flows, [ % Text flows {default_bin, [{file, "default.log.bin", binary}]}, {error, [{file, "error.log"}]}, {info_bin, [{file, "info.log.bin", binary}]}, {journald, [{journald, default}]}, {restart, [{file, "restart.log"}]}, {rps_alarm, [{rps_alarm, default}]} ]}, {formats, [ {default, "%Y-%M-%D %H:%Mi:%S:%Ms %PRIORITY %Pid [%Module:%Line]: %Message\n"}, {alarm_trace, "%Message\n"} ]}, {active, true}, {rotate_at_start, true}, {file_check_timeout, 10000}, {backend_modules, [ {rps_alarm, chronica_rps_alarm_backend}, {journald, chronica_journald_backend} ]}, {internal_logger, [ {file, "chronica", {101048576, 1}, error}, {tty, error} ]}, {data_root, "/var/cache/ecss/mediator/chronica/<Node>"}, {log_root, "/var/log/ecss/mediator/<Node>"}, {max_file_size, 52428800}, %% 50M per file {max_file_num, 10}, {debug, true}, {debug_level, 2} ]}
Секция SNMP-агента
% Секция SNMP-агента. Будет использована, если значение snmpAgentEnable выставлено в "true". % В этом случае данная секция обязательна {snmp, [ {agent, [ % Директория хранения служебной информации SNMP-агента % Данная директория должны быть предварительно создана {db_dir, "/var/lib/ecss/snmp/"}, % Местоположение конфигурационных файлов SNMP-агента {config, [{dir, "/etc/ecss/snmp/agent/"}, {force_load, true}, {verbosity, silence}]}, % Рекомендуется не изменять эти параметры {priority, normal}, {versions, [v2, v3]}, {mib_storage, {mnesia, []}}, {target_cache, [{verbosity,silence}]}, {symbolic_store, [{verbosity,silence}]}, {local_db, [{repair,true},{auto_save,5000},{verbosity,silence}]}, {error_report_module, snmpa_error_logger}, {agent_type, master}, {agent_verbosity, silence}, {discovery, [{terminating, [{enable, true}, {stage2, discovery}, {trigger_username, ""}]}, {originating, [{enable, true}]}]}, {multi_threaded, false}, {mib_server, [{mibentry_override,false},{trapentry_override,false},{verbosity,silence},{cache,true}]}, {note_store, [{timeout,30000},{verbosity,silence}]}, {net_if, [{module,snmpa_net_if},{verbosity,silence},{options,[{bind_to,true},{no_reuse,false},{req_limit,infinity}]}]} ] } ] }
Секция SNMP-менеджера
% Секция SNMP-менеджера, опциональная. Позволяет задать настройки менеджера "слушателя" SNMP-трапов. {snmp, [ {manager, [ {config, [ % Местоположение конфигурационных файлов SNMP-агента {dir, "/etc/ecss/snmp/manager/"}, % silence | info | log | debug | trace {verbosity, silence}, % Директория хранения служебной информации SNMP-менеджера % Данная директория должны быть предварительно создана {db_dir, "/var/lib/ecss/snmp/"} ]}, % Имя модуля-обработчика SNMP-трапов. ВНИМАНИЕ! НЕ МЕНЯТЬ ДАННУЮ НАСТРОЙКУ {def_user_mod, snmp_alarm_user} ] } ] }
Конфигурирование источника статистической информации
Необходимо сконфигурировать приложение RPS для каждой ноды.
В конфигурации Node.config должны присутствовать следующие секции:
%Секция AMQP-клиента {amqp10_client, [ {realms, [ % Строка подключения к брокеру, на котором будет осуществляться обмен информацией между системой Mediator и другими нодами {local, "/ssw", "ssw", "ssw", [{localhost, {host, "IP or Hostname of RPS amqp broker"}, 5672, 10}]} ] } ] }, {rps, [ {realm, local} ]}
Пороги использования ресурсов
Опрос значений использования диска и памяти осуществляется раз в минуту.
Включение мониторинга диска:
{rps, [ {realm, local}, {thresholds, [{disk, [{enabled, true}]}]} % без указания "points" мониторинг всех смонтированных разделов ]}
Для включения мониторинга только заданных разделов необходимо указать точки монтирования:
{rps, [ {realm, local}, {thresholds, [{disk, [ {enabled, true}, {points, [{"/var/lib/ecss/cdr", {W, M, C}}, {"/var/lib/ecss/statistics", {W, M, C}}, ]} ]}]} ]}
где
- W — значение занятости раздела в процентах для порога "warning";
- M — значение занятости раздела в процентах для порога "major";
- C — значение занятости раздела в процентах для порога "critical".
Также допускается такой вариант:
{rps, [ {realm, local}, {thresholds, [{disk, [ {enabled, true}, {points, [{"/var/lib/ecss/cdr", {W, M, C}}, {"/var/lib/ecss/statistics", {W, M, C}}, ]} ]}]} ]}
При этом будут использованы пороги по умолчанию — {80, 95, 98}.
Переопределить пороги по умолчанию можно следующим образом:
{rps, [ {realm, local}, {thresholds, [{disk, [ {enabled, true}, {default, {85, 96, 99}}, {points, ["/var/lib/ecss/cdr", "/var/lib/ecss/statistics", ]} ]}]} ]}
При включенном мониторинге диска посылаются предупреждения на медиатор при достижении порогов.
Мониторинг раздела /var/lib/ecss-mysql включается при положительном ответе на вопрос "Взводить аварию ECSS-10 при заполнении раздела MySQL?" ("Send ECSS-10 alarm in case of MySQL drive is overload?") во время инсталляции пакета ecss-node. При этом в файле /etc/ecss/global.config в секцию rps -> thresholds -> disk -> points автоматически добавляется путь "/var/lib/ecssmysql":
[ ... {rps, [ {thresholds, [ {disk, [{enabled, true}, {points, ["/var/lib/ecss-mysql"]} ]}, {monitoring, [ %{applications, [%%APPS_MON%%]} %{interfaces, [{noAlarmFor, [%%IFACES_MON%%]}]} ]} ]} ...
Разрешение на использование портов < 1024 для erlang-процессов
Чтобы подсистема SNMP могла получать/отправлять трапы по портам 161/162 необходимо добавить соответствующие права на файл beam.smp следующим образом:
Установить утилиту setcap командой из консоли ОС Linux:
sudo aptitude install libcap2-bin
Задать права на файл beam.smp командой из консоли ОС Linux:
sudo setcap cap_net_bind_service=+ep /usr/lib/erlang/erts-6.4.1.2/bin/beam.smp sudo setcap cap_net_bind_service=+ep /usr/lib/erlang/erts-6.4.1.2/bin/beam
где
"/usr/lib/erlang/erts-6.4.1.2/bin/" — путь, по которому располагается файл beam.smp.
Конфигурирование SNMP-агента
- Создать папку по пути, указанному в настройках SNMP-агента — параметр "db_dir".
- В случае использования портов < 1024 необходимо добавить разрешение на файл beam.smp (Конфигурирование).
- Раскоментировать секции "agent" в секции SNMP в настройках кластера mediator.
Создать файл по пути: /etc/ecss/snmp/agent/agent.conf
% Порт, который будет слушать SNMP-агент и на который ему будут приходить SNMP-трапы. % ВНИМАНИЕ! Если номер порта < 1024, необходимо выполнить пункт 2. {intAgentUDPPort, 161}. % IP-адрес, на котором будет открыт порт для слушания SNMP-трапов. {intAgentIpAddress, [0,0,0,0]}. % Уникальный текстовый идентификатор SNMP-агента. Не изменять. {snmpEngineID, "ECSS-10-SNMP-Agent"}. % Максимальная длина SNMP-сообщения (в октетах), которые SNMP-агент может получать/отправлять. {snmpEngineMaxMessageSize, 484}.
Создать файл по пути: /etc/ecss/snmp/agent/community.conf.
% community нужны для обеспечения аутентификации, проверки прав доступа при взаимодействии SNMP-агента и менеджера. % Первым параметром идет уникальный идентификатор community. Вторым - человеко-читабельное имя. Третьим - secret-key для данного community. {"public", "public", "initial", "", ""}. {"all-rights", "all-rights", "all-rights", "", ""}. {"standard trap", "standard trap", "initial", "", ""}.
Создать файл по пути: /etc/ecss/snmp/agent/context.conf.
%% The default context "".
Создать файл по пути: /etc/ecss/snmp/agent/notify.conf.
{"standard trap", "std_trap", trap}.
Создать файл по пути: /etc/ecss/snmp/agent/standard.conf.
% Имя SNMP-агента. Не изменять {sysDescr, "Eltex ECSS SNMP agent"}. % Корневой OID для всех SNMP-трапов системы ECSS-10 {sysObjectID, [1, 3, 6, 1, 4, 1, 35265, 2, 10]}. % Контакт человека, отвечающего за управление данной нодой. НЕОБХОДИМО УКАЗАТЬ EMAIL сервис-центра. {sysContact, "techsupp@eltex.nsk.ru"}. % Физическое расположение данной ноды. {sysLocation, "naomi.eltex.loc"}. % Идентификатор для группы сервисов, предоставляемых ECSS-10. НЕ ИЗМЕНЯТЬ. {sysServices, 72}. % Флаг, показывающий, разрешено или нет SNMP генерировать authenticationFailure-трапы. {snmpEnableAuthenTraps, enabled}. % Административное имя данной ноды. Но по соглашению принято в качестве sysName выставлять полное доменное имя данной ноды. {sysName, "ECSS-10 Agent"}.
Отдельное замечание для интеграции с EMS. Значение поля "sysName" должно совпадать с именем узла в дереве объектов. Иначе значение поле "hostname" в описании узла будет считаться ошибочным (но на работу это никак не влияет).Создать файл по пути: /etc/ecss/snmp/agent/target_addr.conf.
% В данной конфигурации указана транспортная информация, куда необходимо пересылать трапы % {TargetName, Ip, Udp, Timeout, RetryCount, TagList, ParamsName, EngineId, TMask, MaxMessageSize}. % TargetName - уникальное имя для направления отправки трапов % Ip, Udp - адрес и порт для отправки трапа % Timeout - тайм-аут на доставку сообщения % RetryCount - количество повторных посылок сообщения % TagList - имя тега, указанного в notify.conf % EngineId - имя target-а, который будет указан в target_params.conf {"Eltex EMS v2", [172,16,0,22], 162, 1500, 3, "std_trap", "target_v2", "", [], 2048}.
Создать файл по пути: /etc/ecss/snmp/agent/target_params.conf.
% Each row is a 5-tuple: % {Name, MPModel, SecurityModel, SecurityName, SecurityLevel}. % Name - имя target-а, который используется в target_addr.conf % MPModel - v1, v2c или v3 % SecurityModel - v1, v2c, или usm % SecurityName - имя группы доступа в View-based Access Control Model (VACM) % SecurityLevel - noAuthNoPriv, authNoPriv или authPriv. {"target_v2", v2c, v2c, "initial", noAuthNoPriv}.
Создать файл по пути: /etc/ecss/snmp/agent/vacm.conf.
% В данной конфигурации описаны параметры, необходимые для авторизации SNMP-запросов {vacmSecurityToGroup, v2c, "initial", "initial"}. {vacmSecurityToGroup, v2c, "all-rights", "all-rights"}. {vacmAccess, "initial", "", any, noAuthNoPriv, exact, "restricted", "", "restricted"}. {vacmAccess, "initial", "", usm, authNoPriv, exact, "internet", "internet", "internet"}. {vacmAccess, "initial", "", usm, authPriv, exact, "internet", "internet", "internet"}. {vacmAccess, "all-rights", "", any, noAuthNoPriv, exact, "internet", "internet", "internet"}. {vacmViewTreeFamily, "restricted", [1,3,6,1], included, null}. {vacmViewTreeFamily, "internet", [1,3,6,1], included, null}.
- Создать пустой файл по пути: /etc/ecss/snmp/agent/usm.conf.
Конфигурирование SNMP-менеджера
- Создать папку по пути, указанному в настройках SNMP-менеджера — параметр "db_dir".
- Если используются порты < 1024, необходимо добавить разрешение на файл beam.smp (Конфигурирование).
- Раcкоментировать секции "agent", "manager" в секции SNMP в настройках кластера Mediator.
Создать файл по пути: /etc/ecss/snmp/manager/manager.conf.
% IP-адрес, на котором будет открыт порт для слушания/отправки SNMP-трапов. {address, [0,0,0,0]}. % Порт, с которого SNMP-менеджер будет отправлять SNMP-трапы. % ВНИМАНИЕ! Если номер порта < 1024, необходимо выполнить пункт 2. {port, 162}. % Уникальный текстовый идентификатор SNMP-менеджера. Не изменять. {engine_id, "ECSS-10-SNMP-Manager"}. % Максимальная длина SNMP-сообщения (в октетах), которые SNMP-агент может получать/отправлять. {max_message_size, 484}.
Создать файл по пути: /etc/ecss/snmp/manager/agents.conf.
В данном файлы указаны разрешения для агентов, которых использует менеджер.% Первый параметр указывает ID-агента, для которого задаются настройки. Его в дальнейшем будут использовать в файле users.conf. % Четвертый параметр - IP-адрес, с которого будут отправляться/приниматься трапы. % Пятый параметр - порт, с которого будут отправляться/приниматься трапы. % ВНИМАНИЕ! Если номер порта < 1024, необходимо выполнить пункт 2. {"ecss_mediator", "md", "public", [192,168,23,34], 161, "", 1500, 484, v2, any, "initial", noAuthNoPriv}.
Создать файл по пути: /etc/ecss/snmp/manager/users.conf.
% Первый параметр указывает ID-агента (из файла agents.conf), с которого будут приходить трапы. % Второй параметр - имя модуля, который данные трапы будет обрабатывать. Не изменять. % Третий параметр - аргументы инициализации модуля snmp_alarm_user. Не изменять. {"ecss_mediator", snmp_alarm_user, undefined}.
Настройка параметров LDAP
В данном разделе описывается настройка параметров LDAP-соединения. Используя нижеописанную команду set
, приведите настройки LDAP вашей системы к следующему виду:
------------------------------------------------------------------------ | Parameter | Definition | Value | |--------------+-----------------------------------+-------------------| | ip | LDAP server IP | ip_address | | port | LDAP server port | 389 | | access.path | Path to registration domains | ou=pa_sip,dc=ecss | | access.login | Login for access for this path | cn=admin,dc=ecss | | access.passw | Password for access to this path | password | | attr.domain | Attribute for registration domain | dc | | attr.phone | Attribute for phone number | telephoneNumber | | attr.login | Attribute for users login | cn | | attr.passw | Attribute for password | description | ------------------------------------------------------------------------
- ip_address — IP-адрес LDAP-сервера на первой ноде;
- password — пароль для доступа к LDAP-серверу, задаётся при установке slapd.
Абсолютный путь команды:
domain/<DOMAIN>/sip/ldap/set
Описание:
Команда установки значения параметров соединения с сервером LDAP.
Синтаксис:
set <KEY> <VALUE>
Параметры:
<KEY> – настраиваемый параметр, принимает значения:
- access.login – атрибут, хранящий имя пользователя;
- access.passw – пароль доступа к данным по назначенному пути;
- access.path – путь доступа, который назначается кластеру для хранения/получения информации по авторизации абонента;
- attr.domain – атрибут, хранящий домены регистрации;
- attr.login – атрибут, хранящий логин пользователя;
- attr.passw – атрибут, хранящий пароль пользователя;
- attr.phone – атрибут, хранящий телефонный номер авторизующегося абонента;
- ip – IP-адрес LDAP-сервера;
- port – порт LDAP-сервера;
<VALUE> — значение параметра.
Пример:
Установить IP-адрес LDAP-сервера 192.168.23.23:
ecss-root@[md1@leonid1]:/# domain/<DOMAIN>/sip/ldap/set ip 192.168.18.111 Executed on the pa_sip1@leonid1 [{old,"192.168.18.111"},{new,"192.168.18.111"}]
Установить порт LDAP-сервера 389:
ecss-root@[md1@leonid1]:/# domain/<DOMAIN>/sip/ldap/set port 389 Executed on the pa_sip1@leonid1 [{old,"389"},{new,"389"}]
Установить путь доступа для хранения/получения информации по авторизации абонента «pa_sip»:
ecss-root@[md1@leonid1]:/# domain/<DOMAIN>/sip/ldap/set access.path ou=sip1,dc=ecss Executed on the pa_sip1@leonid1 [{old,"ou=pa_sip,dc=ecss"},{new,"ou=sip1,dc=ecss"}]
Установить имя пользователя «admin»:
ecss-root@[md1@leonid1]:/# domain/<DOMAIN>/sip/ldap/set access.login cn=admin,dc=ecss Executed on the pa_sip1@leonid1 [{old,"cn=admin,dc=ecss"},{new,"cn=admin,dc=ecss"}]
Установить пароль для доступа к данным «admin»:
ecss-root@[md1@leonid1]:/# domain/<DOMAIN>/sip/ldap/set access.passw admin Executed on the pa_sip1@leonid1 [{old,"admin"},{new,"admin"}]
Установить домен регистрации «dc»:
ecss-root@[md1@leonid1]:/# domain/<DOMAIN>/sip/ldap/set attr.domain dc Executed on the pa_sip1@leonid1 [{old,"dc"},{new,"dc"}]
Установить телефонный номер, авторизующегося абонента «telephoneNumber»:
ecss-root@[md1@leonid1]:/# domain/<DOMAIN>/sip/ldap/set attr.phone telephoneNumber Executed on the pa_sip1@leonid1 [{old,"telephoneNumber"},{new,"telephoneNumber"}]
Установить логин пользователя «cn»:
ecss-root@[md1@leonid1]:/# domain/<DOMAIN>/sip/ldap/set attr.login cn Executed on the pa_sip1@leonid1 [{old,"cn"},{new,"cn"}]
Установить пароль пользователя «description»:
ecss-root@[md1@leonid1]:/# domain/<DOMAIN>/sip/ldap/set attr.passw description Executed on the pa_sip1@leonid1 [{old,"description"},{new,"description"}]
Ручная синхронизация алиасов с LDAP сервером
Для начала нужно настроить сервер ldap командой
domain/<domain>/ldap/declare
Далее нужно настроить сервер для синхронизации (нужно если синхронизация будет происходить по времени):
domain/<domain>/ldap/sync/properties/set server
Также нужно настроить параметр, по которому будет производиться поиск в ldap
domain/<domain>/ldap/sync/properties/set search_parameter
Опциональной можно настроить правила того, каким образом должны параметры ldap копироваться в параметры ssw:
domain/<domain>/ldap/sync/properties/set ldap_to_alias_settings_map <ldapParam> <sswParam> <Type>
Type :: atom | binary | integer | string | term
Для синхронизации нужно выполнить команду:
domain/<domain>/ldap/sync/force <ldap_server> <address_range>
Ошибка Alias with address <address> not found говорит о том, что в ldap нет ни одной записи, searchParam которой был бы равен используя <address>.
Настройка таймеров очистки временного каталога приема факсов
Для промежуточного сохранения файлов факсов при работе услуги "Fax to Email" используется директория /var/spool/ecss/ecss-media-server/. В штатном режиме после приема и сохранения на http-сервере файл из данного каталога удаляется. Если по каким-либо причинам сохранение на http-сервер не удалось(например, обрыв вызова во время приема файла), то файл остается во временном каталоге. По умолчанию время хранения — 180 дней или при превышении размера каталога сверх значения, указанного в конфигурационном файле медиа-сервера.
Механизм автоматической очистки реализован реализован на базе системного сервиса incrond. Все файлы, попадающие в /var/spool/ecss/ecss-media-server будут удаляться по истечении времени, установленного в ecss-media-server.conf.
Пример установленного значения:
sasha@ecss1:~$ cat /usr/lib/tmpfiles.d/ecss-media-server.conf #Type Path Mode UID GID Age Argument d /var/spool/ecss/ecss-media-server 0755 ssw ssw 180d -
После изменения времени хранения необходимо перечитать настройки systemd:
sudo systemctl daemon-reload
Настройка периодичности мониторинга находится в файле systemd-tmpfiles-clean.timer. Для изменения периода мониторинга нужно воспользоваться командой:
sudo systemctl edit systemd-tmpfiles-clean.timer
Прописать секцию новых настроек таймеров, например:
[Timer] OnBootSec=5min OnUnitActiveSec=1h
где
- OnBootSec=5min — проверка файлов через 5 минут после старта сервиса
- OnUnitActiveSec=1h — далее проверять каждый час.
Просмотр получившихся настроек:
sasha@ecss1:/var/spool/ecss/ecss-media-server$ sudo systemctl cat systemd-tmpfiles-clean.timer # /lib/systemd/system/systemd-tmpfiles-clean.timer # SPDX-License-Identifier: LGPL-2.1+ # # This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. [Unit] Description=Daily Cleanup of Temporary Directories Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8) [Timer] OnBootSec=15min OnUnitActiveSec=1d # /etc/systemd/system/systemd-tmpfiles-clean.timer.d/override.conf [Timer] OnBootSec=5min OnUnitActiveSec=ih
Журнал работы сервиса можно также просмотреть системными инструментами, например:
sasha@ecss1:/var/spool/ecss$ journalctl -u systemd-tmpfiles-clean -n 4 -x -- Logs begin at Thu 2019-04-25 09:07:49 +07, end at Mon 2019-06-24 17:32:38 +07. -- июн 24 16:22:02 ecss1 systemd[1]: Starting Cleanup of Temporary Directories... -- Subject: Начинается запуск юнита systemd-tmpfiles-clean.service -- Defined-By: systemd -- Support: http://www.ubuntu.com/support -- -- Начат процесс запуска юнита systemd-tmpfiles-clean.service. июн 24 16:22:02 ecss1 systemd[1]: Started Cleanup of Temporary Directories. -- Subject: Запуск юнита systemd-tmpfiles-clean.service завершен -- Defined-By: systemd -- Support: http://www.ubuntu.com/support -- -- Процесс запуска юнита systemd-tmpfiles-clean.service был завершен. -- -- Результат: RESULT. июн 24 17:22:03 ecss1 systemd[1]: Starting Cleanup of Temporary Directories... -- Subject: Начинается запуск юнита systemd-tmpfiles-clean.service -- Defined-By: systemd -- Support: http://www.ubuntu.com/support -- -- Начат процесс запуска юнита systemd-tmpfiles-clean.service. июн 24 17:22:03 ecss1 systemd[1]: Started Cleanup of Temporary Directories. -- Subject: Запуск юнита systemd-tmpfiles-clean.service завершен -- Defined-By: systemd -- Support: http://www.ubuntu.com/support -- -- Процесс запуска юнита systemd-tmpfiles-clean.service был завершен. -- -- Результат: RESULT.
Таймеры контроля размера каталога /var/spool/ecss/ecss-media-server задаются сервисом ecss-media-server-cleaner, который запускает скрипт
/usr/lib/ecss/ecss-media-server/cleaner
Если размер превышает установленный в /etc/ecss/ecss-media-server/config.xml, параметр
spool-dir-size="100M"
Происходит удаление старых файлов до достижения разрешенного размера каталога.
Настройка IPv6 на системных интерфейсах
Описание
На уровне системы реализована поддержка протокола IPv6 для ряда системных интерфейсов.
Для работы системных интерфейсов требуется использовать глобальные IPv6 адреса. При использовании локальных адресов системные интерфейсы работать не будут.
Для использования IPv6 используется следующий формат:
[ip]:port
Перед тем как присваивать ipv6 адрес на интерфейс командой
sudo ifconfig Имя_Интерфейса inet6 add Адрес_IPv6
Требуется включить возможность назначения IPv6 адреса на интерфейс. Для это следует в файле /proc/sys/net/ipv6/conf/Имя_Интерфейса/disable_ipv6 изменить значение с 1 на 0.
После чего перезагрузить сервис systemd-networkd.
Системный сервис cocon_exec
Данный сервис позволяет выполнять команды Cocon не подключаясь к нему, для этого используется следующий формат:
ccnexec -u *login* -p *password* [*IPv6*]:*port* -c *comand*
где
- login — логин для подключения к Cocon;
- password — пароль для подключения к Cocon;
- IPv6 — IP адрес версии 6 для подключения к Cocon;
- port — порт для подключения к Cocon;
- comand — команда передаваемая в Cocon.
Системный сервис ssh
Для подключения к удаленному терминалу имеется возможность использовать IPv6, например для подключения к Cocon.
ssh *login*@2*IPv6* -p *port*
где
- login — логин для подключения к удаленному терминалу;
- password — пароль для подключения к удаленному терминалу;
- port — порт для подключения к удаленному терминалу.
Системный сервис HTTP Terminal
Для подключения к системному терминалу через IPv6 требуется настроить IP. Для этого требуется ввести:
cluster/mediator/md1/properties/cocon_http_terminal/set md1@ecss1 http_server_listen_iface *IPv6*
где
- IPv6 — IPv6 адрес, на который требуется заходить для подключения к WEB.
Системный сервис Chronica
Для системы логирования в поле {udp, {"ipaddr", 514} можно вводить IPv6 адрес.
Системный сервис Restfs
Для включения IPv6 следует добавить /usr/lib/ecss/ecss-restfs/nginx/ecss-restfs-core:
server { …. listen [Ip]:Port; ….. }
Перезагрузить nginx:
service nginx restart
Перезагрузить ecss-restfs:
systemctl restart ecss-restfs-core.service
Добавить сервер:
restfs/declare ip6 http://[Ip]:Port;
Проверить статус серверов:
restfs/list
Системный сервис Custom_callback
Пример http запроса:
curl -G -d "number=1010&time=1&attempts=1&timeout=10000" http://[::1]:8086/test.ats/service/custom_cb/4b4fdc08e490b7c2-verbose
Системный сервис Mycelium
Для использования IPv6 в Mycelium нужно в /etc/ecss/ecss-mycelium/mycelium1.config изменить bind_ip_addresses для mycelium_broker. IP задается в виде восьмизначного тапла:
{0,0,0,0,0,0,0,1} — localhost.
Т.е каждый октет требуется перевести из 16-ти разрядной системы в 10-ти разрядную.
Чтобы ноды подключались к выставленному IP нужно в конфигурационном файле каждого приложения настроить mycelium_client. Например:
В /etc/ecss/ecss-ds/ds.1config для mycelium_client изменить поле host.
Системный сервис Mysql
Для открытия соединения IPv6 следует в конфигурационный файл /etc/mysql/mysql.conf.d/mysqld.cnf определить поле:
bind-address = ::1
Перезапустить сервис:
systemctl restart mysql
Сейчас все базы данных определены только для IPv4 адресов. Чтобы подключиться к БД необходимо добавить пользователей для IPv6 адресов.
GRANT ALL PRIVILEGES ON *.* TO 'user_name'@'::1' IDENTIFIED BY 'password';
Системный сервис RADIUS
Чтобы открыть соединение для радиус сервера на IPv6 в /etc/freeradius/radiusd.conf (при использовании freeradius) в секции listen необходимо закомментировать ipaddr и добавить ipv6addr = :: (или любой другой IPv6 адрес). Использовать IPv4 и IPv6 одновременно нельзя.
Добавить клиента в /etc/freeradius/cilents.conf.
Например:
client 2001:db8:0:f101::/64 { secret = secret123 shortname = localhost }
Перезагрузить сервис:
service freeradius restart
Определить account сервер. Пример:
domain/test.ats/aaa/radius/declare account_server6 ::1 account secret123 retry-count = 3, retry-timeout = 250, ip-family = inet6
Определить access сервер. Пример:
domain/test.ats/aaa/radius/declare access_server6 ::1 access secret123 retry-count = 3, retry-timeout = 250, ip-family = inet6
Опция ip-family используется для разделения типа IP-адреса. Может принимать значение inet6 или inet. Для подключения по IPv6 является обязательной.
Так же для каждого уже созданного сервера можно установить опцию ip-family командой:
domain/test.ats/aaa/radius/set account_server ip-family = inet6
Добавить radius сервера:
domain/test.ats/aaa/accounting/set servers add account_server6 domain/test.ats/aaa/access/set servers add access_server6
Включить использование radius:
domain/test.ats/aaa/accounting/set enable true domain/test.ats/aaa/access/set enable true
Запуск доменов отдельными "пачками"
При большом количестве доменов(>200) рекомендуется в конфигурации изменить параметры, чтобы не все домены стартовали сразу одновременно.
Есть опция запуска трайк неймспейсов (доменов) пачками. Размер пачки задается в конфигурации ядра /etc/ecss/ecss-core/core1.config, параметр chunk_size, по умолчанию 1. Рекомендуется выставлять не слишком большой размер пачек, например 30.
{trike_core, [
{chunk_size, 1},