OTRS - Installation unter Debian Linux

Howto's zu OTRS Themen. Keine neuen Topics mit Fragen in diesem Forum!
Andre Bauer
OTRS guru
Posts: 2191
Joined: 08 Dec 2005, 17:01
OTRS Version?: 5.0.x
Real Name: André Bauer
Company: Magix Software GmbH
Location: Dresden
Contact:

OTRS - Installation unter Debian Linux

Postby Andre Bauer » 16 Sep 2006, 13:09

Ich habe vor einigen Jahren mal eine Projektarbeit über OTRS 1.3 erstellt, die die komplette Installation des Systems unter Linux beschreibt.

Das ganze ist inzwischen zwar etwas veraltet, da die Sysconfig inzwischen komplett über das Webfrontend gemacht wird aber ein Update auf spätere Versionen sollte auch nicht so schwierig sein.

Das ganze will ich an dieser Stelle nun mal veröffentlichen.

Anbei die Projektabreit auch noch als PDF.



Projektarbeit
Einrichtung eines Linux Servers mit einem TTS System

Von Monotek


Inhaltsverzeichnis

1. Einleitung
1.1. Die Firma 1


2. Projektbeschreibung
2.1. Aufgabenstellung 1
2.2. Ist-Analyse 1


3. Konzeption
3.1. Soll-Zustand 2


4. Vorbereitungen
4.1. Softwareauswahl 3
4.2. Betriebssystemauswahl 3
4.3. Softwarebeschaffung 3
4.4. Hardwarebeschaffung 4


5. Installation Linux Server
5.1. Installationsbeginn 4
5.2. Sprachkonfiguration und Hardwareerkennung 5
5.3. Netzwerkkonfiguration 5
5.4. Partitionierung 6
5.5. Abschluss der Installation 7


6. Weitere Konfiguration des Linux Systems
6.1. Erster Bootvorgang des Systems 7
6.2. Einstellung Zeitzone und Vergabe des Rootpasswortes 7
6.3. Erstellung des Arbeitsusers 8
6.4. Konfiguration des Softwarepaketmanagers APT 8
6.5. SSH Server Konfiguration 8
6.6. Einrichtung eines Framebuffers 9

7. Installation SMP Kernel, OTRS und aller nötigen Komponenten
7.1. Installation 9
7.2. OTRS Konfiguration 9


8. Auswertung
8.1. Zusammenfassung 10
8.2. Statistiken 10


9. Quellenangaben


10. Anlagen
1. OTRS Konfiguration
2. Kundendokumentation
3. Konfigurationshilfsmittel
4. Datensicherung
5. Ausblick
6. Passwörter
7. Gantt-Diagramm
8. Kosten
9. Script / Codeauszüge
10. Fremdwortlegende und Abkürzungsverzeichnis











1. Einleitung
1.1. Die Firma

Die 1984 gegründete Firma ist ein IT-Unternehmen, dass sich auf die Entwicklung von Produkten der Audio- und Videobearbeitung spezialisiert hat. Die Niederlassung in Dresden beherbergt den Support und die Entwicklungsabteilung des Unternehmens

2. Projektbeschreibung
2.1. Aufgabenstellung

Zur Optimierung der Arbeitsabläufe wurde von den Entscheidungsträgern des Unternehmens die Modernisierung des E-Mail Systems mittels eines TTS (Trouble Ticket System) in Auftrag gegeben.

2.2. Ist-Analyse

Bisher arbeiten die Mitarbeiter des Unternehmens mit normalen E-Mail Clients. Es gibt ein Haupt-E-Mail-Konto, das alle E-Mails abholt, den Spam aussortiert und die Mails dann an die entsprechenden Mitarbeiter verteilt. Dies geschieht nicht automatisch, sondern wird von einem der Mitarbeiter in der Supportabteilung getan. Die Mitarbeiter bearbeiten dann die empfangenen Mails und schicken die Antwort an den Kunden. Der weitere Kontakt erfolgt dann direkt zwischen Mitarbeitern und Kunden und nicht mehr über das Haupt E-Mail Konto.

Da alle Mitarbeiter ihre E-Mails lokal auf ihrem eigenen Arbeitsrechner speichern müssen, ist keine Ausfallsicherheit gegeben. Ist ein Rechner defekt, muss dieser erst repariert werden und die Daten könnten unter Umständen erst rekonstruiert werden müssen. Dies macht im Falle von Defekten erhebliche Arbeitszeiteinbussen aus, da die Mitarbeiter nicht an einem anderen Rechner weiterarbeiten können.

Um die Arbeiten zu zentralisieren, wird ein Datennetz in der Firma benötigt. Dieses Datennetz ist bereits vorhanden. Die Bandbreite, die dieses Netzwerk zur Verfügung hat (100MBit/s), wird derzeit durchschnittlich zu 20% ausgelastet.

Neben dem Datennetz ist außerdem ein Dualprozessor-Server im Kellergeschoss der Firma vorhanden, der bisher ausschließlich für Entwicklungsarbeiten genutzt wurde. Da dieser Server durch einen neuen ersetzt wurde, kann er nun die erforderlichen Arbeiten übernehmen. Dadurch entstehen der Firma keine Kosten für neue Hardware.

3. Konzeption
3.1. Soll-Zustand

Ziel der Erneuerung des E-Mailsystems ist es, dass jeder Mitarbeiter von jedem Arbeitsplatz aus seine Mails bearbeiten kann, ohne von seinem eigenem Rechner abhängig zu sein. Der E-Mailverkehr mit einem Kunden soll zukünftig in einem Ticket zusammengefasst werden, welches die gesamte Korrespondenz zwischen Kunden und Supporter zu einem Problem beinhaltet.

Zur firmeninternen Kommunikation soll weiterhin das alte E-Mailsystem verwendet werden, um auch mit den Filialen außerhalb der Niederlassung Dresden kommunizieren zu können, ohne den Zugriff auf das Trouble Request System von außerhalb ermöglichen zu müssen.

Außerdem soll mit dem neuen System die Möglichkeit gegeben werden, eine statistische Auswertung über das Supportaufkommen der einzelnen Produkte zu erheben. Des Weiteren soll es möglich sein zu überwachen, ob die einzelnen Mitarbeiter die ihnen zugeteilten Aufgaben bewältigen können. So soll in Zukunft auch entschieden werden, ob mehr Mitarbeiter eingestellt werden müssen.

Es soll vorerst nur für den Supportbereich der Firma die Funktionalität des OTRS bereitgestellt werden. Die Verwendung des Systems für die Bereiche Vertrieb und Rechnungswesen ist für einen späteren Zeitpunkt jedoch nicht ausgeschlossen und soll daher vorbereitet werden. Die Bereiche sollen dabei voneinander unabhängig sein. Die Mitarbeiter der verschiedenen Abteilungen sollen immer nur Zugriff auf ihren Bereich haben. Die Teamleiter der Abteilungen sollen dann jedoch auf alle Abteilungen Vollzugriff haben.

Es sollten mindestens 50 Mitarbeiter gleichzeitig mit dem System arbeiten können, ohne dass es zu Engpässen bei der Geschwindigkeit oder Erreichbarkeit des Servers kommt.

Die Konfiguration des Trouble Request Systems soll über ein Webinterface von jedem PC des Unternehmens erfolgen können, so das auch ohne die Hilfe eines technischen Betreuers Anpassungen am System vorgenommen werden können. Dabei sind selbstverständlich Zugangsberechtigungen zur Konfigurationsschnittstelle zu setzen.

Des Weiteren ist für die Benutzer des Trouble Request Systems eine kurze (max. 2-seitige) Bedienungsanleitung bereitzustellen, um eine schnelle Inbetriebnahme des neuen Systems sicherzustellen.



4. Vorbereitungen
4.1. Softwareauswahl

Um die geforderten Leistungen zu erbringen, muss ein Server mit einem Trouble Ticket System in der Firma eingerichtet werden. Die meisten erhältlichen Systeme haben jedoch fünfstellige Anschaffungskosten. Die weitere Anpassung der Systeme sowie deren Support ist ebenfalls sehr kostenintensiv. Außerdem fallen Lizenzgebühren pro benötigtem Arbeitsplatz oder sogar pro Kunde, der mit dem jeweiligem System bearbeitet werden soll, an. Dies ist aufgrund der Kostenvorgabe der Firma nicht umsetzbar.

Bei meinen Recherchen nach einem freien System, welches die nötigen Anforderungen erfüllt, bin ich auf die unter der GPL stehende Scriptsammlung OTRS gestoßen. OTRS steht für Open Trouble Ticket System. Es ist ein freies System, welches unter der GPL steht. Genauer handelt es sich dabei um eine Sammlung von Perl Scripten, die auf einem Webserver abgelegt werden und in Verbindung mit einer Datenbank die benötigten Dienste bereitstellen. Die Scripte werden dann mit einem handelsüblichen Browser aufgerufen und genutzt.

4.2. Betriebssystemauswahl

Es existieren Versionen für Linux und Windows. Da eine Lösung mit möglichst geringem Kostenaufwand erstellt werden soll, habe ich mich für die Linux Version entschieden, die ohne Lizenzgebühren auskommt. Als Serverbetriebssystem wird daher Debian Linux verwendet werden. Debian ist eine Linux-Distribution, die ausschließlich unter der GPL stehende Softwarepakete verwendet und kommerzielle Software aus dem System ausschließt.

