Openfire - настройка собственного jabber-сервера обмена сообщениями

Версия для печатиОтправить другуPDF version

Openfire

Для начала немного общей информации...

В отличие от коммерческих систем мгновенных сообщений, таких, как AIM, ICQ, MSN и Yahoo, Jabber является децентрализованной, расширяемой и открытой системой. Любой желающий может открыть свой сервер мгновенных сообщений, регистрировать на нём пользователей и взаимодействовать с другими серверами Jabber. На основе протокола XMPP уже открыто множество частных и корпоративных серверов Jabber. Среди них есть достаточно крупные проекты, такие как Google Talk, Я.Онлайн, Gizmo, LiveJournal, Diary.ru и QIP Infium. Поэтому многие корпорации для внутреннего обмена сообщениями используют решение с использованием протокола Jabber.

Итак, поставленая задача - настроить для корпоративного клиента jabber-сервер. После гугления и анализа собранной информации выбор остановился на Openfire. Почему так?

  • простота установки и настройки;
  • удобный веб-интерфейс администрирования (в отличие от сервера jabberd, у которого он вообще отсутствует);
  • достаточно широкий функционал;
  • наличие различных плагинов, облегчающих жизнь администратора;
  • бесплатность и открытость.

Думаю с теоретической частью пора заканчивать и переходить к практической .

Устанавливать будем из портов, благо всегда поддерживаю их в актуальном состоянии.

# cd /usr/ports/net-im/openfire
# make install clean

Дистрибутив, кстати, сравнительно "тяжелый" - 48 MB. Далее еще "веселее"...  Openfire для корректной работы необходима Java. В портах java присутствует, но в связи с лицензионной политикой, необходимые дистрибутивы нужно загрузить вручную и "положить" их в /usr/ports/distfiles. В сообщении даже даются ссылки, которыми необходимо воспользоваться для загрузки:

 Because of licensing restrictions, you must fetch the distribution
 manually.
 
 Please access
 
 
 with a web browser and "Accept" the End User License Agreement for
 "Caffe Diablo 1.6.0".
 
 Please open http://java.sun.com/javase/downloads/index.jsp
 in a web browser and follow the "Download" link for
 "JDK US DST Timezone Update Tool - 1_3_18" to obtain the
 time zone update file, tzupdater-1_3_18-2009k.zip.
 
 Please place the downloaded file(s) in /usr/ports/distfiles.

Поскольку ранее стыкался уже с данным аспектом, обратил внимание на то, что сохранять дистрибутив надолго не имеет смысла, поскольку изменяются необходимые для порта версии, и все равно приходится закачивать его по новому. Соответственно закачиваем необходимый архив по полученной ссылке и передаем этот файл на сервер (по FTP, или по SSH с помощью WinCP), а потом перемещаем его в /usr/ports/distfiles. Кстати, и этот дистрибутив оказался не из легких... 61,1 MB всего лишь...

# mv diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2 /usr/ports/distfiles/

Также необходимо поместить в /usr/ports/distfiles и "JDK US DST Timezone Update Tool". Перейдя по предложенной ссылке (http://java.sun.com/javase/downloads/index.jsp), находим необходимую версию (в моем случае это v1.3.18 и жмем "Download"... И вот здесь ждет сюрприз. Необходимо иметь аккаунт, чтобы можно было выкачать данный архив. Зарегистрируйтесь и качайте... Но... Открою секрет. Воспользовавшись поиском в google, данный файл я скачал с http://shuqun.com/files/.

# wget http://shuqun.com/files/tzupdater-1_3_18-2009k.zip
# mv tzupdater-1_3_18-2009k.zip /usr/ports/distfiles/

Продолжим прерванную инсталляцию:

# make install clean

Ну вот... Танцы с бубном завершились, инсталляция продолжается. По завершению инсталляции перечитываем пути, и по "просьбе" порта добавляем в стартовый скрипт /etc/rc.conf строку загрузки Openfire. Теперь можно запускать Openfire:

# rehash
# echo '# Jabber-server (Openfire)' >> /etc/rc.conf
# echo 'openfire_enable="YES"' >> /etc/rc.conf
# sh /usr/local/etc/rc.d/openfire start
Starting openfire.

Если все ok, то подключаемся к web-интерфейсу для дальнейшей установки и настройки. В строке браузера вводим http://ip_jabber-servera:9090.

На первой странице предлагается выбрать предпочтительный язык. Русского нету, так что останавливаемся на английском либо любом другом знакомом наречии :

 Далее необходимо вписать имя нашего домена и порты, на которых будет работать админка jabber-сервера.

Следующим шагом необходимо определиться с базой данных. Есть два варианта работы: с внутренней базой и внешней. Поддерживаются MySQL, Oracle, Microsoft SQL Server, PostgreSQL, IBM DB2. Обычно я даю приоритет MySQL, но в данном случае свой выбор остановлю на хранении данных во внутренней базе данных. Мой выбор аргументируется отсутствием доступа к БД MySQL, поскольку сервер настраивается на заказ. Согласен, доступ можно было бы получить. Но уйдет время на согласование, получение реквизитов и тд. Тем более, исходя из прошлого опыта, знаю что внутренняя БД тоже работает довольно шустро.

Следующим шагом определяемся с тем, где будут храниться учетные записи пользователей. Поскольку LDAP я не использую, а Clearspace еще не испольвовал, то хранить будем в самой базе.

Завершающим шагом инсталляции является создание аккаунта администратора.

Инсталляция завершена, и нам предлагают залогиниться, чтобы попасть в админку.

Собственно вот оно, окно авторизации:

 

Проходим авторизацию с помощью созданного ранее аккаунта администратора и попадаем в админку. Первым делом советую посетить закладку "Plugins" и установить необходимые плагины. Возле каждого плагина есть два значка – "readme" и "changelog", из которых можно почерпнуть информацию о том, что представляет из себя тот или иной плагин. Ставьте необходимые и переходите к дальнейшим настройкам сервера.

По-умолчанию после запуска сервера им уже можно пользоваться. Но я все же советую более детально вникнуть в настройки. Выбирайте любой клиент и подсоединяйтесь. Кстати, разработчик Openfire также представляет и свой собственный клиент Spark. Также, при помощи плагина "Client Control", можно контролировать использование того или иного клиента, а также сделать доступным скачивание клиента Spark для пользователей (предварительно необходимо закачать дистрибутивы на свой сервер. Доступны версии для Windows, Mac и Linux/Unix).
 

 

ПРИМЕР НАСТРОЙКИ С ХРАНЕНИЕМ НАСТРОЕК И СПИСКА ПОЛЬЗОВАТЕЛЕЙ В СУБД MySQL

Собственно процесс инсталляции...

На первой странице предлагается выбрать предпочтительный язык. Русского нету, так что останавливаемся на английском либо любом другом знакомом наречии :

Далее необходимо вписать имя нашего домена и порты, на которых будет работать админка jabber-сервера.

Следующий шаг - выбор базы данных для хранения. Поскольку определились, что хранить все данные будем в СУБД MySQL, то отмечаем пункт "Standart Database Connection".

 

Кстати... Пора бы уже создать саму базу данных.  

# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9902
Server version: 5.0.86-log FreeBSD port: mysql-server-5.0.86
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> create database openfire;
Query OK, 1 row affected (0.00 sec)
 
mysql> grant all on openfire.* to 'openfire'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)
 
