Сохранение логов muc-конференций в виде html

()

Если у вас есть 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".

На этом всё. Приятной работы!

Ключевые слова: ejabberd, jabber, muc, mod_muc_log.

Комментарии:

Anonymous 2010-05-06 11:44:28 (#)

Пробел в первой команде пропустил

MooSE 2010-05-06 11:55:32 (#)

спасибо. поправил.
Новый комментарий



© 2006-2016 Вадим Калинников aka MooSE