Ein großer Vorteil von OTRS und Debian Linux ist der Open-Source-Gedanke hinter den Projekten. Das bedeutet, dass die Software kostenlos über das Internet bezogen werden kann, der Quellcode offen liegt und dass dieser Quellcode auch beliebig verändert werden darf. Außerdem entstehen der Firma keine weiteren Kosten durch Lizenzgebühren, wie man es von Windows oder anderer kommerzieller Software gewöhnt ist.

4.3. Softwarebeschaffung

Um sich Debian Linux zu besorgen, reicht es sich ein so genanntes ISO Image von der Website http://www.debian.org herunter zu laden. Dieses kann mit fast allen gewöhnlichen Brennprogrammen auf eine CD geschrieben werden. Die erstellte Installations-CD ist bootfähig, so wie man es auch von Windows gewöhnt ist. Die Installation startet also automatisch nach Einlegen der Debian Linux Installations- CD und Neustarten des Rechners.

OTRS kann von der Seite http://www.otrs.org heruntergeladen werden. Es existieren Anpassungen für verschiedene Linuxdistributionen und Windows. Da OTRS aber im Softwarepaketmanagementsystem von Debian aufgenommen ist, erübrigt sich der Download. OTRS kann also bequem über einen Befehl auf der Kommandozeile des Debiansystems installiert werden.

4.4. Hardwarebeschaffung

Von der Firma wurde ein Dualprozessor-Server zur Verfügung gestellt. Dieser verfügt über 2 Pentium-3-Prozessoren mit jeweils 733 Mhz. Der Arbeitsspeicher wurde für die Verwendung als Server von 256 MB auf 512 MB aufgestockt. Dafür wurde das benötigte Speichermodul eines defekten Rechners verwendet. Des Weiteren besteht die Hardware aus einem 24fachen CD-Rom- Laufwerk, einer 100 MBit/s-Netzwerkkarte, einer einfachen Matrox-Grafikkarte ohne 3D Funktionen und einer neu beschafften 80 GB großen IDE Festplatte. Um die Kundendaten täglich sichern zu können, wurde außerdem ein Wechselrahmen für Festplatten eingebaut und weitere 6 baugleiche 80-GB-Festplatten angeschafft. Für 5 dieser Platten wurde außerdem jeweils ein weiterer Wechseleinschub für den Wechselrahmen beschafft, um den täglichen Austausch der Festplatten zu beschleunigen.

Die letzte Festplatte dient lediglich einer einmaligen Komplettspiegelung des Linuxsystems nach erfolgter Installation und Konfiguration des OTRS. So kann bei einem Komplettausfall der Systemfestplatte sofort weiter gearbeitet werden, nachdem auch das Datenbackup wieder eingespielt wurde.


5. Installation des Linux Servers
5.1. Installationsbeginn

Die Installation des Debian Linux Betriebsystems beginnt nach Einlegen der CD automatisch. Auf dem Bildschirm erscheint das Debian-Logo und eine Kommandozeile erwartet die Eingabe von Installationsparametern. Um eine Standardinstallation auszuführen reicht es, einfach die Entertaste auf der Tastatur zu drücken. Das System wird dann mit einem Kernel der Version 2.4 installiert.

Um jedoch auch neuere Hardware unterstützen zu können, habe ich mich dafür entschieden, einen Kernel der Version 2.6 zu verwenden. Dies lässt sich durch Angabe des Bootparameters „linux26“ erreichen. Nach einem Druck auf die Entertaste startet die Installation.



Ein für den Server nötiger SMP-Kernel (Multiprozessorkernel) ist an dieser Stelle noch nicht auswählbar. Die Installation wird daher mit einem Standardkernel ausgeführt . Der SMP Kernel wird nach Abschluss der Installation manuell nachinstalliert.

Die grafische Oberfläche des Installers lässt sich ausschließlich mit der Tastatur bedienen. Die Tabulator- und Pfeiltasten dienen zur Navigation. Optionen können mit der Leertaste gesetzt werden. Bestätigt wird mit der Entertaste.

5.2. Sprachkonfiguration und Hardwareerkennung

Die erste Abfrage des Installers ist die Auswahl der zu verwendenden Sprache. Natürlich wurde hier Deutsch gewählt, was einer Auswahl der Option „German - Deutsch“ in der Liste entspricht. Danach wird das genaue Sprachgebiet ausgewählt, welches in diesem Fall „Deutschland“ ist. Nun wird noch das Tastaturlayout „Deutsch“ gewählt.

Danach wir die automatische Hardwareerkennung vom Installer durchgeführt, bei der versucht wird, die Laufwerke und andere Hardware zu erkennen. Kurz darauf wird die CD nach vorhandenen Softwarepaketen durchsucht. Ist dies abgeschlossen, werden die benötigten Komponenten des Installers geladen.

Dabei wird auch die Netzwerkkarte des Rechners erkannt. Eine manuelle Konfiguration der Netzwerkkarte bzw. der IP- und Netzwerkadresse des Rechners ist nicht nötig, da der Rechner bereits in das Netzwerk der Firma integriert ist und somit die erforderlichen Daten über den DHCP-Server der Firma bereit gestellt werden.

5.3. Netzwerkkonfiguration

Die nächste Eingabeaufforderung ist der manuelle Teil der Netzwerkkonfiguration, die zur Eingabe eines Rechnernamens auffordert. Der von mir gewählte Rechnername lautet „otrs“. Danach wird die Domain, in der sich der Server befindet, benötigt. Hier wird „.net“ verwendet. Daraus resultiert der spätere Domainname „otrs..net“, unter der der Web-Server später ansprechbar sein soll.

Der DHCP-Server der Firma ist so konfiguriert, dass der Server immer die IP 192.168.0.251 erhält. Er hat also eine „feste“ IP, was auch nötig ist, da der Server für die Clients auch immer unter der selben Adresse erreichbar sein muss.




5.4. Partitionierung

Danach ist wieder etwas Konfigurationsarbeit gefragt, da der Installer beim Partitionieren der Festplatte angekommen ist. Hier kann man sich zwischen einer geführten Installation, bei der die ganze Festplatte als einzelne Partition benutzt wird, oder der manuellen Partitionierung entscheiden. Bei der manuellen Partitionierung kann man den wichtigen Verzeichnissen jeweils eine eigene Partition zuweisen, was bei Mehrbenutzersystemen sinnvoll ist, um den Systemteil vom Datenteil zu trennen und somit eine etwas höhere Datensicherheit zu haben.

Dies hat allerdings den Nachteil, dass man schon vor der Installation genau wissen muss, wie viel Speicherplatz für jede Partition benötigt wird, da eine spätere Anpassung nicht möglich ist. Bei schlecht gewählter Platzverteilung kann dies im Speichermangel auf der einen und im Speicherüberfluss auf der anderen Partition enden, was unwirtschaftlich wäre. Ein weiterer Vorteil einer einzelnen Partition ist die einfachere Möglichkeit der Sicherung dieser Partition, welche sich sonst erheblich komplizierter gestalten würde. Da der Server nur im firmeninternen Netz verwendet werden soll, ist die erhöhte Sicherheit an dieser Stelle zu vernachlässigen.

Es wurde daher entschieden, eine einzelne Datenpartition zu verwenden. Dies entspricht der Anwahl des Menüpunktes „Alle Daten auf eine Partition“. Kurz darauf werden die noch anstehenden Änderungen an der Festplatte in einer Übersicht angezeigt. Der Installer hat hier automatisch den gesamten verfügbaren Speicherplatz für Daten minus der Größe für die Swappartition reserviert.

Linuxsysteme verwenden eine Swappartition für ihre Auslagerungsdatei. Werden Daten im Arbeitsspeicher eines Linuxsystems temporär nicht benötigt, werden diese in die Auslagerungsdatei auf der Swappartition geschrieben, um Platz für andere Anwendungen im Arbeitsspeicher zu schaffen. Werden die Daten wieder benötigt, werden sie wieder in den Speicher geladen und dafür andere Daten auf die Festplatte geschrieben.

Als Dateisystem für die Datenpartition hat der Installer automatisch das „EXT3“-Format ausgewählt. Diese Auswahl wurde von mir jedoch in das „ReiserFS“-Dateisystem geändert, da dieses den Ruf einer höheren Geschwindigkeit geniesst und außerdem auch Dateien größer als 2 Gigabyte verwalten kann, was vielleicht bei den Backups der Kundendaten nötig werden wird.

Für diesen Swapspeicher wurde vom Installer automatisch die Größe des Arbeitsspeichers des Systems + 20% Reserve verwendet, was letztendlich rund 615 MB entspricht. Da ein weiterer Ausbau des Arbeitsspeichers auf 1024 MB zu einem späteren Zeitpunkt nicht ausgeschlossen ist, habe ich den Swap Speicher manuell auf 1300 MB erhöht und dafür natürlich den Speicherplatz des Datenteils angepasst.
Die Partitionierung wird nun mit dem Menüeintrag „Finish Partitioning an write changes to disk“ beendet. Alle Partitionen werden nun samt der gewählten Dateisysteme erstellt.

5.5. Abschluss der Installation

Der Installer beginnt nun mit dem Kopieren des Debian-Basissystems auf die Festplatte, was alle Programme, den Kernel und die Sprachanpassungen umfasst. Dies dauert ein paar Minuten, da viele Daten kopiert werden müssen.

