Ejabberd: Unterschied zwischen den Versionen

Aus schokokeks.org Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
K (typo)
 
(6 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
==Einführung==
==Einführung==
Seit dem 21. Januar 2005 wird der Jabberd des Schokokeks mit [http://ejabberd.jabber.ru Ejabberd] betrieben. Dieser in der Programmiersprache [http://erlang.org/ Erlang] implementierte Jabber-Server bietet einige Vorteile gegenüber den Konkurrenten Jabberd 2.0 und 1.4:
Seit dem 21. Januar 2005 wird der Jabberd des Schokokeks mit [http://ejabberd.jabber.ru Ejabberd] betrieben. Dieser in der Programmiersprache [http://erlang.org/ Erlang] implementierte Jabber-Server bietet einige Vorteile gegenüber den Konkurrenten Jabberd 2.0 und 1.4:
===Stabilität und Performance===
===Stabilität und Performance===
*Erlang wurde dazu entwickelt, um hochverfügbare Systeme im Telekommunikationsbereich zu implementieren und stellt somit sicher, dass der Server genau das tut, was er tun soll: funktionieren
* Erlang wurde dazu entwickelt, um hochverfügbare Systeme im Telekommunikationsbereich zu implementieren und stellt somit sicher, dass der Server genau das tut, was er tun soll: funktionieren.
* Speicher- und CPU-Bedarf des Ejabberds sind deutlich geringer als die seiner Konkurrenten
* Speicher- und CPU-Bedarf des Ejabberds sind deutlich geringer als der seiner Konkurrenten.
 
===Modularität und Zugriffsrechte===
===Modularität und Zugriffsrechte===
* Jedes Modul lässt sich hinzufügen, entfernen und neu starten ohne dass davon der eigentliche Jabberd berührt ist. Eine Ausnahme bilden hierbei die s.g. [[Transports (Jabber)|Transports]]. Bei Änderungen muss der Ejabberd leider trotzdem neu gestartet werden
* Jedes Modul lässt sich hinzufügen, entfernen und neu starten ohne dass davon der eigentliche Jabberd berührt ist. Eine Ausnahme bilden hierbei die sogenannten Transports. Bei Änderungen muss der Ejabberd leider trotzdem neu gestartet werden.
* Über ACLs lassen sich sehr genau granuliert Zugriffsrechte einstellen. Darüber ist ein extrem flexibles Setup zu erreichen
* Über ACLs lassen sich sehr genau granuliert Zugriffsrechte einstellen. Darüber ist ein extrem flexibles Setup zu erreichen.
 
===Konfigurierbarkeit===
===Konfigurierbarkeit===
* Ejabberd lässt sich nach aufwendiger Initialkonfiguration komfortabel über ein Webinterface warten
* Ejabberd lässt sich nach aufwendiger Initialkonfiguration komfortabel über ein Webinterface warten.
* Die Konfigurationsdatei ist übersichtlicher als die bei Jabberd 1.4 und 2.0 üblichen, sehr langen und teilweise unübersichtlichen XML-Dateien
* Die Konfigurationsdatei ist übersichtlicher als die bei Jabberd 1.4 und 2.0 üblichen, sehr langen und teilweise unübersichtlichen XML-Dateien.
 
===Erweiterte Jabber-Funktionen===
===Erweiterte Jabber-Funktionen===
* Jabberd bringt praktische Funktionen wie Shared Roster, Service Discovery ''out-of-the Box'' mit
* Jabberd bringt praktische Funktionen wie Shared Roster, Service Discovery ''out-of-the Box'' mit.
==Vhost hinzufügen==
 
==Konfiguration==
===Ports und Transports===
Ejabberd ist so konfiguriert, dass auf Port 5222 auf schokokeks.org ein normaler Jabber-Daemon lauscht. Dieser bietet auch unverschlüsselte Verbindungen an, es ist aber empfohlen TLS-geschützte Verbindungen zu verwenden. Falls der Client dies nicht unterstützt, sollte man auf das klassische SSL auf Port 5223 zurückgreifen.
 
Bisher ist auf schokokeks.org ein MUC-Modul (Konferenz-Erweiterung), PyICQ-T als ICQ-Transport und mod_irc als [[IRC-Transport]] konfiguriert.
 
==Administrative Aufgaben==
===Vhost hinzufügen===
''/etc/jabber/ejabberd.cfg'' editieren. In der Direktive ''{hosts, ...}'' den gewünschten Virtual host hinzufügen und Ejabberd neu starten (<code>/etc/init.d/ejabberd restart</code>).
''/etc/jabber/ejabberd.cfg'' editieren. In der Direktive ''{hosts, ...}'' den gewünschten Virtual host hinzufügen und Ejabberd neu starten (<code>/etc/init.d/ejabberd restart</code>).
<div style="border: 3px solid #24f094;padding: 1em;margin: 1em 4em 1em 4em;">'''Tipp:'''<br />
<div style="border: 3px solid #24f094;padding: 1em;margin: 1em 4em 1em 4em;">'''Tipp:'''<br />
Wenn man die Ejabberd Konfigurationsdatei unter ''/etc/jabber/ejabberd.cfg'' editiert, ist zu beachten, dass es sich dabei um ganz normalen Erlang Code handelt. In [[Vim]] ist es deshalb zu empfehlen, das Syntaxhighlighting auf ''erlang'' umzustellen (<code>:set syntax=erlang</code>).</div>
Wenn man die Ejabberd Konfigurationsdatei unter ''/etc/jabber/ejabberd.cfg'' editiert, ist zu beachten, dass es sich dabei um ganz normalen Erlang Code handelt. In [[Vim verwenden|Vim]] ist es deshalb zu empfehlen, das Syntaxhighlighting auf ''erlang'' umzustellen (<code>:set syntax=erlang</code>).</div>
==Einen Benutzer zum Administrator machen==
 
===Einen Benutzer zum Administrator machen===
''/etc/jabber/ejabberd.cfg'' editieren und folgende Zeile hinzufügen:
''/etc/jabber/ejabberd.cfg'' editieren und folgende Zeile hinzufügen:
<code>{acl, admin, {user, "user", "example.org"}}.</code>
<code>{acl, admin, {user, "user", "example.org"}}.</code>
==Konfigurationsdatei validieren==
 
===Konfigurationsdatei validieren===
Da Erlang-Code einige Fallstricke mit sich bringt, ist es empfehlenswert, vor dem Neustarten des Jabber-Servers zu überprüfen, ob die Konfigurationdatei ''/etc/jabber/ejabberd.cfg'' syntaktisch korrekt ist. Dazu findet sich unter ''/root/erlang-tools/'' ein kleines Erlang-Programm ''erlcheck.erl'', das wie folgt verwendet wird:
Da Erlang-Code einige Fallstricke mit sich bringt, ist es empfehlenswert, vor dem Neustarten des Jabber-Servers zu überprüfen, ob die Konfigurationdatei ''/etc/jabber/ejabberd.cfg'' syntaktisch korrekt ist. Dazu findet sich unter ''/root/erlang-tools/'' ein kleines Erlang-Programm ''erlcheck.erl'', das wie folgt verwendet wird:
*Erlang-Shell öffnen
* Erlang-Shell öffnen
<code>erl /root/erlang-tools/erlcheck.erl</code>
erl /root/erlang-tools/erlcheck.erl
*Erlcheck laden
* Erlcheck laden
<code>c(erlcheck).</code>
c(erlcheck).
*Konfigurationsdatei überprüfen
* Konfigurationsdatei überprüfen
<code>erlcheck:checkfile("/etc/jabber/ejabberd.cfg").</code>
erlcheck:checkfile("/etc/jabber/ejabberd.cfg").
 
[[Kategorie:Jabber]]

Aktuelle Version vom 10. September 2008, 01:20 Uhr

Einführung

Seit dem 21. Januar 2005 wird der Jabberd des Schokokeks mit Ejabberd betrieben. Dieser in der Programmiersprache Erlang implementierte Jabber-Server bietet einige Vorteile gegenüber den Konkurrenten Jabberd 2.0 und 1.4:

Stabilität und Performance

  • Erlang wurde dazu entwickelt, um hochverfügbare Systeme im Telekommunikationsbereich zu implementieren und stellt somit sicher, dass der Server genau das tut, was er tun soll: funktionieren.
  • Speicher- und CPU-Bedarf des Ejabberds sind deutlich geringer als der seiner Konkurrenten.

Modularität und Zugriffsrechte

  • Jedes Modul lässt sich hinzufügen, entfernen und neu starten ohne dass davon der eigentliche Jabberd berührt ist. Eine Ausnahme bilden hierbei die sogenannten Transports. Bei Änderungen muss der Ejabberd leider trotzdem neu gestartet werden.
  • Über ACLs lassen sich sehr genau granuliert Zugriffsrechte einstellen. Darüber ist ein extrem flexibles Setup zu erreichen.

Konfigurierbarkeit

  • Ejabberd lässt sich nach aufwendiger Initialkonfiguration komfortabel über ein Webinterface warten.
  • Die Konfigurationsdatei ist übersichtlicher als die bei Jabberd 1.4 und 2.0 üblichen, sehr langen und teilweise unübersichtlichen XML-Dateien.

Erweiterte Jabber-Funktionen

  • Jabberd bringt praktische Funktionen wie Shared Roster, Service Discovery out-of-the Box mit.

Konfiguration

Ports und Transports

Ejabberd ist so konfiguriert, dass auf Port 5222 auf schokokeks.org ein normaler Jabber-Daemon lauscht. Dieser bietet auch unverschlüsselte Verbindungen an, es ist aber empfohlen TLS-geschützte Verbindungen zu verwenden. Falls der Client dies nicht unterstützt, sollte man auf das klassische SSL auf Port 5223 zurückgreifen.

Bisher ist auf schokokeks.org ein MUC-Modul (Konferenz-Erweiterung), PyICQ-T als ICQ-Transport und mod_irc als IRC-Transport konfiguriert.

Administrative Aufgaben

Vhost hinzufügen

/etc/jabber/ejabberd.cfg editieren. In der Direktive {hosts, ...} den gewünschten Virtual host hinzufügen und Ejabberd neu starten (/etc/init.d/ejabberd restart).

Tipp:
Wenn man die Ejabberd Konfigurationsdatei unter /etc/jabber/ejabberd.cfg editiert, ist zu beachten, dass es sich dabei um ganz normalen Erlang Code handelt. In Vim ist es deshalb zu empfehlen, das Syntaxhighlighting auf erlang umzustellen (:set syntax=erlang).

Einen Benutzer zum Administrator machen

/etc/jabber/ejabberd.cfg editieren und folgende Zeile hinzufügen: {acl, admin, {user, "user", "example.org"}}.

Konfigurationsdatei validieren

Da Erlang-Code einige Fallstricke mit sich bringt, ist es empfehlenswert, vor dem Neustarten des Jabber-Servers zu überprüfen, ob die Konfigurationdatei /etc/jabber/ejabberd.cfg syntaktisch korrekt ist. Dazu findet sich unter /root/erlang-tools/ ein kleines Erlang-Programm erlcheck.erl, das wie folgt verwendet wird:

  • Erlang-Shell öffnen
erl /root/erlang-tools/erlcheck.erl
  • Erlcheck laden
c(erlcheck).
  • Konfigurationsdatei überprüfen
erlcheck:checkfile("/etc/jabber/ejabberd.cfg").