Weitere Kundendatenbank in OTRS einbinden

Bei Help Desk Software ist es oft sinnvoll auf mehrere Kundendatenbanken zuzugreifen. Dies ermöglicht einem z.B. die Kunden aus dem hauseigenen ERP-System zu verwenden, ohne dazu doppelte Datenhaltung zu betreiben oder komplizierte Replikation-Mechanismen zu verwenden. Die flexible Help Desk Software und IT-Service Management-Lösung OTRS bietet einem deshalb in der aktuellen Version 3.2 die Möglichkeit bis zu zehn weitere Kundendatenbanken anzuschließen.

Um eine weitere Kundendatenbank anzubinden braucht man in der Datei Kernel/Config.pm nur ein Objekt $Self->{CustomerUser2} anlegen und in diesem die nötigen Einstellungen für den Zugriff auf die weitere Datenbank vornehmen. Nähere Informationen dazu sind in der Dokumentation auf der Webseite http://doc.otrs.org zu finden. Im folgenden eine Beispielkonfiguration für eine Anbindung einer MySQL-Datenbank mit einem iso-8859-1 Zeichensatz. (Achtung! Bei Verwendung müssen hier natürlich mindestens Host, Datenbank, Tabelle, Benutzer und Passwort angepasst werden.)

# CustomerUser (customer database backend and settings)
$Self->{CustomerUser2} = {
    Name => 'Database Datasource Kunden2',
    Module => 'Kernel::System::CustomerUser::DB',
    Params => {
            DSN => 'DBI:mysql:database=customerdb;host=customerdbhost',
            User => 'dbbenutzer',
            Password => 'dbpasswort',
            Table => 'customer_user',
            SourceCharset => 'iso-8859-1',
            DestCharset => 'utf-8',
            CaseSensitive => 0,
        },
# customer unique id
CustomerKey => 'login',
 
# customer #
CustomerID => 'customer_id',
CustomerValid => 'valid_id',
    CustomerUserListFields => ['first_name', 'last_name', 'email'],
    CustomerUserSearchFields => ['login', 'last_name', 'customer_id'],
    CustomerUserSearchPrefix => '',
    CustomerUserSearchSuffix => '*',
    CustomerUserSearchListLimit => 250,
    CustomerUserPostMasterSearchFields => ['email'],
    CustomerUserNameFields => ['title','first_name','last_name'],
    CustomerUserEmailUniqCheck => 1,
#    # show not own tickets in customer panel, CompanyTickets
#    CustomerUserExcludePrimaryCustomerID => 0,
#    # generate auto logins
#    AutoLoginCreation => 0,
#    AutoLoginCreationPrefix => 'auto',
#    # admin can change customer preferences
#    AdminSetPreferences => 1,
#    # cache time to live in sec. - cache any database queries
#    CacheTTL => 0,
#    # just a read only source
#    ReadOnly => 1,
    Map => [
        # note: Login, Email and CustomerID needed!
        # var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly, http-link-target
        [ 'UserTitle',      'Title',      'title',      1, 0, 'var', '', 0 ],
        [ 'UserFirstname',  'Firstname',  'first_name', 1, 1, 'var', '', 0 ],
        [ 'UserLastname',   'Lastname',   'last_name',  1, 1, 'var', '', 0 ],
        [ 'UserLogin',      'Username',   'login',      1, 1, 'var', '', 0 ],
        [ 'UserPassword',   'Password',   'pw',         0, 0, 'var', '', 0 ],
        [ 'UserEmail',      'Email',      'email',      1, 1, 'var', '', 0 ],
 
#        [ 'UserEmail',      'Email', 'email',           1, 1, 'var', '$Env{"CGIHandle"}?Action=AgentTicketCompose&ResponseID=1&TicketID=$Data{"TicketID"}&ArticleID=$Data{"ArticleID"}', 0 ],
        [ 'UserCustomerID', 'CustomerID', 'customer_id', 0, 1, 'var', '', 0 ],
 
#        [ 'UserCustomerIDs', 'CustomerIDs', 'customer_ids', 1, 0, 'var', '', 0 ],
        [ 'UserPhone',        'Phone',       'phone',        1, 0, 'var', '', 0 ],
        [ 'UserFax',          'Fax',         'fax',          1, 0, 'var', '', 0 ],
        [ 'UserMobile',       'Mobile',      'mobile',       1, 0, 'var', '', 0 ],
        [ 'UserStreet',       'Street',      'street',       1, 0, 'var', '', 0 ],
        [ 'UserZip',          'Zip',         'zip',          1, 0, 'var', '', 0 ],
        [ 'UserCity',         'City',        'city',         1, 0, 'var', '', 0 ],
        [ 'UserCountry',      'Country',     'country',      1, 0, 'var', '', 0 ],
        [ 'UserComment',      'Comment',     'comments',     1, 0, 'var', '', 0 ],
        [ 'ValidID',          'Valid',       'valid_id',     0, 1, 'int', '', 0 ],
    ],
    # default selections
    Selections => {
        UserTitle => {
            'Mr.' => 'Mr.',
            'Mrs.' => 'Mrs.',
        },
    },
};

