Главная > How-To > Jabber-сервер для локальной сети. Openfire + MySQL под Windows

Jabber-сервер для локальной сети. Openfire + MySQL под Windows

3 октября 2009

Почти в каждом офисе, насчитывающем 30 и более сотрудников, рано или поздно возникает необходимость реализовать систему мгновенного обмена сообщениями. Причем, желательно со списком контактов, хранящимся централизованно, на сервере, структурированном по отделам, с сохранением истории сообщений, удобным русскоязычным интерфейсом и прочими рюшечками, которые так ценит руководство. Что ж, это задача не из числа неподъемных. Я расскажу как ее реализовать на базе связки jabber-сервера Openfire и СУБД MySQL под управлением Windows.

Нам нужна выделенная машина с Windows (версии XP и старше), дистрибутивы Openfire и MySQL. Начнем с установки и настройки MySQL.

Установка MySQL

 

Выбор MySQL продиктован, по большей части, ее бесплатностью и надежностью. Это важные характеристики как для руководства (которое не хочет выделять деньги на удовлетворение своих прихотей потребностей организации в ИТ), так и для системных администраторов (которые не хотят использовать неблагонадежные системы, находящиеся в "группе риска").

Берем дистрибутив MySQL с сайта Sun (http://www.sun.com/software/products/mysql/getit.jsp) и запускаем установщик.

jabber01

Мы видим типичный диалог между пользователем и ПО. Жмем "Next"

jabber02

Выбираем тип установки "Typical"

jabber03

и запускаем инсталляцию.

jabber04

По ее окончании, установщик предложит немедленно приступить к настройке и регистрации сервера в Sun. Первое жизненно необходимо, второе – по желанию.

jabber05

Конфигуратор сервера MySQL – опять же привычный нам Wizard.

jabber06

Так как мы создаем решение, которое будет годами радовать сотрудников нашей организации, настраивать сервер мы будем детально.

 jabber07

Мастер спросит нас о типе машины, на котором будет работать сервер MySQL. Выбираем вариант "Server Machine". Вариант для разработчика не подойдет, т.к. при росте базы и количестве обращений к ней, сервер будет "захлебываться" от недостатка памяти, отводимой для него. Выделенный сервер MySQL, в свою очередь, радостно съест все системные ресурсы вне зависимости от реальной нагрузки на него.

jabber08

Тип базы — "Multifunctional".

 jabber09

Я устанавливаю MySQL на виртуальную машину с одним жестким диском, поэтому выбор места хранения баз данных у меня ограничивается системным разделом. В общем случае (при установке MySQL на отдельный сервер) рекомендуется хранить базы данных в отдельной директории на несистемном разделе.

jabber10

Мастер спросит о планируемом количестве конкурентных соединений с базой данных. По большому счету, для jabber-сервера более чем достаточно варианта DSS, но в расчете на рост организации лучше перестраховаться и установить вручную сотню-другую допустимых соединений. Это употребит больше памяти, но обеспечит стопроцентную доступность базы данных для клиентов.

jabber11

Далее мастер спросит, следует ли разрешить соединяться с базой данных по сети и, если да, то какой порт использовать для соединения. Безусловно следует. Причем, рекомендуется использовать порт по умолчанию, т.е. 3306. Можно сразу же добавить этот порт в исключения для брандмауэра (чекбокс "Add firewall exception for this port"). У меня на виртуальной машине брандмауэр отключен, так что я оставил опцию нетронутой. Чекбокс "Enable Strict Mode" рекомендуется включить. Включаем не вникая.

 jabber12

Следующий остановочный пункт – кодировка, в которой будут храниться таблицы данных. Весь цивилизованный мир планомерно переходит на UTF-8. Мы не будем отставать.

 jabber13

После выбора кодировки баз данных, мастером будет предложено установить MySQL как службу Windows и инициировать его автоматический запуск при загрузке системы, а также добавить в переменную PATH пути с исполняемыми файлами MySQL. Первое нам нужно для того, чтобы не сосредотачивать внимание на запуске MySQL после каждых выключения или перезагрузки сервера, а второе для того, чтобы иметь возможность выполнять команды MySQL из командной оболочки Windows, не утруждая себя указывать расположение исполняемых файлов MySQL вручную.

 jabber14

Наконец, настало время выбрать пароль для root.

 jabber15

И выполнить сценарий конфигурирования.

 jabber16

Установка закончена, сервер MySQL готов!

 

Создание базы данных MySQL

 

Управлять MySQL можно как из командной строки, так и с помощью графических средств администрирования (например, phpMyAdmin). Так как нам предстоит всего-навсего создать базу данных, ограничимся командной строкой:

jabber17

Для любителей смотреть сайты без графики:

mysqladmin –user=root —password=ваш-надежный-пароль create im

Я создал базу данных под названием "im" (от англ. instant messaging). Вы же вольны придумать ей любое название.

 

Установка Openfire

 

Пришло время устанавливать непосредственно сам jabber-сервер. Вообще-то их выбор не ограничивается одним вариантом, но Openfire на голову выше остальных по простоте развертывания и удобству администрирования. Поэтому качаем дистрибутив с http://www.igniterealtime.org/projects/openfire/ и приступаем к установке:

 jabber18

Этот процесс настолько тривиален, что приводить больше двух скриншотов не вижу смысла.

 jabber19

Запускаем…

 jabber20

Итак, открылась консоль Openfire. В ней выводится информация о состоянии сервера.

Запускаем браузер и заходим на http://127.0.0.1:9090

 jabber21

Нас приветствует установщик сервера Openfire. Выбираем язык (да-да, English. Официальной русификации Openfire пока не существует. Да и не очень-то она нужна) и жмем "Continue".

 jabber22

В настройках сервера необходимо указать домен (обычно указывается имя или IP-адрес компьютера, на котором установлен Openfire, но можно сделать красивее, и обозвать домен вычурным вариантом вроде Corporate-Messaning-System.local).

Примечание: на скриншоте я указал домен "workspace", а потом изменил его на "test", но напрочь позабыл переснять скриншот. А, между прочим, эта информация нам еще пригодится при настройке клиентов. Так что запоминайте: я выбрал домен "test"!

 

jabber23

Далее нужно выбрать базу данных: стандартный вариант (наш, с внешней базой данных) или корявый (использовать встроенную базу данных Openfire. Однажды я так уже делал. Через 3 месяца пришлось переустанавливать Openfire вместе с базой данных, так как она перестала инициализироваться).

jabber24_

Так как мы выбрали вариант с внешней базой, необходимо настроить коннектор.

Database Driver Presets – MySQL

JDBC Driver Class – по умолчанию

Database URL – jdbc:mysql://127.0.0.1:3306/im

Вот где нам пригодился порт подключения к базе, выбранный при настройке MySQL, а также имя базы данных (у меня — "im", как упоминалось выше).

Связка username/password – это учетная запись root сервера MySQL, настроенная мастером конфигурирования MySQL.

Также меняем значение "Maximum Connections" на 100.

jabber25_

Если вы все сделали верно, то вам будет предложено выбрать способ заведения пользовательских аккаунтов и групп для клиентов сервера Openfire. Вариантов всего 3:

1) Ручное управление. Вариант хорош тем, что список контактов будет максимально "чист": никто не появится на сервере просто так, без вашего ведома. Кроме того, имена пользователей и их логины тоже можно будет гибко настраивать. Да, это создаст еще один поинт, на который администратор будет отвлекаться по мере необходимости. С другой стороны… читаем дальше.