Danach wir der Bootloader „Grub“ in die erste Partition der Festplatte im System installiert. Dabei wird ein Bootmenü erstellt, in welches auch bereits installierte Betriebsysteme aufgenommen werden würden, was aber wegen dem Nichtvorhandensein solcher entfällt.
Nun wird die eigentliche Installation beendet. Es werden noch ein paar letzte Daten auf die Festplatte geschrieben, bevor die Installations- CD nach einem Druck der Entertaste ausgeworfen wird. Diese muss man nun heraus nehmen, damit der Computer nicht wieder von der CD sondern von der Festplatte startet. Der Computer wird nun automatisch neu gestartet.

6. Weitere Konfiguration des Linux Systems
6.1. Erster Bootvorgang des Systems

Beim Neustart wird uns nun das neue Bootmenü präsentiert, welches 2 Einträge enthält. Einen für den normalen Start und einen für den Recovery Mode, in dem Fehler des Systems behoben werden können. Es ist jedoch nicht nötig, an dieser Stelle aktiv zu werden, da der normale Modus nach 5 Sekunden automatisch gestartet wird.

Nachdem der Bootvorgang mit seinen zahlreichen Statusmeldungen beendet ist, erwartet uns noch etwas Konfigurationsarbeit. Zuerst begrüßt uns das neu installierte System und bereitet uns auf die noch anstehenden Konfigurationsarbeiten vor.

6.2. Einstellung Zeitzone und Vergabe des Rootpasswortes

Als erstes wird die Zeitzone konfiguriert, welche auf Europa gestellt wird. Danach fordert das System auf, ein Passwort für den Benutzer „Root“ einzugeben. Der Benutzer „Root“ ist dem Windows-Administrator gleich zu setzen. Er besitzt alle Rechte über das System. Das Passwort muss daher sorgfältig ausgewählt werden. Ein zehnstelliges Passwort aus großen Buchstaben, kleinen Buchstaben und Zahlen bietet hier eine ausreichende Sicherheit von 60 Bit. Ein Passwort von dieser Stärke lässt sich auch mit Bruteforce-Attacken kaum knacken. Ich habe an dieser Stelle das Passwort „ExZGh71asW“ gewählt. Eine Übersicht über alle im System verwendeten Passwörter findet sich in Anlage 6 der Dokumentation.
6.3. Erstellung des Arbeitsusers

Außerdem wird nun noch ein Arbeitsuser angelegt. Als Username habe ich hier „andre“ gewählt und das Passwort „6KBr2iUIM9“ vergeben. Dies geschieht aus sicherheitstechnischen Gründen, da es unter Linux üblich ist, nicht die ganze Zeit mit dem Rootuser zu arbeiten. Mit dem Rootuser wird also immer nur dann gearbeitet, wenn dessen Rechte für Systemänderungen benötigt werden.

6.4. Konfiguration des Softwarepaketmanagers APT

Software wird unter Debian hauptsächlich mittels des Paketmanagers APT installiert, entfernt oder geupdatet. Die Abhängigkeiten der Softwarepakete zu anderen Komponenten löst APT dabei selbstständig auf, wodurch er, im Gegensatz zu den Paketmanagern anderer Distributionen, sehr leicht bedienbar ist. APT greift dabei auf eine Datenbank installierbarer Pakete zurück, welche aus dem Internet oder den vorhandenen Installations-CDs / DVDs erstellt wird.

Bei der nun kommenden Abfrage, welche Art der Paketbeschaffung gewählt werden soll, verwende ich, der Aktualität der Pakete wegen, natürlich die Internetmethode und verwende einen Server in der Nähe der Firma, um eine hohe Downloadgeschwindigkeit zu garantieren. Der Paketmanager lädt danach sofort eine Liste der verfügbaren Pakete vom ausgewählten Server und erstellt eine aktuelle Paketdatenbank auf der Festplatte.

Danach wird abgefragt welche Software installiert werden soll. Dabei wird allerdings vorerst keine Software direkt angewählt, um ein möglichst schlankes System zu erhalten. Die benötigten Softwarepakete werden dann später manuell über die Kommandozeile installiert.

Daraufhin wird von APT begonnen, die Softwarepakete des Basissystems über das Internet auf den neuesten Stand zu bringen, wodurch etwaige Sicherheitslöcher gestopft werden und / oder neue Funktionen, Verbesserungen und Anpassungen ins System eingepflegt werden. Download, Installation und Vorkonfiguration dieser Pakete erfolgt dabei vollautomatisch. Bei Konfigurations-nachfragen einzelner für das OTRS unwichtigerer Programme wurden die Standardwerte verwendet. Danach ist das System auf dem aktuellstmöglichen Softwarestand.

6.5. SSH Server Konfiguration

Es ist nun möglich, sich mit den Vergebenen Userdaten am System anzumelden. Der Server ist außerdem aus dem Firmennetz über das Protokoll SSH erreichbar. Dieses erlaubt die Fernsteuerung des Rechners über die Kommandozeile, als wenn man selbst am Rechner sitzt. Als SSH Client wird z.B. das Windows Programm „Putty“ verwendet.
Der SSH Server wird nun noch so konfiguriert, dass sich der Rootuser nicht mehr einloggen kann. Dies geschieht aus Sicherheitsgründen. Will man sich nun einloggen, muss man dies mit dem Arbeitsuser „andre“ tun. Da dieser nur eingeschränkte Rechte im System hat, muss man ihm mittels des Befehls „su“ und Eingabe des Rootpasswortes Rootrechte verschaffen, wenn man diese zur Änderung der Konfiguration oder ähnlichem benötigt.

6.6. Einrichtung eines Framebuffers

Nun richte ich in den Konfigurationsdateien des Bootloaders „Grub“ noch einen Framebuffer ein. Ein Framebuffer stellt im textbasierten Modus von Linux eine höhere Auflösung zu Verfügung, wodurch mehr Text auf einer Zeile dargestellt werden kann. Dies verhindert Zeilenumbrüche und erleichtert das lesen von langen Meldungen oder das Schreiben von längeren Befehlen in der Shell.

7. Installation SMP Kernel, OTRS und alle nötigen Komponenten
7.1 Installation

Um den SMP-fähigen Kernel, das OTRS und alle für die Nutzung nötigen Komponenten zu installieren, reicht die Eingabe des Befehls „apt-get install otrs otrs-doc-de mysql-server kernel-image-2.6.8-2-686-smp mc irqbalance libmysqlclient14-dev libapache2-mod-perl2 libapache2-mod-php4 php4-mysql webalizer libmail-audit-perl libnet-ssleay-perl libcompress-zlib-perl libgd-text-perl libgd-graph-perl aspell php4-pear libgd-tools lynx libio-socket-ssl-perl libhtml-format-perl spellutils zip gzip unzip“. Danach lädt, installiert und vorkonfiguriert APT all diese Pakete wieder vollautomatisch. Natürlich werden zusätzlich benötigte Pakete ebenfalls automatisch mitinstalliert.
Die anderen im Befehl auftauchenden Pakete wurden durch vorherige Abwägung der späteren Notwendigkeiten von mir ausgewählt und somit gleich zu diesem Zeitpunkt installiert Bei etwaigen Konfigurationsabfragen der Pakete wurden die Standardwerte genutzt.

Der SMP Kernel ist damit installiert und konfiguriert. Der entsprechende Eintrag in der Bootmenüliste wurde ebenfalls automatisch vorgenommen und als Standard gesetzt, so dass der Kernel nach einem Neustart des Systems sofort genutzt wird. Auch das OTRS samt direkt und indirekt benötigter Komponenten ist nun installiert und vorkonfiguriert.

7.2. OTRS Konfiguration

Die abschließende Konfiguration und Anpassung des OTRS wird in der Anlage 1 der Dokumentation beschrieben. Dort finden Sich auch alle für den OTRS-Administrator wichtigen Informationen zur Konfiguration des Systems.

8. Auswertung
8.1. Zusammenfassung

Das OTRS ist in der Lage, alle geforderten Aufgaben zu erfüllen. Die Arbeitsweise der Supportabteilung wurde nachweislich verbessert, da die Mitarbeiter nun mehr Mails am Tag bearbeiten. Die Suchfunktion des OTRS und die Darstellung der Korrespondenz als Ticket bringt eine erhebliche Erleichterung bei der Informationssuche. Jeder Mitarbeiter kann nun an jedem PC der Firma arbeiten, wenn der Rechner an das Firmennetz angeschlossen ist.

Für die Mitarbeiter wurde eine Kundendokumentation erstellt, welche sich in Anlage 2 befindet. Außerdem wurden weitere Konfigurationshilfsmittel installiert, um den Umgang mit dem System zu vereinfachen; diese sollten jedoch von den normalen Nutzern nicht benötigt werden. Eine Beschreibung der Konfigurationshilfsmittel ist unter Anlage 3 zu finden.

Die System- und Datensicherheit wird durch die in Anlage 4 erarbeiteten Schritte garantiert. Außerdem ist ein Ausblick über die weiteren Einsatzmöglichkeiten des System erstellt worden, welcher in Anlage 5 zu finden ist. Die benötigte Zeit in Form eines Gantt-Diagramms ist in Anlage 7 zu finden. Die Kosten wurden wie gefordert gering gehalten, was Anlage 8 verdeutlicht. Eine Legende der verwendeten Fremdwörter befindet sich in Anlage 10.

Die originale OTRS-Dokumentation konnte nicht als Anlage angefügt werden, da diese mit 140 Seiten Umfang den Rahmen der von der IHK vorgegebenen maximalen Anzahl von 30 Blättern für die Anlage sprengen würde. Ein Link zur Originaldokumentation ist in Anlage 2 zu finden.

