Donnerstag, 31. März 2016

Datenbanksystem Firebird

Firebird als Datenbank unter Ubuntu

Auch, wenn die Mehrzahl der Datenbanken auf MySQL läuft, gibt es sicher auch einen Bedarf an Firebird, gerade weil die ein oder andere Warenwirtschaft  darauf aufsetzt.
Aus Performance-Sicht ist Firebird auf Linux
sehr zu empfehlen.

Bevor es zur Installation geht, ein kurzer Überblick über die verfügbaren Versionen:

Classic Server
Der Classicserver benutzt für jede eingehende Verbindung einen eigenen Prozess. Auf Multiprozessorsystemen kann er mehrere CPU Kerne nutzen und die Last verteilen. Jede Verbindung bekommt einen eigenen Cache.
Bringt bei wenigen Verbindungen die beste Leistung. Da aber viele Prozesse laufen, wird der Speicher entsprechend belastet.

SuperServer
Der Superserver benutzt nur einen Prozess und mehrere Threads für eingehende Verbindungen. Alle Verbindungen nutzen einen Cache. Mehrere CPU's werden nicht unterstützt. Auf Multiprozessorsystemen keinen Geschwindigkeitsvorteil. Bringt bei vielen Verbindungen die beste Leistung.

SuperClassic
SuperClassic benutzt für jede Verbindung einen Thread und einen Cache, ermöglicht aber die Nutzung von mehreren CPU Kernen. Kombiniert die Vorteile von Superserver und ClassicServer, aber erst ab Firebird 2.5 verfügbar.


Installation
Die Installation habe ich mittels aptitude durchgeführt:

aptitude install firebird2.5-superclassic

Anschließend werden von Ubuntu die benötigten Pakete aufgespielt. Um die Datenbank nutzen zu können, müssen noch der Benutzer und die Gruppe "firebird" angelegt, sowie das Hauptkennwort gesetzt werden. Das erledigt man mit dpkg-reconfigure:

dpkg-reconfigure firebird2.5-superclassic

Während der Paketmanager die Datenbank einstellt, wird man auch nach dem Kennwort für den Hauptbenutzer gefragt.

Die Einstellungsdateien befinden sich unter /etc/firebird/2.5

An der firebird.conf habe ich zunächst nichts verändert. In der aliases.conf habe ich einen Datenbankalias eingerichtet, sodass man die Datenbank nicht immer mit komplettem Pfad ansprechen muss. Wenn man nicht über einen Alias geht, muss man den kompletten Pfad aus Sicht des Servers mit angeben.

# ------------------------------
# List of known database aliases
# ------------------------------
#
# Example Database:
#
employee.fdb = /usr/share/doc/firebird2.5-common-doc/examples/empbuild/employee.fdb
employee = /usr/share/doc/firebird2.5-common-doc/examples/empbuild/employee.fdb
#
# Live Databases:
#
datenbank = /daten/datenbank.fdb


Hier habe ich der Datenbank /daten/datenbank.fdb den Alias Datenbank zugewiesen. Man muss natürlich darauf achten, dass man für die Datenbankdatei und die Verzeichnisse dahin, die richtigen Zugriffsrechte für den Benutzer firebird setzt.

Um einen Benutzer anzulegen, nehmen wir den Firebird Befehl gsec:

gsec -user sysdba -pass hauptpassword -add benutzername -pw benutzerkennwort

Hiermit legen wir den Benutzer "benutzername" mit dem Kennwort "benutzerkennwort" an, der Benutzer sysdba mit dem Hauptpassword wird während der Datenbankeinrichtung mittels dpkg-reconfigure eingerichtet.

Wenn man fertig ist, kann man die Datenbank neustarten mit:

/etc/init.d/firebird2.5-superclassic restart

Donnerstag, 24. März 2016

Bildgröße ändern mit Nautilus-Image-Converter



Ein besonders nettes Tool ist der "Nautilus-Image-Converter". Das Programm ist schnell installiert mit:

apt-get install nautilus-image-converter

Und kann anschließend per Rechtsklick auf ein Bild aufgerufen werden. Hier kann man nun einfach wählen, welche Größe das Bild haben soll, in Prozent oder in absoluter Pixelzahl. Und ob die Datei überschrieben oder neu erzeugt werden soll. Das Tool funktioniert auch auf mehreren Dateien auf einmal, sodass man sehr schnell eine große Menge an Bildern in der Auflösung ändern kann.

Das Programm arbeitet bei mir unter Ubuntu 10.04 und 14.04 sehr zuverlässig und ist mir neben Gimp eine große Hilfe, wenn es um die Bildbearbeitung geht.

Sonntag, 20. März 2016

Ich stelle vor: Unkonform