2) LDAP. Моя сеть построена на базе Active Directory. Конечно, было бы очень удобно подтягивать пользователей и группы из AD, имея только одну точку администрирования. Но, к сожалению, Openfire подтягивает их… кривовато. Кроме учетных записей пользователей, регистрируются доменные компьютеры, Builtin-группы и прочий трэш. В итоге одна точка администрирования оборачивается в те же две, только без права вычистить мусор из базы Openfire. Таким образом, сложная AD хоть и интегрируется в Openfire, но неудобоваримо.

3) Интеграция из Clearspace. Маловероятно, что в вашей организации есть подписчики Clearspace, поэтому вариант даже не рассматриваем.

jabber26_

Указываем e-mail и пароль администратора…

jabber27_

и завершаем установку.

 

Настройка Openfire

 

После окончания установки сервера Openfire, необходимо вернуться в консоль (значок лампочки в трее) и перезапустить сервер (Stop – Start). Если этого не сделать, вас может не пустить в веб-интерфейс управления сервером: будет высыпаться сообщение об ошибке авторизации. После перезапуска заходим в админку Openfire в браузере:

jabber28_

Логинимся и попадаем в консоль администратора.

jabber30_

Я не буду вдаваться в тонкости настройки сервера. Нам нужно максимально быстро развернуть корпоративное решение для обмена мгновенными сообщениями, чем мы и займемся. Первым делом создадим пользователя. Я создал учетную запись воображаемому Иванову Ивану.