.8.3. Produktstatistiken

Die Aufgabenstellung einer statistischen Auswertungsmöglichkeit ist ebenfalls erfüllt, da das OTRS eine solche Funktionalität schon mitbringt. Über den Button „Stats-Area“ im OTRS-Webfrontend gelangt man zur Auswertung der Auslastung des Supportaufkommens der einzelnen Queues bzw. Produkte. Man kann sich die Anzahl der neuen Tickets unter „New Tickets“ anzeigen lassen, mit „Ticket Overview“ werden alle Tickets in allen Queues dargestellt und bei der letzten Option „State Action Overview“ kann man die Systemaktivitäten verfolgen, also alle Vorgänge die im OTRS stattgefunden haben. Die Anzeige erfolgt immer für einen Monat und kann auch auf vergangene Monate eingestellt werden.

Die Statistik kann wahlweise in verschiedenen grafischen Formen, wie Linien- oder Balkendiagrammen oder textbasiert ausgegeben werden. Außerdem kann anhand von Trafficauswertungen des Webservers im Verzeichnis http://192.168.0.251/webalizer ein weiterer Eindruck über die Nutzung des Systems gewonnen werden.
9. Quellenangaben

http://www.otrs.org
Alle Informationen über das OTRS sowie die Software selbst kommen von dieser Seite.

http://www.debian.org
Infos zu Debian Linux und Download der Installations CD.
10. Anlagen

Anlage 1.

Konfiguration OTRS

Als erstes muss in der Hauptkonfigurationsdatei /etc/apache2.conf des Apache2-Webservers die OTRS-Konfigurationsdatei für den Webserver geladen werden. Dies wir mittels Anfügen der folgenden Zeile erledigt: „Include /etc/otrs/apache2-httpd.include.conf“. Danach ist das OTRS über den Browser unter der Adresse http://192.168.0.251/otrs/ erreichbar. Jedoch kommt hier noch eine Fehlermeldung, da noch keine Datenbank konfiguriert ist.

Als Datenbank wird der MySQL-Server in Version 4.0 genutzt werden, welcher im Zuge der vorangegangenen OTRS-Installation mitinstalliert wurde. Der Server läuft bereits. Mit Hilfe des in Anlage 9 beschriebenen PHPMyAdmin-Tools wird als erstes ein Passwort für den MySQL- Rootnutzer gesetzt, um den Server abzusichern. Ich habe an dieser Stelle das Passwort „yu2eebz6BZ“ gesetzt.

Nun kann die OTRS-Datenbank erstellt werden. Dazu wird eine Datei mit den nötigen SQL- Anweisungen von der OTRS-Installation bereitgestellt. Die Datei wird wie folgt in den Server geladen. Als erstes loggt man sich als User „Root“ über die Kommandozeile mit dem Befehl „mysql -u root -pyu2eebz6BZ“ auf der MySQL-Konsole ein. Nun erstellt man mittels „create database otrs;“ die Datenbank „otrs“ und wählt diese mittels „use otrs;“ zur Benutzung aus. Jetzt kann man die Datei mit den SQL-Anweisungen zur Erstellung der Datenstruktur über den Befehl „source /usr/share/otrs/scripts/database/otrs-schema.mysql.sql;“ aufrufen. Außerdem muss noch „ source /usr/share/otrs/scripts/database/initial_insert.sql;“ aufgerufen werden, um die Daten zu vervollständigen. Dadurch wurden nun 52 Tabellen in der Datenbank „otrs“ erstellt. Um die Datenbank nicht die ganze Zeit als User „Root“ nutzen zu müssen, legt man auch hier einen Arbeitsuser namens „otrs“ an, welcher nur in der Datenbank „otrs“ die zur Nutzung erforderlichen Rechte hat. Dies tun wir über den Befehl „GRANT ALL PRIVILEGES ON `otrs` . * TO 'otrs'@'localhost' IDENTIFIED BY 'hosN24YBl6' WITH GRANT OPTION;“. Mit dem Befehl „exit“ kehrt man zur normalen Shell zurück.

Als nächstes kommt die Konfiguration des OTRS selbst. Das OTRS wird hauptsächlich über die Parameter in der Datei „/etc/otrs/Kernel/Config.pm“ konfiguriert. Die Konfiguration geht über die zu verwendende Datenbank, den zu nutzenden E-Mail Account, die Formatierung der Antwortmail bis zum Speicherort der Kundendaten. Es wird also alles in diese Datei eingefügt, was nicht den Standardeinstellungen aus der Datei defaults.pm, in der man alle möglichen Optionen nachlesen kann, entsprechen soll.
Als erstes werden ein paar Sicherheitseinstellungen gemacht und dem OTRS wird die zu verwendende Datenbank bekannt gemacht. Dies wird über die folgenden Zeilen erledigt.
Hier die wichtigsten Einstellungen und ihre Bedeutung. Die komplette Konfigurationsdatei ist in Anlage 9 der Dokumentation zu finden.
Hier immer erst der kursiv gedruckte Parameter und darunter die deutsche Erklärung.

Allgemeine Einstellungen:
$Self->{SecureMode} = 1;
Verhindert die Ausführung des Installers und damit das Rücksetzen der Datenbank  1=An, 0=Aus

$Self->{FQDN} = '192.168.0.251';
Adresse unter der das OTRS per Browser erreichbar ist.  192.168.0.251

$Self->{AdminEmail} = 'andre@.net';
E-Mail Adresse des OTRS Administrators zur Kontaktaufnahme bei Fehlern  andre@.net

$Self->{Organization} = ' Development GmbH';
Firmenname.  development GmbH

Datenbank Einstellungen:
$Self->{DatabaseHost} = 'localhost';
Datenbank Adresse  localhost = dieser Rechner

$Self->{Database} = 'otrs';
Datenbankname  otrs

$Self->{DatabaseUser} = 'otrs';
Datenbanknutzer  otrs

$Self->{DatabasePw} = hosN24YBl6;
Datenbankpasswort  hosN24YBl6

Speichereinstellungen:
$Self->{TicketStorageModule} = 'Kernel::System::Ticket::ArticleStorageFS';
Dies ist die Einstellung für den Speicherort der Kundenmails. Zur Wahl steht Datenbank oder Filesystem. Ich habe Filesystem ausgewählt, da ich es unschön finde, E-Mails samt Dateianlage direkt in der Datenbank zu speichern. Im gewählten Fall wird in der Datenbank nur ein Verweis auf die Stelle im Dateisystem gespeichert, was die Datenbank um einiges schlanker bleiben lässt.
E-Mail Einstellungen:
$Self->{'SendmailModule'} = 'Kernel::System::Email::SMTP';
Methode, über die ausgehende E-Mails versandt werden sollen. Ich habe hier SMTP gewählt. So erübrigt sich die Installation, Konfiguration und Pflege eines eigenen Mailservers, da das OTRS ein E-Mail Konto eines externen E-Mail Servers nutzt.

$Self->{'SendmailModule::Host'} = 'pop..net';
Serveradresse des verwendeten Mailservers.

$Self->{'SendmailModule::AuthUser'} = 'supportsystem';
Username zum Login in externes E-Mail Konto.

$Self->{'SendmailModule::AuthPassword'} = 'WZqXvJ5Td3';
Passwort zu externem E-Mail Konto.

$Self->{PostMasterPOP3MaxEmailSize} = 1024 * 13;
Maximale Größe der E-Mails, die in das OTRS importiert werden können.  13 Megabyte.

$Self->{CheckEmailAddresses} = 0;
E-Mail Adresse des Kunden wird über regulären Ausdruck auf Richtigkeit geprüft.

$Self->{CheckMXRecord} = 0;
Hier wird die E-Mail-Adresse des Kunden zusätzlich über den MX Record verifiziert.
Beide Möglichkeiten der E-Mail-Adressüberprüfung sind deaktiviert, da ein Mitarbeiter, der ein Ticket telefonisch aufnimmt, die Möglichkeit haben muss, einen Kunden ohne E-Mail-Adresse bearbeiten zu können. In diesem Fall wird bei der E-Mail Adresse einfach „NONAME“ eingetragen. Mit aktivierter Überprüfung würde das OTRS in einem solchen Fall sonst eine Fehlermeldung ausgeben und die weitere Arbeit verweigern. Die E-Mail-Adresse ist generell notwendig, da diese als User-ID für die Kunden genutzt wird, um sie über die Suchefunktion des OTRS schnell wieder finden zu können, wenn Informationen über den Kunden benötigt werden.

Logging:
$Self->{LogModule} = 'Kernel::System::Log::File';
Hier wird eingestellt ob das OTRS Fehler in der Datenbank oder einer Datei speichern soll. Ich habe mich hier für eine Datei entschieden, da ich diese von Logrotate mitverwalten lassen kann. Somit erhalte ich immer ein kleines überschaubares Logfile und die veralteten Files werden komprimiert archiviert. Achtung! Logverzeichnis und Datei müssen manuell erstellt werden.


$Self->{'LogModule::LogFile'} = '/var/log/otrs/otrs.log';
Hier wird der Pfad der Name zur Logdatei angegeben  /var/log/otrs/otrs.log