Anzeigen der Postfachgröße bei Exchange 2010

Wer einen Server mit Microsoft Exchange betreibt ist oft auf der Suche nach den Benutzern, die zu viel Speicherplatz belegen. Leider gibt es in der grafischen Konsole von Exchange 2010 keine Möglichkeit in einer Liste alle Mailboxen mit ihrer Größe anzuzeigen. Um eine solche List zu erhalten benötigt man also die Power Shell. Die brauchbaren Kommandos für die Power Shell haben jedoch leider den Nachteil, dass Sie sich durch ihre Länge und komplexität nicht sonderlich gut merken lassen. Deshalb habe ich mir im folgenden mal drei nützliche Varianten zum ermitteln der Mailboxgröße aufgeschrieben.

Alle Mailboxen nach Größe anzeigen

get-mailboxdatabase | get-mailboxstatistics | Sort -Property TotalItemSize -descending| select-object DisplayName,@{expression={$_.TotalItemSize.value.ToMB()}}, Itemcount,ServerName

Alle Mailboxen nach Größe und mit Datenbank anzeigen

get-mailboxdatabase | get-mailboxstatistics | Sort -Property TotalItemSize -descending| select-object DisplayName,@{expression={$_.TotalItemSize.value.ToMB()}}, Itemcount,ServerName,Database |ft

Alle Mailboxen einer Datenbank auflisten
(anstelle von Test muss hier der DB-Name eingesetzt werden)

get-Mailboxdatabase -Identity "Test" | get-mailboxstatistics | Sort -Property TotalItemSize -descending| select-object DisplayName,@{expression={$_.TotalItemSize.value.ToMB()}},Itemcount,ServerName

Installation von Oracle XE unter Ubuntu 10.04

  1. Installation des Paketes bc aus dem Repository von Ubuntu mit dem Befehl
    aptitude install bc

    Bei 64-Bit Systemen ist zusätzlich die Installation des Paketes ia32-libs notwendig

    aptitude install ia32-libs
  2. Download der aktuellsten Version von Oracle XE (in meinem Fall war das die Version 10.2.0.1). Man findet diese auf der Webseite von Oracle unter http://www.oracle.com/technology/software/products/database/xe/index.html
  3. Installation des DEB.Paketes mit
    dpkg -i oracle-xe_10.2.0.1-1.1_i386.deb

    (vorher natürlich in das Verzeichnis wechseln, indem man das Paket herunter geladen hat). Wenn man ein 64-Bit System installiert hat muss mit dem Parameter --force-architecture die installation erzwungen werden.

  4. Konfiguration der Installation mit
    /etc/init.d/oracle-xe configure
  5. Um die Kommandozeilen-Befehle von Oracle nutzen zu können, sollte man noch die Datei .bashrc im Homeverzeichnis um die folgenden Zeilen erweitern:
    ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
    PATH=$PATH:$ORACLE_HOME/bin
    export ORACLE_HOME
    export ORACLE_SID=XE
    export PATH

Installation einer Advantage Database unter Ubuntu 10.04

Bei der Installation einer Advantage Database unter einem Ubuntu 10.04 mit 64 Bit gibt es neben der normalen Installationsanleitung noch zwei weitere Punkte zu beachten:

  1. Bei einem Ubuntu mit 64 Bit müssen für die Installation auch die 32 Bit Bibliotheken installiert werden. Dies geschieht mit dem Befehlt
    apt-get install ia32-libs

    .

  2. Da Linux bei Dateinamen zwischen großen und kleinen Buchstaben unterscheidet, sollte man in der Datei
    /usr/local/advantage/ads.conf

    den Wert LOWERCASE_ALL_PATHS auf 1 setzen. Dies bringt dieAdvantage Database dazu nur kleine Buchstaben für Datei- und Verzeichnisnamen zu verwenden. Danach sollte man natürlich darauf achten, dass die Verzeichnisse und Dateien auf dem Server auch keine großen Buchstaben mehr enthalten. Einen Befehl für die Konvertierung der Datei- und Verzeichnisnamen findet man hier.

Reparatur einer Microsoft Exchange Datenbank