К слову, советую серьезно отнестись к полю "Name", т.к. именно его значение будет использоваться в контакт-листе клиента jabber.

jabber31_

Теперь создадим группу. Скажем, для бухгалтерии.

jabber32_

Добавим в нее пользователя IvanovII.

jabber33_

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

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

 

Подключение клиентов

 

Самое время приступать к подключению пользователей к нашему серверу. Для этого необходим jabber-клиент, коих существует более чем много. Однако, 3 варианта все же предпочтительнее. 1-й – Spark (http://www.igniterealtime.org/projects/spark/index.jsp) от авторов самого Openfire. По правде говоря, я ожидал от него большего. Но он оказался громоздким и нестабильным. То есть именно таким, который мне не подходит. 2-й – QIP Infinum (http://qip.ru/ru/pages/download_infium_ru/). Главное преимущество QIP – привычный интерфейс. Он уже пару лет является стандартом де-факто в качестве клиента ICQ для русскоязычных пользователей, поэтому большинству сотрудников вашей организации не придется изучать новый продукт. Но на этом его плюсы заканчиваются, и начинаются минусы: навязчивая реклама, не совсем корректная работа (часто отваливается от сервера на базе Openfire) и неумение делить контакт-лист личной ICQ и корпоративного jabber’а. 3-й – Pandion (http://www.pandion.be/). ИМХО, идеальный клиент для организации корпоративного обмена сообщениями. Бесплатный, компактный, дружелюбный, симпатичный, Pandion делает именно то, что от него требуется. Я буду рассматривать подключение к серверу именно Pandion-клиентов.

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

Скачали, установили. Запускаем:

jabber34_

Pandion сразу попросит ввести данные пользователя. Вводим имя пользователя нашего Ивана Иванова, через @ вводим домен (помните мой комментарий по поводу неверно отснятого скриншота? Вот где нам пригодится эта информация о домене. В моем случае это, напоминаю, test) и жмем ссылку "Настройки Соединения".

jabber35_

В этом окошке предлагается ввести адрес и порт сервера, выбрать тип шифрования, метод аутентификации и прокси-сервер. В моем случае адрес сервера – 192.168.1.14. Так как я предпочитаю безопасный обмен сообщениями и выбираю тип шифрования SSL, порт сервера тоже придется указывать соответствующий: 5223 (в сводке информации о сервере Openfire он указан).

Жмем Ок, и в предыдущем окошке нажимаем "Вход".

jabber36_

Ура, мы внутри нашей jabber-сети.

Однако хотелось бы увидеть результат наших трудов по созданию и расшариванию групп и пользователей. На другом клиентском компьютере устанавливаем Pandion и логинимся на сервер администратором (не забываем настроить соединение с сервером и шифрование):

jabber37_

jabber38_

Вот уже 2 клиента в нашей сети. Как видите, в контакт-листе администратора автоматом появилась группа "Бухгалтерия", в которой засветился пребывающий он-лайн Иван Иванович Иванов. Отправим ему сообщение:

jabber39_

А он его с наслаждением прочитает:

jabber40_

На этом настройку клиентов можно закончить.

2 комментария:

1) в окне логона ставьте пользователям галочки "Запомнить мой пароль" и "Подключаться автоматически". Вкупе с автозагрузкой Pandion, это позволит пользователям вообще забыть о необходимости как бы то ни было задумываться о клиенте jabber, а просто пользоваться его благами, как они пользуются доступом в Интернет, корпоративным файл-сервером или рабочими базами данных;

2) обратите внимание на опечатку в кнопке отправки сообщения. "Отравить" – это как-то не айс. Но фиксится. В директории C:Program FilesPandionlanguages найдите файл ru.xml и поиском отыщите слово "отравить". Можно поправить текст и распространить правильную копию Pandion по сети.

 

Последние штрихи

 

Без дополнительной настройки Openfire запускается как приложение. То есть после перезагрузки или выключения сервера необходимо заходить в Windows и вручную запускать его. Это не самый подходящий вариант. Присвоим Openfire статус службы и настроим ее автозапуск. Для этого на сервере Openfire выполняем команды:

jabber41_

Для любителей смотреть сайты без графики:

cd "program filesopenfirebin"

openfire-service.exe /install

openfire-service.exe /start

И проверяем, что Openfire появился в оснастке управления службами и стартует автоматически:

jabber42_

Вуаля. Еще одна маленькая победа.

How-To , , , , ,

Комментирование отключено.