CommuniGate Pro
 


 

Журналирование для CommuniGate Pro



Цель Журналирования - сохранение копий входящих и исходящих сообщений, хранение их в течение определённого периода, автоматическое их удаление после окончания периода. Это гарантирует наличие резервных копий писем на случай непреднамеренного удаления пользователями входящей почты.

По сравнению с другими методами сохранения копий сообщений (через Правила, или через СОРМ - перехват сообщений) Журналирование обладает следующими преймуществами:

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


Установка

Убедитесь, что на сервере установлен язык Perl. Чтобы это выяснить, наберите в командной строке ОС:
perl -V
Для ОС Windows можно скачать бесплатный интерпретатор Perl от ActiveState.

Требуется CommuniGate Pro версии 6.0.11 или новее.

Загрузка скрипта Журналирования Journaler.pl
Язык CPU  Download
Perl любой
Загрузите скрипт в директорию данных CommuniGate Pro; сделайте его выполняемым.
Скрипт тебует Perl модуль CLI.pm, скачайте его из old.communigatepro.ru/CGPerl/CLI.pm и запишите в ту же директорию, что и файл Journaler.pl.
cd /var/CommuniGate/
wget http://old.communigatepro.ru/CGPJournaler/Journaler.pl
chmod +x Journaler.pl
wget http://old.communigatepro.ru/CGPerl/CLI.pm

Настройка

Настройка скрипта Журналирования:

Откройте скрипт в текстовом редакторе и измените эту строку:
my $PostmasterPassword='pass';
Нужно указать пароль postmaster-а.

Запуск скрипта:

Через Веб Интерфейс Администратора CommuniGate Pro откройте страницу Установки->Общее->Помощники. Создайте Помощник со следующими параметрами:
Фильтрация Данных
Уровень Журнала: Путь к Программе:
Тайм-аут: Авторестарт:
Обратите внимание: Для ОС Windows "Путь к Программе" потребуется указать как c:\perl\bin\perl.exe "c:\CommuniGate Files\Journaler.pl"
Обратите внимание: в Кластерной конфигурации это нужно сделать на всех узлах, где осуществляется Обработка Очередей; как правило - на Frontend Серверах.

Для запуска Помощника на странице Установки->Почта->Правила создайте Серверное (или Кластерное) Правило с произвольными именем и приоритетом и следующим содержанием:
Данные Операция Параметр
Действие Параметр
<
При первом запуске скрипт создаст Домен (Общий Домен в случае конфигурации с Динамическим Кластером) с именем journals.local и некоторыми настойками, и Журнал-образец внутри Домена.

Настрока Журнала:

Откройте Домен journals.local, откройте страницу настроек Пользователя j-mydomain, созданного в качестве Журнала-образца. Измените значения величин AddPattern, SkipPattern и "days to retain".
Тип: 
Набор Папок
Права Доступа 
создано:  4:55:37AM
Настоящее Имя:   
Область:   
Город:   
Подразделение:   
CommuniGate  
Пароль: 
 
Phone:     

 
Эти значения хранятся в полях "st", "l" и "ou" (Область, Город и Подразделение, соответственно), которые изначально не предназначены для этого, но эти поля всегда сущестуют в настройках пользователей по умолчанию, и удобны для нашей цели.
Подождите 10 минут или перезапустите Помощник, чтобы изменения вступили в силу.

Значения AddPattern и SkipPattern являются регулярными выражениями языка Perl, где
 . соответствует одному любому символу
 .* соответствует любой последовательности символов любой длинны
 \d соответствует одной цифре
 \. соответствует символу точки
 (abc|def) соответствует либо abc, либо def
 [a-d] соответствует диапазону символов от a до d
Используйте только символы нижнего регистра.
Данные после '#' являются комментарием; начальные и конечные пробелы игнорируются; пустой шаблон не соответствует ничему.

Если у сообщения адрес Return-Path или адрес получателя из конверта соответствует шаблону AddPattern и не соответствует шаблону SkipPattern, то сообщение записывается в Журнал. Используйте шаблон SkipPattern чтобы исключить собщения определённых пользователей из Журналирования; тем не менее они будут включены в Журнал, если они были от/для другого пользователя, чьи сообщения подвергаются Журналированию.

Образцы шаблонов:
.*@mydomain\.com
все пользователи из домена "mydomain.com"
.*@(mydomain|otherdomain)\.com
все пользователи из двух доменов
admin.*
пользователи всех доменов (включая внешние), чьи имена начинаются со строки "admin".

Значение "days to retain" определяет количество дней, после которых сообщения автоматически удаляются из Журнала.

Вы можете создать несколько Журналов с разными шаблонами AddPattern и SkipPattern для обслуживания нескольких доменов, или групп пользователей внутри одного домена. Журналы должены быть в домене journals.local, имя пользователя-Журнала должно начинаться с символов "j-".


Восстановление сообщений из Журналов

Загрузка скрипта Восстановленя jRestore.pl:

Язык CPU  Download
Perl любой

Настройка скрипта Восстановления:

Откройте скрипт в текстовом редакторе и измените эти строки:
my $CGServerAddress='127.0.0.1'; #IP or domain name;
my $Password='pass';
Нужно указать пароль postmaster-а и адрес сервера CommuniGate.

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

Запуск скрипта:

Синтаксис:
perl jRestore.pl [параметры] user@domain
Восстановить сообщения пользователя user@domain.
Параметры:
--target account@domain/mailbox
Указывает место назначения для воссановленных сообщений - Пользователя и Папку. Пользователь должен существовать; Папка, если не существует, будет создана автоматически.
Если параметр не указан, то сообщения будут скопированы в папку INBOX восстанавливаемого пользователя.
Пример:
perl jRestore.pl --target admin@domain.com/abcd user@domain.com
Искать сообщения от/для пользователя user@domain.com и скопировать их в Папку "abcd" пользователя "admin@domain.com".
--journal имя
Имя Журнала, без префикса "j-".
Если параметр не указан, то нужный Журнал будет определён автоматически путём сравнения имени восстанавливаемого пользователя с шаблонами AddPattern и SkipPattern всех Журналов.
Пример:
perl jRestore.pl --journal mydomain user@domain.com
Искать только в Журнале "mydomain".
--days число
Восстанавливать только сообщения не старше данного количества дней.
Если пареметр не указан, то будут восстановлены все доступные сообщения.
В зависимости от размера Журнала и производительности хранилища сервера процесс восстановления может занимать много времени, поэтому для предотвращения прерывания процесса рекомендуется запускать скрипт через 'nohup' в режиме демона:
nohup ./jRestore.pl user@mydomain.com &
На экран выводятся только сообщения об ошибках, информация о промежуточных и окончательных результатах поиска пишется в файл jRestore.log, который можно смотреть во время работы скрипта.

Поддержка

Для связи с разработчиками пишите на support@old.communigatepro.ru.


CommuniGate Pro Guide. Copyright © 2020, AO SBK