Nun kann man sich erstmals im OTRS anmelden, indem man die Seite http://192.168.0.251/otrs/ aufruft. Beim ersten Login gibt man als Usernamen „root@localhost“ und als Passwort „root“ ein. Man hat nun die OTRS-Oberfläche vor sich und sollte als erstes auf den „Admin“-Knopf drücken um in das Adminmenü zu kommen und die weitere Konfiguration vorzunehmen, die in der Datenbank und nicht in einer Konfigurationsdatei gespeichert wird.
Als erstes habe ich das doch recht unsichere Passwort des Adminaccounts geändert. Dabei habe ich den Loginnamen in „Admin“ und das Passwort auf „08nBZMRtYP“ gesetzt. Außerdem habe ich die E-Mail-Adresse auf otrsadmin@.net geändert. Da man den Adminaccount nicht zum bearbeiten der E-Mails benutzen sollte, habe ich auch gleich noch einen Arbeitsuser namens „Andre“ für mich angelegt und auch die User für alle Mitarbeiter erstellt. Bei den Zugriffsrechten für die erstellten User wurden jeweils nur alle Rechte für die Benutzergruppe „users“ erstellt.

Diese Benutzergruppe wurde im nächsten Schritt unter dem Punkt „Gruppen“ im Adminmenü in „Support“ umbenannt. Aus der Gruppe „FAQ“ wurde „Vertrieb“ und aus der Gruppe „Stats“ wurde „Rechnungswesen“ gemacht. Die Gruppe „Admin“ blieb unverändert bestehen.

Nun werden die Queues eingerichtet, was den einzelnen Warteschlangen für die Produkte entspricht. Die Queues werden wie folgt gestaffelt. Zunächst wird durch Umbenennen eine Hauptqueue „Support“ aus der bestehenden Queue „Misc“ erstellt. Danach werden Unterqueues für die einzelnen Supportsprachen erstellt, welche wiederum die Produkte als letzte Unterqueue haben. Eine Beispielanordnung wäre also z.B. die Anordnung „Support / German / MusikMaker“. Dies wird für alle Sprachen und alle Produkte nach diesem Schema getan, bis alle Produkte zugeteilt sind.

Außerdem werden die bestehenden Queues „Junk“ und „Raw“ in „Spam“ und „MailDelivery“ umbenannt, da sich Queues nicht löschen lasen. In die Spamqueue werden alle unerwünschten Werbemails verschoben. Da diese nicht gespeichert werden müssen, können diese als einzige Mails gelöscht werden. In der MailDelivery-Queue landen alle nicht zustellbaren Mails, die mit einer Fehlermeldung der zuständigen Mailserver zurückkommen. Diese Mails werden allerdings archiviert anstatt sie wie den Spam zu löschen, da sie eventuell zum späteren Nachvollziehen einer Korrespondenz benötigt werden. Die bestehende Queue „Postmaster“ bleibt als Oberqueue von „Spam“ und „MailDelivery“ bestehen, in der alle Mails landen, die nicht automatisch zuordenbar sind. Außerdem werden noch die Queues „Vertrieb“ und „Rechnungswesen“ erstellt, allerdings ohne die Unterqueues festzulegen, da die beiden Bereiche lediglich vorbereitet werden sollten.

Als nächstes wird der Adminmenüpunkt „PostMaster Filter“ konfiguriert, der sehr aufwendig ausfällt, da er für die automatische Zuordnung der Mails in die entsprechenden Queues zuständig ist. Die Zuordnung wird über das Verwenden von regulären Ausdrücken erreicht. Dies ist möglich, da die E-Mails alle über ein HTML-Formular versendet werden und so einen eindeutigen Betreff bekommen. In diesen Betreff ist die Programmgruppe sowie das Land eingearbeitet.

Als Beispiel könnte eine Mail den Betreff „MGXSR27459,G52,mp3maker,de“ haben. Der vordere Teil des Betreffs ist dabei eine für die Zuordnung unwichtige ID. Für den Filter ist nur „,mp3maker“ und „,de“ interessant, da sich daraus das Programm MP3 Maker in deutscher Version ergibt. Der Filter müsste demnach „,mp3.+?,de“ lauten. In Worten sucht er nach: „einem Komma, gefolgt von der Zeichenkette mp3, gefolgt von mindestens einem beliebigem Zeichen oder beliebig vielen beliebigen Zeichen, gefolgt von einem Komma und der Zeichenkette de“. Der Filter würde also auch auf den Betreff „MGXSR27459,G52,mp3makerDeluxe,de“ passen.

Leider unterscheiden sich die Programme zum Teil stark in Ihren Titeln, obwohl sie zur gleichen Programmgruppe gehören. Dies erzwingt zum Teil verhältnismäßig schwierig zu erstellende Filter. Die Treffergenauigkeit liegt dafür nahezu bei 100% und die Mails werden dadurch vollkommen automatisch der richtigen Queue zugeteilt, was den Arbeitsaufwand erheblich senkt. Allerdings ist diese Methode sicher nicht die schnellste, da unter Umständen über 200 Filter angewendet werden, um die Mail zuzuordnen. Passt keiner der Filter, wird die Mail in die Postmasterqueue verschoben, wo sie auf manuelle Zuordnung des Administrators warten muss. Dies passiert aber eigentlich nur bei Spammails die sich nicht filtern lassen oder Kunden, die den Betreff der Mail verändern.

Viele solcher immer wiederkehrender Aufgaben können außerdem von so genannten „Generic Agents“ automatisiert erledigt werden. Bei den „Generic Agents“ wird nicht nach dem Betreff oder Inhalt gefiltert, sondern danach, in welchem Status sich ein Ticket befindet bzw. in welcher Queue es eingeordnet ist oder einfach wie alt es ist. Dafür ist allerdings wieder eine Konfigurationsdatei verantwortlich, welche sich unter „/etc/otrs/Kernel/Config/GenericAgent.pm“ befindet. In dieser Datei werden dann in kurzen Scripten die Aufgaben abgearbeitet. In der von mir verwendeten Datei befinden sich Agenten, die die folgenden Aufgaben erfüllen: „alle Tickets in der Queue Spam löschen“, „beantwortete Tickets aus dem Postmaster in den Spam verschieben“, „alle Tickets in der MailDelivery-Queue schließen“, und „alle Tickets schließen auf die 3 Monate nicht geantwortet wurde“. Der Inhalt der Datei kann unter Anlage 9 angesehen werden.

Als nächstes muss nur noch unter der Adminmenüoption „PostMaster POP3-Konto“ eine E-Mail- Adresse eingerichtet werden, von der die Mails abgeholt werden sollen. Ist dies getan, holt ein bei der OTRS Installation eingerichteter Cronjob aller 10 Minuten die E-Mails ab, welche dann sofort gefiltert und eingeordnet werden und somit bearbeitet werden können.
Die restlichen Einstellungen im Webfrontend sind nur noch kosmetischer Natur. Es wird noch für jede Sprache eine eigene Anrede und Signatur erstellt. Außerdem können häufig vorkommende Probleme durch das Einbinden und Verwenden von Textbausteinen schnell und ohne großen Arbeitsaufwand abgearbeitet werden.

Das FAQ-System des OTRS wird nicht genutzt, da die Firma hier bereits eine eigene Lösung erstellt hat, welche keine Wünsche offen lässt. Ein Wechsel zu einem anderen System würde hier nur unnötig Arbeitszeit verschwenden.































Anlage 2.

Kundendokumentation

Um das OTRS nutzen zu können, geben Sie die Adresse http://192.168.0.251/otrs/ in die Adresszeile Ihres Browsers ein. Sie gelangen so zum OTRS-Login. Geben Sie nun Ihren Usernamen und Ihr Passwort ein.

Sie können nach erfolgtem Login ein neues Fenster sehen, in dem Sie die in Sprachen und Produkte unterteilten Bereiche mit den Anfragen der Kunden sehen können. Die Bereiche im OTRS werden Queues genannt. Eine Queue entspricht einer Warteschlange. In der Queue warten also die Kunden darauf, bearbeitet zu werden.

Über den „Einstellungen“-Button können Sie die Oberfläche des OTRS an Ihre Bedürfnisse anpassen. Als erstes sollten Sie unter „Meine Queues“ die Queues anwählen, die Sie bearbeiten müssen. So erreichen Sie, dass alle anderen für Sie irrelevanten Queues ausgeblendet werden.
Dies fördert die Übersicht, da nun die anderen Queues nicht mehr ablenken können.

Das OTRS nutzt zur Kommunikation mit den Kunden keine einzelnen E-Mails, sondern so genannte Tickets. In einem Ticket wird die komplette Korrespondenz zwischen Ihnen und einem Kunden gespeichert. Ruft man also ein Ticket auf, hat man nicht nur die letzte Nachricht zur Verfügung, sondern alle bis dahin versandten oder empfangenen Nachrichten. Dies hat den Vorteil, dass die mühsame und zeitintensive Suche nach einzelnen E-Mails ein Ende hat. Sollte also einmal eine einzelne Information zu einem Kunden benötigt werden, ist diese immer zusammen mit allen anderen Informationen verfügbar, wodurch es sehr viel leichter fällt, die Zusammenhänge einer Problemstellung zu überschauen.

Es sollten nun schon die ersten Tickets für Sie in der Vorschau sichtbar sein. Um ein Ticket in der Vollansicht zu sehen, klicken Sie auf „Inhalt“. Es wird nun nur noch das gewählte Ticket angezeigt.
Mittels Mausklick auf „Leere Antwort“ im rechten Teil des Bildschirms können Sie eine leere Antwort verfassen. Es ist aber auch möglich, einen der vorgefertigten Textbausteine zu verwenden, wenn es sich um ein bekanntes Problem handelt. So sparen Sie sich Tipparbeit und können häufig auftretende Fragen schnell und effektiv bearbeiten.