mysql> quit
Bye

Собственно окно настройки коннекта к БД:

Определяемся, где будут храниться учетные записи пользователей.

 

Завершающим шагом инсталляции является создание аккаунта администратора.

Инсталляция завершена.

 

Настройка плагина Monitoring Service

Для того, чтобы на сервере можно было вести историю переписки, воспользуемся возможностями плагина Monitoring Service.

Установим плагин на соответствующей странице(Plugins -> Available Plugins), нажав на плюсик напротив Monitoring Service.

Дальше идем по пути Server -> Archiving -> Archiving Settings инастраиваем логиирование

Openfire

После применения настроек, все разговоры будут вноситься в БД.

Просмотреть разговоры можно на странице Server -> Archiving -> Search Archive:

Openfire

 

Настройка плагина IM Gateway

Для организации транспортов в другие сервисы мгновенных сообщений используется плагин IM Gateway. Однако не так давно его заменили на Kraken XMPP IM Gateway. Если кому-то нужна старая версия, то скачать ее можно по ссылке ниже. Кстати, через форму загрузки плагина он не заработал, а после того, как вручную "положил" его в /usr/local/share/java/openfire/plugins.

gateway.jar

 

P.S. Если хотите переустановить Openfire, не обязательно сносить все и вся. Достаточно закомментировать предпоследнюю строку "<setup>true</setup>" в файле /usr/local/etc/openfire/openfire.xml и перезапустить Openfire.

Еще один маленький секрет. Хотя установка завершена, необходимо вручную поправить конфигурационный файл. Если этого не сделать, кириллица в именах пользователей и групп (при Default-формате профилей), а также "отложенные" сообщения будут отображаться иероглифами-крякозябликами из-за ошибки в кодировке. Открываем файл /usr/local/etc/openfire/openfire.xml . Ищем строку, описывающую базу данных: "<serverURL>jdbc:mysql://host_name:3306/base_name</serverURL>", после чего приводим её к виду "<serverURL>jdbc:mysql://host_name:3306/base_name?characterEncoding=UTF-8</serverURL>".

Ваша оценка: Нет Средняя: 4.8 (11 голосов)

Отличная статья, спасибо. По

Отличная статья, спасибо. По поводу кодировки в openfire.xml, если база MYSQL настроена на cp1251, то ничего менять не надо. Все отображается корректно. А так, отличный jabber - сервер для организации внутрикорпоративного чата (OpenFire + PSI).

Есть ли возможность делать

Есть ли возможность делать рассылку по определенным группам или пользователям (работает через LDAP) ? 

Перенес вопрос на форум. Вам

Перенес вопрос на форум.

Вам сюда.

Re: Openfire - настройка собственного jabber-сервера обмена ...

Добрый день
Поставил на VirtualBox Ubuntu 14.04 server x64 сверху поставил OpenFire и что для него требовалось (apache2, MySQL, java 8), все нормально работало (1сутки), но потребовалось перезагрузить машину, после я не смог подключиться к OpenFire с помощью клиента, попробовал зайти в админку просто белый лист, подумал что не работает apache зашёл на порт 80 отобразилась стандартная страница apache, думаю значит все работает. перезапустил сервис sudo service openfire start. Вроде все нормально. но в админку не заходит клиенты не подключаются.
Помогите разобраться что и как.

Re: Openfire - настройка собственного jabber-сервера обмена ...

Попробуйте переустановить Openfire "поверху" старого. Должно помочь.

Не забудьте предварительно забекапить данные.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Вставай, Україно!

Литература