Heute möchte ich das Projekt "Unkonform" vorstellen, bei dem ich als Autor
auch mitschreibe. Es geht um Veränderung, Nachhaltigkeit, Naturschutz und .... Nachdenken über die Gesellschaft.
Am besten..... schaut doch einfach selbst vorbei:

Unkonform Blog

Donnerstag, 17. März 2016

Einfaches Monitoring mit Glances


Hier ein kleines aber sehr interessantes Monitoring Programm: Glances

Eine ausgewachsene Monitoring Lösung war mir zu komplex, und ein bisschen mehr als "htop" sollte es schon sein. Diese Lücke füllt Glances. Man kann es als Daemon laufen lassen, oder natürlich unkompliziert per screen in den Hintergrund verbannen.

Auf einem Blick sieht man die CPU Auslastung, Datendurchsatz der Netzwerkschnittstelle, Datendurchsatz der Festplatten sowie Mountpoints samt Belegung.

Die Installation ist denkbar einfach:
apt-get install glances

Anschliessend direkt starten mit:
glances

Wenn man es als Dienst laufen lassen möchte, muss man die Datei
/etc/default/glances
bearbeiten.

Donnerstag, 10. März 2016

Logmanagement mit Graylog

Jeder Admin kennt das: von Server zu Server hangeln um die Logdateien zusammenzusetzen und den Zusammenhang zu verstehen. Oder wieviele Ereignisse von Typ X in welchem Zeitraum aufgetreten sind.

Aktuell gibt es 3 bekannte LogManagementsysteme: Splunk - closed source, sehr kostspielig; ELK - OpenSource Software, bestehend aus ElasticSearch, Logstash, Kibana und Graylog - OpenSource, mein Favorit, da hier wieder alles aus einem Guss kommt (mehr oder weniger).
Man kann jetzt den guten alten Weg gehen und sich einen (r)syslogserver aufsetzen und alle Logs dahin schicken lassen. Um diese dann zu analysieren oder auszuwerten muss man etwas grep/awk Akrobatik zeigen um da etwas gescheites heraus zu bekommen, vor allem dann, wenn man auch Firewall-Logs bekommt.

Genau hier setzt Graylog an. Man erstellt einen Input, welcher aus dem Port/TCP/UDP und aus der Art (Syslog, KAFKA, GELF, etc) besteht, fertig. Nun kann Graylog auf dem Port Daten empfangen, diese sollten idealerweise im RFC 5424 Format ankommen. Da man das Format nicht immer bestimmen kann (Bsp: Firewalls) oder Graylog das Format nicht gut umsetzen kann, kann man ankommende Nachrichten noch zerstückeln und Datenfelder zuordnen. Jedoch kann man pro Input nur eine Art von Syslog nutzen, deswegen sollte man auch mehrere Streams erstellen und sein Syslog anpassen. So sollte man mail und auth jeweils in einen anderen Input zukommen lassen um die Daten auch besser analysieren zu können. Graylog hat dafür eine gute einfache Query-Engine.

Mit Graylog kann man sich jetzt schön schnelle Statistiken anzeigen lassen, bspw möchte man sich die SSH Logins der letzen X Stunden anzeigen lassen oder wissen, welche IP von welcher IP am meisten "besucht" wird, etc. Desweiteren kann Graylog auch die Daten analysieren. Wenn Schwellenwerte erreicht werden, kann es eine Mail senden. Zum Beispiel, wenn eine bestimmte IP innerhalb von 2min 200mal versucht eine IP zu erreichen, wenn SSH-Logins eine Schwelle erreichen oder wenn ein bestimmter HTTP-Code zurückkommt, etc.

Das ist nur ein kurzer Einblick in Graylog, man kann sich auch eigene Dashboards bauen und diesen Usern/Gruppen zuweisen.

Ich hoffe, ich konnte euch einen kleinen Einblick geben und sofern Interesse besteht, werde ich zu Graylog noch weiterführendes schreiben.

Donnerstag, 3. März 2016

Unter Ubuntu ein Paket aktualisieren

Gerade auf dem Server, komme ich manchmal in die Verlegenheit nur ein einzelnes Paket aktualisieren zu wollen.
Z.B., wenn es genau in diesem eine Schwachstelle gibt, ich aber nicht alle Pakete auf den neusten Stand bringen möchte.

Da im Moment die Schwachstelle in der libc-bin ein Thema ist, habe ich diese für mein Beispiel herausgesucht.

Zunächst aktualisieren wir die Paketliste, damit wir sicher sind, das richtige Paket zu benutzen, anschließend wird genau dieses eine Paket aktualisiert:

apt-get update
apt-get install --only-upgrade libc-bin