Um ein neues Ticket zu erstellen, welches in eine der Queues eingehen soll, müssen Sie den Button „Telefon-Ticket“ anklicken. In das „Von“ Feld tragen Sie nun die E-Mail Adresse des Kunden ein. Im „An“ Feld wählen Sie die dem Programm entsprechende Queue aus. Der Besitzer muss nicht gesetzt werden, außer Sie wollen ein Ticket direkt an einen Kollegen übergeben. Betreff und Text sollten eine möglichst genaue Fehlerbeschreibung enthalten, um es dem nächsten Bearbeiter möglichst leicht zu machen. Alle anderen Felder können ignoriert werden.
Wenn Sie eine Nachricht aus dem OTRS verschicken wollen, ohne dass schon ein Ticket vom Empfänger existiert, können Sie dies über den Button „Email-Ticket“ tun. Über diesen Button verfasste Nachrichten werden nicht im System gespeichert, sondern direkt an den Empfänger versandt.

Benötigen Sie einmal Informationen zu einem Kunden, hilft Ihnen die Suchfunktion weiter. Am besten lässt sich nach E-Mail-Adressen suchen, da dies auch gleichzeitig die User-IDs der Kunden sind. Außerdem kann auch nach der Ticket-ID gesucht werden, die jedes Ticket automatisch erhält. Die Ticket-ID ist die Nummer, die mit in den Betreff einer E-Mail eingebaut wird, wenn diese das System erreicht.

Der Button „Sammelaktion“ dient zum gleichzeitigen Bearbeiten mehrerer Tickets. Wollen Sie z.B. mehrfach vorhandene Tickets schließen, setzen Sie das Häkchen links oben neben der Ticketnummer. Wenn Sie mindestens 2 Tickets so ausgewählt haben, können Sie diese über einen Klick auf den „Sammelaktion“ Button gemeinsam bearbeiten.

Prinzipiell ist es jedoch nicht nötig, ein Ticket manuell zu schließen, da dies nach 3 Monaten automatisch passiert, wenn das Ticket nicht vom Kunden beantwortet wurde.

Sollten noch Fragen zur Anwendung des Systems bestehen empfehle ich die Herstellerdokumentation unter folgendem Link zu Rate zu ziehen. http://ftp.otrs.org/pub/otrs/misc/doc/1 ... f/otrs.pdf

Außerdem wird kurz vor der endgültigen Umstellung auf das neue System eine Präsentation vor der kompletten Supportbelegschaft stattfinden, wobei natürlich auch Fragen gestellt werden können.
Anlage 3.

Konfigurationshilfen

Zur weiteren Vereinfachung der Konfiguration und Administration des Servers werden das Servermanagementtool „Webmin“, das MySQL-Datenbankmanagementtool „PHPMyAdmin“ und der Dateimanager „Midnight Commander“ installiert.

PHPMyAdmin kann über die Adresse http://192.168.0.251/phpmyadmin aufgerufen werden. Es dient zum bequemen Verwalten, Ändern, Anlegen, und Löschen von MySQL-Datenbanken und deren Nutzern. Zum Login wird der MySQL-Rootnutzer samt Passwort genutzt. Weitere Informationen, eine Dokumentation sowie die Quellen des Programms können unter http://www.phpmyadmin.net eingesehen werden.

Das Webmin-Interface findet man unter https://192.168.0.251:10000. Es kann zur Konfiguration fast jedes Linux-Dienstes genutzt werden, wie z.B. Cron, Apache, MySQL usw. Es ist sogar ein browserbasierter Dateimanager vorhanden. Der Login erfolgt über den Nutzer „Root“ samt Passwort. Die Projekthompage befindet sich unter http://www.webmin.com.

Außerdem wurde auf Kommandozeilenebene der grafische Dateimanager „Midnight Commander“ installiert, um das Verwalten und Editieren der Dateien zu vereinfachen. Er gleicht in Aussehen und Funktion dem aus DOS-Zeiten bekannten „Norton Commander“ und lässt sich auch über einen SSH-Client aufrufen. Dazu reicht die Eingabe des Befehls „mc“ auf der Kommandozeile.

















Anlage 4.

Datensicherung

Ein Backup der Kundendaten wird täglich um 4 Uhr früh von einem Cronjob erstellt, welcher das Bash-Script (/etc/otrs/otrs_backup.sh) von Anlage 9 ausführt. Das Script stoppt als erstes den MySQL-Server, damit sich keine Daten mehr verändern können. Dann werden die Verzeichnisse „/var/lib/mysql“, „/var/lib/otrs“, „/usr/share/otrs“, „/etc“ und „/var/log/otrs“ mittels GZip gepackt und im Verzeichnis „/backup“ abgelegt. Die Datenbank wurde dabei in Form des ersten Verzeichnisses gesichert. Das Verzeichnis „/backup“ ist eine der 5 Wechselplatten, welche beim Booten als Verzeichnis „/backup“ in das Dateisystem eingebunden werden. Nach dem Backup wird der Server automatisch heruntergefahren. Damit soll sichergestellt werden, dass der erste Mitarbeiter morgens in der Firma die Festplatte wechselt und den Server wieder startet. Funktioniert das OTRS am morgen nicht, wurde die Platte also noch nicht getauscht.

Ein weiteres Bash-Script (/etc/otrs/otrs_restore.sh) dient zur Wiederherstellung des Systems. Es sichert nochmals alle wichtigen Daten, löscht dann die alten Daten von der Festplatte und schreibt die Daten des Backups auf die Platte. Das genannte Script ist ebenfalls in Anlage 9 zu finden.

Als weitere Sicherheitsmaßnahme habe ich das Hardenscript „Bastille“ installiert. Es setzt restriktivere Dateirechte, verhindert die Ausführung von Programmen ohne Rootrechte und nimmt noch weitere sicherheitsrelevante Einstellungen am System vor.

Außerdem wurde die Systemfestplatte auf eine weitere 80-GB-Festplatte gespiegelt, um bei einem Ausfall nicht das ganze System neu einrichten zu müssen.

Alle auf der Supportadresse eingehenden Mails werden bereits vom externen E-Mail-Server auf ein weiteres E-Mail-Konto kopiert und 10 Tage gespeichert, um verlorene Mails notfalls rekonstruieren zu können.









Anlage 5.

Ausblick

Der OTRS-Server bietet noch genug Ressourcen, um ihn, im Rahmen der Firma, mit fast beliebig vielen weiteren Diensten zu erweitern.

Außerdem kann noch eine Faxschnittstelle installiert werden, die den Empfang von Faxen im OTRS ermöglicht und damit das umständliche manuelle einpflegen der Faxe erübrigt. Dazu wird jedoch neue Hardware in Form einer ISDN-Karte benötigt.

Außerdem besteht die Möglichkeit, den Server als File- oder E-Mail-Server zu nutzen. Der Webserver kann außerdem für eine webbasierte Groupwarelösung genutzt werden, um die Unternehmenskommunikation weiter zu verbessern.

Anlage 6.

Passwörter

Systempasswörter:

Benutzer: root
Passwort: ExZGh71asW

Benutzer: andre
Passwort: 6KBr2iUIM9


MySQL Datenbankpasswörter:

Benutzer: root
Passwort: yu2eebz6BZ

Benutzer: otrs
Passwort: hosN24YBl6


OTRS Administrator Passwort:

Benutzer: admin
Passwort: 08nBZMRtYP


OTRS E-Mail Konto:

Benutzer: supportsystem
Passwort: WZqXvJ5Td3




Anlage 7.

Gantt-Diagramm



Anlage 8.

Kosten

Da ein Großteil der Hardware bereits vorhanden war, die Software kostenlos verfügbar ist und ich Mitarbeiter der Firma bin, sind nur geringe Kosten für die Neuanschaffung der 6 Festplatten, des Wechselrahmens sowie der 4 zusätzlichen Einschübe angefallen.

Die Festplatten, der Wechselrahmen sowie die zusätzlichen Wechselrahmeneinschübe wurden bei unserem Hardwarelieferanten „Winner-Computer“ bestellt.

Bei den Festplatten habe ich mich für das Modell „SP0812N“ der Firma Samsung entschieden, da sich diese meiner Erfahrung nach als sehr robust aber auch schnell erwiesen haben. Die Kosten pro Stück belaufen sich auf 54,99 €, was einen Gesamtpreis von 329,94 € entspricht.

Den Wechselrahmen habe ich auf Empfehlung des Ansprechpartners bei „Winner-Computer“, der den „ICY Dock MB123“ von Raid Solutions verwendet, der 16,98 € kostet, gewählt.

Die 4 weiteren Einschübe kosten je 7,99 €, was einen Gesamtpreis von 31,96 € ausmacht.

Daraus ergeben sich die Gesamtkosten für die neu angeschaffte Hardware von 378,88 €.
Anlage 9.

Script / Codeauszüge

1.) Das Backup Script /etc/otrs/otrs_backup.sh

#!/bin/sh
echo STARTING OTRS BACKUP !
/etc/init.d/mysql stop > /dev/null 2>&1
tar cfvz /backup/mysql_db.tar.gz /var/lib/mysql > /dev/null 2>&1
tar cfvz /backup/otrs_fs.tar.gz /var/lib/otrs > /dev/null 2>&1
/etc/init.d/mysql start > /dev/null 2>&1
tar cfvz /backup/otrs_install.tar.gz /usr/share/otrs > /dev/null 2>&1
tar cfvz /backup/etc.tar.gz /etc > /dev/null 2>&1
tar cfvz /backup/otrs_log.tar.gz /var/log/otrs > /dev/null 2>&1
echo OTRS BACKUP COMPLETE !
echo SYSTEM WILL SHUTDOWN IN 60 SECONDS !
echo PRESS STRG+C TO ABORT !
#/sbin/shutdown -h +1