Wenn sich bei einem Exchange 2000 oder 2003 Server die Datenbank nicht mehr mounten lässt kann man versuchen diese mit den Kommandozeilen-Tools ESEUTIL und ISINTEG zu reparieren (ab Exchange 2007 wurden diese Tools in die Exchange Management Console eingebaut und können dort aufgerufen werden). Man sollte jedoch etwas Zeit mitbringen und vorher eine Datensicherung machen. Microsoft weißt nämlich explizit darauf hin, dass durch diese Tools auch Daten verloren gehen können und bei einer Datenbankgröße von 50 GB kann der Vorgang schon mal einen ganzen Tag dauern. Während der Reparatur wird jeweils im aktuellen Pfad eine temporäre Datenbank erstellt, die ca. 20% der alten Datenbankgröße benötigt. Der Pfad dieser Datenbank kann bei Bedarf mit dem Schalter /t geändert werden.

Im folgenden nun die einzelnen Schritte, mit denen ich bis jetzt die besten Erfolge beim reparieren einer Microsoft Exchange Datenbank erzielt habe:

  • SMTP Server anhalten (falls noch aktiv)
  • „ESEUTIL /MH DATENBANK“ ausführen
    Zeigt den Status der Datenbank an.
  • „ESEUTIL /P DATENBANK“ ausführen
    Diese Option versucht eine defekte Datenbank wieder „clean“ zu bekommen, indem diese komplett neu aufgebaut wird und fehlende Verbindungen und Seiten dabei einfach entfernt werden.
  • „ISINTEG.EXE -s -fix -test alltests“ ausführen
    Falls Tool nicht läuft, Transaction Logs in ein Backupverzeichnis verschieben. Auftretende Warnungen können ignoriert werden, sollten jedoch Fehler angezeigt werden, muss ISINTEG.EXE -s -fix -test alltests solgange wiederholt werden, bis keine Fehler mehr auftreten.

VM-Ware auf Servern von IBM mit Hindernissen

Ich habe mich jetzt entschlossen einige der Server die ich betreue mit VM-Ware zu virtualisieren, um Kosten zu sparen. Dazu habe ich von Dell, HP und IBM Angebote eingeholt. Letztendlich viel die Wahl auf das Angebot von IBM, da dieses für unsere Belange das beste Preis-Leistungs-Verhältnis bietet. Im folgenden erwies sich die Installation jedoch leider wieder als ein Wenig schwieriger.

Die Server von IBM werden – ähnlich wie bei anderen Herstellern – von einer Partnerfirma vor Ort aufgebaut und eingerichtet. Nachdem VM-Ware installiert wurde, stellt der ausführende Techniker fest:

Die von VM-Ware für das Virtual Center mitgelieferte Microsoft MSDE Datenbank wird nicht supportet, wenn man sie in Produktionsumgebungen einsetzt.

Da ich mit VM-Ware nicht nur testen will, beschließe ich also eine andere Datenbank zu verwenden. Ich entscheide mich für Oracle, da wir viel Oracle einsetzen und VM-Ware dies in der Version 9 und 10 unterstützt. Dazu muss jedoch erst mal die richtige Oracle Version herunter geladen, die Lizensierung geklärt und alle Fragen beantwortet werden, die nicht in der – gerade mal eine halbe Seite langen – Anleitung für die „Installation von Oracle für Virtual Server“ stehen. Die Installation zieht sich also bis mitten in die Nacht. Außerdem endet sie mit dem Fehler:

[2007-11-20 10:10:33.267 'App' 3584 error] "ODBC error: (HY000) - [Oracle][ODBC][Ora]Trigger, procedure or function created with PL/SQL compilation error(s)." is returned when executing SQL statement "/*

Wir geben also erst mal auf und beschließen am nächsten Tag jemanden von VM-Ware anzurufen. Glücklicher Weise kenn der Techniker jemanden bei VM-Ware, den er am nächsten Tag anruft. Dieser leitet Ihn an den Support von VM-Ware weiter. Dieser weigert sich jedoch den Fall zu bearbeiten, ohne das er über die dafür vorgesehene Webseite gemeldet wurde. Auf dieser Webseite können wir mit unseren Zugangsdaten jedoch leider keinen Fall melden.

Nach einem erneuten Anruf bei VM-Ware stellt sich heraus, dass wir keinen Support von VM-Ware bekommen, weil wir über IBM gekauft haben. Wir können deshalb nur von IBM Support bekommen.

Super VM-Ware! Ich habe jetzt ein Problem mit einer Datenbank, die ich brauche, um von VM-Ware Support zu bekommen. Ich bekomme jedoch von VM-Ware keinen Support, um dieses Problem zu lösen. Die 16.000,- EUR für die Lizenz haben sich wirklich gelohnt. Das nächste mal sollte ich vielleicht lieber XEN von Citrix nehmen. Bei Citrix bekommt man auch bei OEM-Versionen Support. Sogar für etwaige mitgelieferten Datenbanken.