Если у вас есть jabber-сервер под управлением ejabberd и если вы используетесь встроенной в него службой muc - наверняка вас посещала мысль о сохранении логов конференций.
Эта задача решается очень просто и легко благодаря входящему в комплект поставки ejabberd модулю mod_muc_log. По умолчанию он отключен, но включить его и сконфигурировать - дело не сложное. Далее будет показано как именно это можно сделать.
Первым делом определимся с директорией для записи логов. Автор этих строк на своём сервере выбрал директорию /var/www/conference/html.
Особо следует обратить внимание на права на директорию - пользователь, от которого запущен ejabberd, должен иметь возможность писать в эту директорию (казалось бы мелочь - но почему-то все про неё забывают).
Если говорить о Debian/Ubuntu то ejabberd работает с правами пользователям ejabberd, так что создать нужную директорию можно следующей командой:
mkdir -p /var/www/conference/html && chown -vR ejabberd:ejabberd /var/www/conference/html
Далее на всякий случай сохраним резервную копию файла конфигурации:
cp /etc/ejabberd/ejabberd.cfg /etc/ejabberd/ejabberd.cfg_back
Дальше находим в файле строку:
%%{mod_muc_log,[]},
И заменяем на следующие строки:
{mod_muc_log,[ {access, muc}, {access_create, muc}, {access_admin, muc_admin}, {access_log, muc}, {outdir, "/var/www/conference/html"}, {top_link, {"http://ylsoftware.com/", "Yellow Leaf"}} ]},
Подробное описание всех параметров можно найти тут.
Далее нужно перезапустить ejabberd командой:
ejabberdctl restart
Теперь в настройках конференций появляется дополнительный флаг - ведение логов. Например в PSI вам нужно зайти в конференцию как владелец или администратор, Выбрать меню "Actions" и в нём выбрать пункт "Configure Chatroom". Далее на вкладке "General" нужно поставить флажок напротив галочки "Включить журналирование" и сохранить настройки комнаты.
На этом настройка заканчивается. Для доступа к логам можно настроить web-сервер. Для этого можно использовать например быстрый и лёгкий сервер thttpd. Установим его командой:
apt-get install thttpd
Далее приводим файл конфигурации к следующему виду:
port=80 dir=/var/www/conference/html chroot user=www-data cgipat=/cgi-bin/* throttles=/etc/thttpd/throttle.conf logfile=/var/log/thttpd.log charset=utf-8
И перезапускаем сервис:
invoke-rc.d thttpd restart
Теперь если имя вашего jabber-сервера "our_firm.com", то вы можете получить доступ к логам вашей службы конференций открыв в браузере адрес "http://our_firm.com".
На этом всё. Приятной работы!
Anonymous 2010-05-06 11:44:28 (#)