2.) Das Wiederherstellungsscript /etc/otrs/otrs_restore.sh

#!/bin/sh
echo STARTING OTRS REPAIR !
echo OTRS DB REPAIR WILL START IN 60 SECONDS !
echo ALL NEW DATA WILL BE LOST !
echo DO YOU REALY WANT TO DO THIS ?
echo PRES CTRL + C TO ABORT !
sleep 60
/etc/init.d/mysql stop
tar cfvz /backup/mysql_db_restore.tar.gz /var/lib/mysql > /dev/null 2>&1
tar cfvz /backup/otrs_fs_restore.tar.gz /var/lib/otrs > /dev/null 2>&1
cd /
tar xfvz /backup/mysql_db.tar.gz > /dev/null 2>&1
cd /
tar xfvz /backup/otrs_fs.tar.gz > /dev/null 2>&1
/etc/init.d/mysql start
echo OTRS REPAIR COMPLETE !
3.) Die Konfigurationsdatei /etc/otrs/Kernel/Config.pm

# --
# Kernel/Config.pm - Config file for OTRS kernel
# Copyright (C) 2001-2004 Martin Edenhofer <martin+code@otrs.org>
# --
# $Id: Config.pm.dist,v 1.13 2004/08/10 06:56:39 martin Exp $
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (GPL). If you
# did not receive this file, see http://www.gnu.org/licenses/gpl.txt.
# --
# Note:
#
# -->> OTRS does have a lot of config settings. For more settings
# (Notifications, TicketViewAccelerator, TicketNumberGenerator,
# LDAP, PostMaster, Session, Preferences, ...) see
# Kernel/Config/Defaults.pm and copy your wanted lines into "this"
# config file. This file will not be changed on update!
#
# --
package Kernel::Config;
# --
sub Load {
my $Self = shift;
# ---------------------------------------------------- #
# ---------------------------------------------------- #
# #
# Start of your own config options!!! #
# #
# ---------------------------------------------------- #
# ---------------------------------------------------- #

# ---------------------------------------------------- #
# system data #
# ---------------------------------------------------- #
# SecureMode
# (Enable this so you can't use the installer.pl)
$Self->{SecureMode} = 1;
# SystemID
# (The identify of the system. Each ticket number and
# each http session id starts with this number)
$Self->{SystemID} = 10;
# TicketHook
# (To set the Ticket identifier. Some people want to
# set this to e. g. 'Call#', 'MyTicket#' or 'TN'.)
$Self->{TicketHook} = 'Ticket#';
# FQDN
# (Full qualified domain name of your system.)
$Self->{FQDN} = '192.168.10.5';
# AdminEmail
# (Email of the system admin.)
$Self->{AdminEmail} = 'andre@.net';
# Organization
# (If this is anything other than '', then the email will have an
# Organization X-Header)
$Self->{Organization} = ' Development GmbH';

# ---------------------------------------------------- #
# database settings #
# ---------------------------------------------------- #
# DatabaseHost
# (The database host.)
$Self->{DatabaseHost} = 'localhost';
# Database
# (The database name.)
$Self->{Database} = 'otrs';
# DatabaseUser
# (The database user.)
$Self->{DatabaseUser} = 'otrs';
# DatabasePw
# (The password of database user. You also can use bin/CryptPassword.pl
# for crypted passwords.)
$Self->{DatabasePw} = 'qE3f$9&y';
# DatabaseDSN
# (The database DSN for MySQL ==> more: "man DBD::mysql")
$Self->{DatabaseDSN} = "DBI:mysql:database=$Self->{Database};host=$Self->{DatabaseHost};";

# (The database DSN for PostgrSQL ==> more: "man DBD::Pg")
# $Self->{DatabaseDSN} = "DBI:Pg:dbname=$Self->{Database};";

# ---------------------------------------------------- #
# fs root directory
# ---------------------------------------------------- #
$Self->{Home} = '/usr/share/otrs';

# **************************************************** #
# insert your own config settings "here" #
# config settings taken from Kernel/Config/Defaults.pm #
# **************************************************** #
# $Self->{SessionUseCookie} = 0;
# $Self->{CheckMXRecord} = 1;

# **************************************************** #

# ---------------------------------------------------- #
# data inserted by installer #
# ---------------------------------------------------- #
# $DIBI$

$Self->{TicketNumberGenerator} = 'Kernel::System::Ticket::Number::DateChecksum';
$Self->{DefaultLanguage} = 'de';
$Self->{DefaultCharset} = 'iso-8859-1';

##### Storage
$Self->{TicketStorageModule} = 'Kernel::System::Ticket::ArticleStorageFS';

##### SendmailModule
$Self->{'SendmailModule'} = 'Kernel::System::Email::SMTP';
$Self->{'SendmailModule::Host'} = 'pop..net';
$Self->{'SendmailModule::AuthUser'} = 'otrs';
$Self->{'SendmailModule::AuthPassword'} = 'l3iod9vX';

#$Self->{'SendmailModule'} = 'Kernel::System::Email::Sendmail';
#$Self->{'SendmailModule::CMD'} = '/usr/sbin/sendmail';


##### Antwortformat
$Self->{ResponseFormat} = '$Data{"Salutation"}
$Data{"StdResponse"}

$Data{"Signature"}

$Data{"OrigFrom"} $Text{"wrote"}:
$Data{"Body"}
';

##### Max Mailsize
$Self->{PostMasterPOP3MaxEmailSize} = 1024 * 13;

##### Javascript Alert
$Self->{FrontendBulkFeatureJavaScriptAlert} = 0;

##### Check E-Mail Address
$Self->{CheckMXRecord} = 0;
$Self->{CheckEmailAddresses} = 0;

##### Show Message Of The Day
$Self->{ShowMotd} = 0;

##### Default Notes
$Self->{DefaultCloseNoteText} = 'Closed';
$Self->{DefaultNoteText} = 'Note';
$Self->{DefaultPendingNoteText} = 'Waiting';

##### MIME-Viewer for online to html converter
$Self->{'MIME-Viewer'}->{'application/excel'} = 'xlhtml';
$Self->{'MIME-Viewer'}->{'application/msword'} = 'wvWare';
$Self->{'MIME-Viewer'}->{'application/pdf'} = 'pdftohtml -stdout -i';


##### SystemStats erweiterung
$Self->{SystemStatsMap}->{"OTRS::Stats1"} = {
Name => 'New Tickets',
Module => 'Kernel::System::Stats::NewTickets',
Desc => 'New created tickets for each queue in selected month.',
SumCol => 1,
SumRow => 1,
UseResultCache => 0,
Output => ['Print', 'CSV', 'GraphLine', 'GraphBars', 'GraphPie'],
OutputDefault => 'Print',
};
$Self->{SystemStatsMap}->{"OTRS::Stats2"} = {
Name => 'Ticket Overview',
Module => 'Kernel::System::Stats::TicketOverview',
Desc => 'Overview of the tickets in queue at the end of this month.',
SumCol => 1,
SumRow => 1,
UseResultCache => 0,
Output => ['Print', 'CSV', 'GraphLine', 'GraphBars', 'GraphPie'],
OutputDefault => 'Print',
};
$Self->{SystemStatsMap}->{"OTRS::Stats4"} = {
Name => 'State Action Overview',
Module => 'Kernel::System::Stats::StateAction',
Desc => 'Trace system activities (Replacement of old bin/mkStats.pl).',
SumCol => 1,
SumRow => 1,
UseResultCache => 0,
Output => ['Print', 'CSV', 'GraphLine', 'GraphBars', 'GraphPie'],
OutputDefault => 'Print',
};

##### Spell Checker
$Self->{SpellChecker} = '/usr/bin/aspell';
$Self->{SpellCheckerDictDefault} = 'german';
$Self->{SpellCheckerIgnore} = ['www', 'webmail', 'https', 'http', 'html'];
$Self->{FrontendNeedSpellCheck} = 1;

##### html2text
$Self->{PostmasterAutoHTML2Text} = 0;

##### Logging
$Self->{LogModule} = 'Kernel::System::Log::File';
$Self->{'LogModule::LogFile'} = '/var/log/otrs/otrs.log';

##### Sessions
$Self->{SessionMaxTime} = 16*60*60;

# --------------------------------------------------- #
# default queue settings #
# these settings are used by the CLI version #
# --------------------------------------------------- #
#$Self->{QueueDefaults} = {
#UnlockTimeout => 0,
#EscalationTime => 0,
#FollowUpLock => 0,
#SystemAddressID => 1,
#SalutationID => 1,
#SignatureID => 1,
#FollowUpID => 1,
#FollowUpLock => 0,
#MoveNotify => 0,
#LockNotify => 0,
#StateNotify => 0,
#};


# ---------------------------------------------------- #
# ---------------------------------------------------- #
# #
# End of your own config options!!! #
# #
# ---------------------------------------------------- #
# ---------------------------------------------------- #
}

# ---------------------------------------------------- #
# needed system stuff (don't edit this) #
# ---------------------------------------------------- #
use strict;
use vars qw(@ISA $VERSION);
use Kernel::Config::Defaults;
push (@ISA, 'Kernel::Config::Defaults');
$VERSION = '$Revision: 1.13 $';
$VERSION =~ s/^\$.*:\W(.*)\W.+?$/$1/;
# -----------------------------------------------------#

1;


4.) Die Generic Agent Datei /etc/otrs/Kernel/Config/GenericAgent.pm

# --
# Kernel/Config/GenericAgent.pm - config file of generic agent
# Copyright (C) 2002-2004 Martin Edenhofer <martin+code@otrs.org>
# --
# $Id: GenericAgent.pm.dist,v 1.7 2004/02/12 00:55:01 martin Exp $
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (GPL). If you
# did not receive this file, see http://www.gnu.org/licenses/gpl.txt.
# --

package Kernel::Config::GenericAgent;

use strict;
use vars qw($VERSION @ISA @EXPORT %Jobs);
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(%Jobs);

$VERSION = '$Revision: 1.7 $';
$VERSION =~ s/^\$.*:\W(.*)\W.+?$/$1/;

# -----------------------------------------------------------------------
# config options
# -----------------------------------------------------------------------
%Jobs = (
#########################################################################


# --
# [name of job] -> move open tickets from postmaster to spam
# --
'move' => {
# get all tickets with this properties
Queue => 'Postmaster',
States => ['open'],
# new ticket properties
New => {
Owner => 'Admin',
Queue => 'Postmaster::Spam',
Note => {
From => 'GenericAgent',
Subject => 'Verschoben',
Body => 'Automatisch nach Spam verschoben, da im Postmaster.',
},
},
},

# --
# [name of job] -> close and delete all tickets in Queue Spam
# --
'delete' => {
# get all tickets with these properties
Queue => 'Postmaster::Spam',
Locks => ['unlock'],
# new ticket properties (no option is required,
# use just the options which should be changed!)
New => {
# DELETE!
Delete => 1,
},
},

# --
# [name of job] -> close all tickets in Queue MailDeliveryFailure
# --
'maildelivery' => {
# get all tickets with these properties
Queue => 'Postmaster::MailDeliveryFailure',
Locks => ['unlock'],
States => ['new'],
# new ticket properties (no option is required,
# use just the options which should be changed!)
New => {
# possible states (closed successful|closed unsuccessful|open|new|removed)
State => 'closed unsuccessful',
# if you want to add a Note
Note => {
From => 'GenericAgent',
Subject => 'Closed',
Body => 'Erfolglos automatisch geschlossen, da Mail Delivery Failure.',
},
},
},

# --
# [name of job] -> close all tickets after 3 months
# --
'autoclose' => {
# get all tickets with these properties
States => ['open'],
Locks => ['unlock'],
# tickets older then 3 months
TicketCreateTimeOlderMinutes => 60*24*90,
# new ticket properties (no option is required,
# use just the options which should be changed!)
New => {
# possible states (closed successful|closed unsuccessful|open|new|removed)
State => 'closed successful',
# if you want to add a Note
Note => {
From => 'GenericAgent',
Subject => 'Auto-Closed',
Body => 'Erfolgreich automatisch geschlossen, da Kunde sich nicht mehr meldet.',
},
},
},

#########################################################################
);
# -----------------------------------------------------------------------
# end of config options
# -----------------------------------------------------------------------
1;
Anlage 10.

Fremdwortlegende und Abkürzungsverzeichnis

TTS Steht für “Trouble Ticket System”. Das TTS ist eine Software um den Empfang, Bestätigung, Klassifizierung und Bearbeitung von Kundenanfragen zu handhaben. Moderne TTS unterstützen dabei verschiedene Medien wie Web, Mails und Faxe und haben offene Schnittstellen zu anderen Systemen wie z.B. Kundendatenbanken.

GPL GNU General Public License - Die GNU General Public License ist eine von der Free Software Foundation herausgegebene Lizenz für die Lizenzierung freier Software.

Browser sind Computerprogramme zum Betrachten verschiedener Arten von Dokumenten. Vorwiegend werden sie verwendet, um HTML-Seiten aus dem Internet anzuzeigen.

SMP Symmetrisches Multiprocessing ist eine Multiprozessor-Architektur, bei der die laufenden Prozesse auf alle Prozessoren verteilt werden können.

Kernel Ein Kernel ist der zentrale Bestandteil eines Betriebssystems. In ihm ist die Prozess- und Datenorganisation festgelegt, auf der alle weiteren Softwarebestandteile des Betriebssystems aufbauen.

Domain Eine Domain ist ein zusammenhängender Teilbereich des hierarchischen DNS-Namensraumes. Eine Domain umfasst ausgehend vom ihrem Domainnamen immer die gesamte untergeordnete Baumstruktur.

Bruteforce Für viele Probleme gibt es in der Informatik keine effizienten Algorithmen. Der natürlichste und einfachste Ansatz zur algorithmischen Lösung eines Problems besteht dann darin, einfach alle potenziellen Lösungen durchzuprobieren.

SSH Secure Shell ist sowohl ein Programm als auch ein Netzwerkprotokoll, mit dessen Hilfe man sich z.B. über das Internet auf einem entfernten Computer einloggen und dort Programme ausführen kann.

Shell Das Betriebssystem Unix erlaubt verschiedene Kommandozeileninterpreter, die unter Unix Shells genannt werden. Als Kommandozeileninterpreter ist eine solche Shell daher ein wichtiges Bindeglied zwischen dem Anwender und Unix.
Cronjob Der Cron Daemon ist eine Jobsteuerung von Unix bzw. Unix-artigen Betriebssystemen wie Linux, die wiederkehrende Aufgaben oder Befehle zu einer bestimmten Zeit ausführen kann.

MX Record Ein MX Resource Record oder Mail Exchange Resource Record (MX-RR) einer Domain definiert, zu welchem Mailserver eine E-Mail geschickt werden soll. Der MX-RR ist ein Resource Record im Domain Name System.

Webserver Ein Webserver ist im engeren Sinne ein Server-Dienst, welcher Dateien bzw. Daten über das HTTP-Protokoll zur Verfügung stellt, die sich über eine HTTP-URL adressieren lassen.

Backup Sicherheitskopie eines Datenstandes, die bei Datenverlust oder -zerstörung eine Möglichkeit bietet, die ursprünglichen Datenbest
You do not have the required permissions to view the files attached to this post.
Prod: Ubuntu Server 16.04 / Zammad 1.2

DO NOT PM ME WITH OTRS RELATED QUESTIONS! ASK IN THE FORUMS!

OtterHub.org

OTRS.Holland
OTRS newbie
Posts: 18
Joined: 24 Nov 2006, 16:50
Contact:

Taal, Language

Postby OTRS.Holland » 13 Dec 2006, 14:09

Is there alson a English version of this documentation ?¿
SOrry Can Not Speak German, I Speak English ¡¡

OTRS -- FREAKK !

Andre Bauer
OTRS guru
Posts: 2191
Joined: 08 Dec 2005, 17:01
OTRS Version?: 5.0.x
Real Name: André Bauer
Company: Magix Software GmbH
Location: Dresden
Contact:

Postby Andre Bauer » 13 Dec 2006, 14:15

No. Only German...
Prod: Ubuntu Server 16.04 / Zammad 1.2

DO NOT PM ME WITH OTRS RELATED QUESTIONS! ASK IN THE FORUMS!

OtterHub.org

cimbo
OTRS newbie
Posts: 8
Joined: 19 Mar 2008, 12:42

OTRS - Installation unter Debian Linux

Postby cimbo » 23 Apr 2009, 23:14

War das dein Abschlussprojekt zum FiSi? Ich hab meins gestern (gleiches Thema) abgeschlossen. Ein Glück, dass ich das erst heute gefunden habe, sonst hätt ich mich wohl zu sehr an deiner Doku orientiert ;-)

Falls es ein Abschlussprojekt war, würd mich interessieren, welche Note du in der Doku hattest?!

Andre Bauer
OTRS guru
Posts: 2191
Joined: 08 Dec 2005, 17:01
OTRS Version?: 5.0.x
Real Name: André Bauer
Company: Magix Software GmbH
Location: Dresden
Contact:

OTRS - Installation unter Debian Linux

Postby Andre Bauer » 24 Apr 2009, 11:11

Ja, richtig. Es gab 96 Punkte.
Prod: Ubuntu Server 16.04 / Zammad 1.2

DO NOT PM ME WITH OTRS RELATED QUESTIONS! ASK IN THE FORUMS!

OtterHub.org

Shinra
OTRS newbie
Posts: 1
Joined: 28 Jun 2012, 17:51
OTRS Version?: 20000
Real Name: Sven Jäger

Re: OTRS - Installation unter Debian Linux

Postby Shinra » 28 Jun 2012, 17:54

Andre Bauer wrote:Ja, richtig. Es gab 96 Punkte.

Zuallererst möchte ich sagen, dass es eine spitzenmäßige Arbeit ist und du verdient 96 Punkte bekommen hast. Ich würde trotzdem gerne fragen, wofür es Punktabzug gab?

Mein Bruder hat gerade das gleiche Thema und dein Beitrag wird ihm sicherlich helfen. Keine Sorge. Er wird ihn nicht kopieren, sich aber daran wahrscheinlich orientieren. Außerdem wird es übersetzt. Er studiert in Kroatien :)

Wenn du mir mitteilst, warum es Punktabzug gab, wäre das SUPER!


Return to “Howto's”

Who is online

Users browsing this forum: No registered users and 2 guests