Seite wählen

NETWAYS Blog

Revisited – Graphite-Web installation unter Debian 9

Erstmal wieso Revisited ?

Dies ist ein update meines älteren Blog Posts Blogpost 2016 welcher darauf einging das unter Debian 8.4 graphite-web wegen eines Fehlenden Eintrages in der Apache 2.4 Konfiguration nicht korrekt gestartet/aufgerufen werden konnte.
Es ist schon einige Zeit ins Land gegangen und ich habe weniger ein Auge darauf geworfen ob das weiterhin so Funktioniert.
Deshalb Revisited.

Here we Go again !

Ich gehe in diesem Fall von einer Debian Version der Nummer 9 aus und werde wie bei dem alten Blogpost. In der Grundannahme mal davon ausgehen das alles Funktioniert wie es soll:
Also hier die folgenden installationschritte:
#> apt-get install apache2 libapache2-mod-wsgi python-django python-django-tagging fontconfig python-tz python-pip python-dev python-twisted python-cairo
#> pip install carbon whisper graphite-web
#> pip install --upgrade twisted
#> cp /opt/graphite/conf/carbon.conf.example /opt/graphite/conf/carbon.conf
#> cp /opt/graphite/conf/storage-schemas.conf.example /opt/graphite/conf/storage-schemas.conf
#> /opt/graphite/bin/carbon-cache.py start
#> /opt/graphite/bin/carbon-cache.py status
#> cp /opt/graphite/examples/example-graphite-vhost.conf /etc/apache2/sites-available/graphite.conf
#> cp /opt/graphite/conf/graphite.wsgi.example /opt/graphite/conf/graphite.wsgi
#> cp /opt/graphite/webapp/graphite/local_settings.py.example \ /opt/graphite/webapp/graphite/local_settings.py
#> python /opt/graphite/webapp/graphite/manage.py syncdb
#> chown www-data. -R /opt/graphite/storage
#> a2dissite 000-default
#> a2ensite graphite
#> a2enmod wsgi
#> service apache2 restart
#> chmod +x /etc/init.d/carbon-cache // Damit 'carbon-cache.py start' mit Systemstart erfolgt

Ergebnis davon ist -> Nichts funktioniert.

Back to the Roots

Ab hier kommt der Weg graphite-web auf einem Debian 9 (Stretch) in Betrieb zu nehmen.
Ausgangspunkt ist ein frisch installiertes Debian 9.
#> apt-get install vim -y
#> vim /etc/apt/sources.list

Wir müssen die Sources auf die Jessie Repositories setzen da zum Zeitpunkt dieses Blogposts die graphite-web Pakete nicht abrufbar sind.
Daher fügen wir folgendes hinzu in der sources.list
deb http://httpredir.debian.org/debian jessie main
Gefolgt von einem frischem #> apt-get update -y .
Nun installieren wir den großteil der Pakete welche wir benötigen.
#> apt-get install graphite-web graphite-carbon mysql-server python-mysqldb python-pymysql apache2 libapache2-mod-wsgi apt-transport-https ssl-cert python-pip -y
Es folgen ca. 300MB an Daten.
Daraufhin stürzen wir uns direkt auf die Konfig.
Wir fangen an folgende Datei zu editieren.
#> vim /etc/graphite/local_settings.py
Darin ändern wir folgende Settings Sinnvoll in etwas was wir für unsere Installation benötigen.
Also SECRET_KEY, TIME_ZONE & ALLOWED_HOSTS setzen.
Danach muss in der folgenden Datei ein „true“ gesetzt werden damit graphite & carbon gemeinsam starten.
#> vim /etc/default/graphite-carbon
Nun kommt der trickreichste Part wir sind leider dazu genötigt eine alte django Version zu installieren.
#> pip install "django==1.4"
Damit haben wir die Grundlage womit wir das folgende Kommando erfolgreich absetzen können.
#> graphite-manage syncdb
#> Kundenverbesserung: Danke an bbtronic!
#> graphite-manage migrate --run-syncdb
#> chown _graphite. /var/lib/graphite/graphite.db
HINWEIS ! Dies setzt erst mal die voreingestellte sqlitedb in Gang.
Wenn eine andere DB verwendet werden soll dann sollte dies bitte in der „local_settings.py“ vorgenommen werden.
Wir sind fast am Ziel ein funktionierendes graphite-web zu haben.
Es fehlt nur etwas Apache2 Magie.
#>a2dissite 000-default.conf
#>cp /usr/share/graphite-web/apache2-graphite.conf /etc/apache2/sites-available/
#> a2ensite apache2-graphite.conf
#> systemctl restart apache2

Voilà !

Es sollte nun auf dem Host System das graphite-web aufrufbar sein.

Danke für die Aufmerksamkeit !

Addenum nicht Sichtbare Kommentare von Kunden:
# Oliver: Ich bekam leider den Fehler:
twisted.python.usage.UsageError: Unknown command: carbon-cache

Hier hat dies geholfen:
mv /usr/local/lib/python2.7/dist-packages/twisted /usr/local/lib/python2.7/dist-packages/twisted2

Hier half mir ein downgrade:
python -m pip install ‘django-tagging<0.4' Das hatte ich auch, habe es mit upgrade auf django 1.5 beseitigen können: python -m pip install django==1.5 Vinc: hallo David nach dem ich die Installation bei back to the roots gestartet habe, klappte es. Wobei ein paar Infos unter Also SECRET_KEY, TIME_ZONE & ALLOWED_HOSTS wäre wohl noch nützlich. Aber trotzdem – klappt es nicht – die “bilder” erscheinen nicht wie wenn der Pfad falsch ist. gruss vinc

David Okon
David Okon
Senior Systems Engineer

Weltenbummler David hat aus Berlin fast den direkten Weg zu uns nach Nürnberg genommen. Bevor er hier anheuerte, gab es einen kleinen Schlenker nach Irland, England, Frankreich und in die Niederlande. Alles nur, damit er sein Know How als IHK Geprüfter DOSenöffner so sehr vertiefen konnte, dass er vom Apple Consultant den Sprung in unser Professional Services-Team wagen konnte. Er ist stolzer Papa eines Sohnemanns und bei uns mit der Mission unterwegs, unsere Kunden zu glücklichen Menschen zu machen.

Icinga2 & LSW

Ich musste feststellen das man mit dem Linux Subsystem for Windows auch Icinga2 + Icingaweb2 auch zum laufen bringen kann auf einem Windows.
Also hier mein kleiner Erfahrungsbericht:
Es galt erstmal heraus zufinden welches Ubuntu in dem Subsystem verwendet wird.
Dazu verwenden wir folgendes Kommando:

# lsb_release -a

selection_019
Nun installieren wir erstmal Updates:
# sudo -i && apt-get update
gefolgt von eurem PW und dann dem Update:
selection_020
Als nächstes installieren wir das Icinga2 Repo fuer die anstehende installation von Icinga2.
# add-apt-repository ppa:formorer/icinga && apt-get update
selection_022
Nun legen wir mit der Datenbank los:

# apt-get install mariadb-server mariadb-client -y

Es muss hiernach das Passwort für den MySQL Root Benutzer angelegt werden.
# /etc/init.d/mysql start
# mysql_secure_installation

Login zu Mariadb:
# mysql -p
Anlegen der Icinga-IDO Datenbank:
selection_027
# create database icinga;
Festlegen des IDO Benutzers:
# grant all on icinga.* to 'icinga'@'localhost' identified by 'icinga';
# apt-get install nagios-plugins-all -y

Damit haben wir die Plugin-Checks installiert aber es fehlt uns noch der Webserver :
Dem widmen wir uns nun :
# apt-get install apache2
gefolgt von der simplen installation von icinga2;
# apt-get install icinga2
selection_031
Wir starten nun erstmal den Icinga2 Service:
# /etc/init.d/icinga2 start
Nun brauchen wir natuerlich auch den Rest 🙂
# apt-get install icingaweb2 icingacli icinga2-ido-mysql
Nach dem die Installation durchgelaufen ist editieren wir erstmal die IDO Konfig Datei:
selection_034
# vi /etc/icinga2/features-enabled/ido-mysql.conf
und kommentieren alle wichtigen eintraege ein und ändern Sie ggf. ab.
Wir müssen auch noch die die php.ini editieren:
# vi /etc/php5/apache2/php.ini
Wir suchen darin nach date.timzezone und tragen hier eine Sinnvolle Zeitzone ein.

apt-get install php5-gd php5-imagick

gefolgt von :
# /etc/init.d/httpd restart
Auch ein enablen der Commandpipe ist notwendig:
# icinga2 feature enable command
Fuer das Webfrontend benoetigen wir einen setup token
# icingacli setup token create
Der Webserver läuft schon , wir oeffen im Edge die folgende adresse
und benutzen den angeforderten Token.
Wir fuellen das Setup Sinnvoll aus 🙂
Ausserdem muss ggf. die iptables firewall eingetragen werden:
# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
selection_054
Und erhalten zum Schluß ein laufendes Icinga2 welches im LSW installiert ist.
Ich hoffe ihr hattet bischen Spaß beim dem nachvollziehen oder nachbauen.
Ich freue mich über Feedback jeglicher Art.
Gruß
David

David Okon
David Okon
Senior Systems Engineer

Weltenbummler David hat aus Berlin fast den direkten Weg zu uns nach Nürnberg genommen. Bevor er hier anheuerte, gab es einen kleinen Schlenker nach Irland, England, Frankreich und in die Niederlande. Alles nur, damit er sein Know How als IHK Geprüfter DOSenöffner so sehr vertiefen konnte, dass er vom Apple Consultant den Sprung in unser Professional Services-Team wagen konnte. Er ist stolzer Papa eines Sohnemanns und bei uns mit der Mission unterwegs, unsere Kunden zu glücklichen Menschen zu machen.

Graphite installation unter Debian 8.4

Ich hab mich mit der Aktualiserung unserer Schulungsunterlagen diese Woche beschäftigt, dies erfolgt bei uns auf kontinuierlicher Basis.
Was mir dabei auffiel bei unseren Graphing Unterlagen war dass das Webfrontend von Graphite wenn man es unter einer aktuellen Version von Debian oder Ubuntu installiert den Zugriff auf die Weboberfläche verweigert. Ich warf ich einen genaueren Blick auf das Setup um zu sehen wo der Fehler lag.
Die Ursache war relativ schnell ausgemacht.
Unter Debian Jessie 8.4 und Ubuntu 15.10 in den aktuellen Versionen gibt es kleine Veränderungen in der Apache2-Konfiguration unter Apache 2.4.10 und der Installation von Graphite.
Der bisherige Installationsweg für eine Graphite Installation mit Webfrontend war bisher wie folgt:

# apt-get install apache2 libapache2-mod-wsgi python-django python-django-tagging fontconfig python-tz python-pip python-dev python-twisted python-cairo
# pip install carbon whisper graphite-web
# pip install --upgrade twisted
# cp /opt/graphite/conf/carbon.conf.example /opt/graphite/conf/carbon.conf
# cp /opt/graphite/conf/storage-schemas.conf.example /opt/graphite/conf/storage-schemas.conf
# /opt/graphite/bin/carbon-cache.py start
# /opt/graphite/bin/carbon-cache.py status
# cp /opt/graphite/examples/example-graphite-vhost.conf /etc/apache2/sites-available/graphite.conf
# cp /opt/graphite/conf/graphite.wsgi.example /opt/graphite/conf/graphite.wsgi
# cp /opt/graphite/webapp/graphite/local_settings.py.example \ /opt/graphite/webapp/graphite/local_settings.py
# python /opt/graphite/webapp/graphite/manage.py syncdb
# chown www-data. -R /opt/graphite/storage
# a2dissite 000-default
# a2ensite graphite
# a2enmod wsgi
# service apache2 restart
# chmod +x /etc/init.d/carbon-cache // Damit 'carbon-cache.py start' mit Systemstart erfolgt

Die *kleine* aber wichtige Änderung ist folgende pip install graphite-web fügt nicht folgendes hinzu:
Anscheinend vergisst die pip graphite-web den Eintrag in der graphite-vhost.conf welcher auf das webapp Verzeichnis den Zugriff erlaubt.

// < Directory "/opt/graphite/webapp/" >
// Options +ExecCGI
// Order deny,allow
// Allow from all
// Require all granted
// < /Directory >

Wenn man dies wie manuell ergänzt dann erhält am auch Zugriff auf die Weboberfläche.
Hier ein Kurzdurchlauf bei der Graphite installation auf einem frischen Debian Jessie 8.4.

# apt-get install python python-pip python-dev python-cairo python-django \
python-django-tagging apache2 libapache2-mod-wsgi python-twisted \
python-memcache python-pysqlite2 python-simplejson
# pip install whisper
# pip install carbon
# pip install graphite-web
# cp /opt/graphite/webapp/graphite/local_settings.py.example \ /opt/graphite/webapp/graphite/local_settings.py
# cp /opt/graphite/conf/graphite.wsgi.example /opt/graphite/conf/graphite.wsgi
# cp /opt/graphite/conf/carbon.conf.example /opt/graphite/conf/carbon.conf
# cp /opt/graphite/conf/storage-schemas.conf.example /opt/graphite/conf/storage-schemas.conf
# cp /opt/graphite/conf/storage-aggregation.conf.example \
/opt/graphite/conf/storage-aggregation.conf
# cd /opt/graphite/webapp/graphite && python manage.py syncdb
# chown -R www-data:www-data /opt/graphite/storage/
# vim /etc/apache2/sites-available/graphite.conf // hier erfolgt das manuelle Hinzufuegen von des Ordners in der Config
# a2dissite 000-default.conf
# a2ensite graphite.conf
# service apache2 restart
# vim /etc/systemd/system/carbon-cache.service // Erstellen eines Service-Files fuer den Start von carbon-cache.py start
# systemctl enable carbon-cache.service
# systemctl start carbon-cache.service
# systemctl reload apache2.service

Somit ist das Problem gelöst und die Graphite-Web Oberfläche aufrufbar.
Ich werde demnächst noch ein Video fuer Ubuntu 15.10 nachreichen da hier die Pfade abweichen von Debian und dies nicht 1:1 übertragbar ist.
Bis Demnächst!
Und übrigens: die nächste Graphing Schulung findet schon ganz bald statt, also noch fix anmelden!

David Okon
David Okon
Senior Systems Engineer

Weltenbummler David hat aus Berlin fast den direkten Weg zu uns nach Nürnberg genommen. Bevor er hier anheuerte, gab es einen kleinen Schlenker nach Irland, England, Frankreich und in die Niederlande. Alles nur, damit er sein Know How als IHK Geprüfter DOSenöffner so sehr vertiefen konnte, dass er vom Apple Consultant den Sprung in unser Professional Services-Team wagen konnte. Er ist stolzer Papa eines Sohnemanns und bei uns mit der Mission unterwegs, unsere Kunden zu glücklichen Menschen zu machen.

Wieso Backups wichtig sind

Wieso Backups wichtig sind … hdd
Ich spreche heute ein leidiges Thema an. Eines mit dem man sich nicht so oft auseinandersetzen möchte.
Nämlich Backups.
Datenverlust und nicht wiederherstellbare Backups passieren immer nur anderen. Den Mitbewerbern, Konkurrenten und Kollegen aber nie, nie, nie einem Selbst.
Diesem Trugschluss sitzen wir alle auf bis das Handy baden geht, den Fussboden küsst oder auch es auch einfach den nicht mehr einschaltbar Tod ereilt. Dieses Beispiel ist nun auf ein tragbares Gerät gemünzt aber es betrifft auch die weniger beweglichen Rechner (welche dem Dauerbetrieb) standhalten müssen so wie Server oder Desktop Rechner. Dann sind meistens Familienfotos, Musik oder auch die Puppet Server Config, Kundendaten, Online Shops, uvm … einfach Weg. Wie bekommt man nun mit einem neuen Gerät oder auch mit dem alten (reparierten) PC wieder den vorherigen Zustand her.
„Backupsoftware“ ist das Zauberwort !! Was wir ungern hören wollen und erst recht nicht installieren & verwenden wollen. Apple hat hier relativ viel getan ohne das es gewürdigt wird. In dem es TimeMachine unter die Leute gebracht hat. (Backups gab es auch schon weit vor Apple TimeMachine). Der Trick der Fruchtfirma war es unterschwellig zu implementieren in das OS. Richtig verwendet ist es eine schnelle unkomplizierte Backup Lösung. Wie sieht das nun im Linux Umfeld aus hat man hier auch eine unterschwellige implementierung ?
Unter Ubuntu gibt es das Programm ‚Backups‘ welches einen ähnlichen Ansatz verfolgt wie TimeMachine. Aber kommen wir von dem privaten Ansatz mal weg. Wie sieht das im Unternehmen aus? Nun wird Niemand TimeMachine als ServerBackup Lösung verwenden wollen. Es so schöne Dinge wie Raid-Controller die es nicht in einem standard iMac 27 Zoll gibt.
Bei der Datengrössen richtiger Server Racks reden wir auch eher von automated Tape Backups und großen Storageracks im Serverrack. Hier kommt Beispielsweise Software wie Bareos in Spiel. Welche genau diesen Auftrag im Unternehmenseinsatz erledigt.
Bareos
Ich möchte aber auf etwas anderes in diesem Blogpost hinaus.
Haben wir etwas Vergessen ? … Ja, die Ausfallzeit welche immer gern unterschlagen wird.
Ausserdem ist man dazu verpflichtet Backups zu erstellen im Unternehmen ?
Nehmen wir als Szenario mal das unser Privater Arbeitsplatz Laptop ausfällt und wir haben brav mit einer Backup software auf einen Backup server ein Backup erstellt haben und dazu noch auf einer separaten 2,5″ Festplatte ein aktuelles Backup + ein startbares Rettungssystem.
Fuer alle folgenden Szenarien gilt simples Ausfallszenario:
– Ausfall der internen Festplatte/SSD.
Szenario 1: Almost worst enough case
Wir besorgen uns eine Ersatzplatte und schrauben die in unseren Laptop und starten von der externen Festplatte und spielen das Backup zurück. Im besten Fall per USB2/3.
Dann sind mit dem besorgen der Festplatte im örtlichen Elektronik markt und dem zurückspielen der Daten ca. 3-4 Stunden Ausfallzeit realistisch.
Fangen wir an das Backup per Netzwerk zurück zuspielen dann dauert dies entsprechend der Netzwerkgeschwindigkeit und der dort verwendeten WiFi Komponenten.
Totale Ausfallzeit: Max 4 Std.
Szenario 2: Even worse case
Wir haben einen Firmenlaptop, hier können wir nicht sofort selbst die Festplatte tauschen das heißt wir geben der zuständigen Abteilung den Laptop und erhalten ihn mit reparierter HDD & ggf. eingespieltem Backup zurück. „Best Case“ hier wäre wir erhalten sofort ein Austauschgerät aber müssen das Backup selbst wieder einspielen.
Zeitausfall Entspricht mit ein ausgehändigtem Laptop an die IT Abteilung ggf. Einen kompletten Tag im „Best Case“ 3-4 Stunden durch das zurückspielen des Backups.
Totale Ausfallzeit: Max 4-28 Std.
Szenario 3: Worst Case
Die Firma hat einen outgesourcten Dienstleister oder wir müssen den Laptop zum Hersteller einschicken wegen der Garantiereparatur. Wir eröffnen ein Support ticket und anschließende einsenden der Hardware. Bis wir Sie wieder erhalten und dem einspielen des Backups rechnen wir mit ca. 1 Woche Ausfallzeit. Im schlimmsten Fall kann so ein hin- und her sogar länger dauern. circa 2 Wochen bis man wieder einen funktionsfähigen Arbeitsrechner hat.
Totale Ausfallzeit: Max 4-120 Max 240 Std.
Nun nehmen wir die kosten einer durchschnittlichen Arbeitsstunde in Deutschland das sind 31,70 Euro.
Szenario 1 kostet demnach 126,80 Euro.
Szenario 2 kostet demnach 887,60 Euro.
Szenario 3 kostet demnach 7608 Euro.
Wenn kein Backup vorhanden ist sind die Kosten noch viel höher weil kosten für eine professionelle Datenrettung anfallen.
Kommen noch zusaetzliche 583,10 Euro Datenrettung + zeitlicher Mehraufwand 2 ½ Stunden.
Szenario 1 : 820.85 Euro
Szenario 2 : 1581.65 Euro
Szenario 3 : 8302.05 Euro
Kommen noch Auftraggeber und dritte Parteien hinzu welche auch auf unsere Arbeit aufbauen und mit denen wir Vertragliche Bindungen haben wird es wegen sicherer Rechtlicher folgen noch teurer.
Sind Unternehmen rechtlich verpflichtet Backups durchzuführen ?
Laut deutschem Recht als Verplichtung der IT-Compliance gilt folgendes :
Auszug:
„…
Was konkret das Backup-Management anbelangt, verlangt die Rechtsprechung als allgemeine Schutz- und Sorgfaltspflicht, dass regelmäßig und zuverlässig geeignete, lückenlose Datensicherungsroutinen eingesetzt werden. Dies dürfen auch externe Fachleute – wie etwa mit Wartung und Support beauftragte IT-Firmen oder Rechenzentrumsbetreiber, die im Wege der Auftragsdatenverarbeitung mit den Daten und Systemen des Unternehmens arbeiten – ohne besondere Erkundigungspflicht als Selbstverständlichkeit voraussetzen. …“
Hierbei gilt die Beweisumkehr dies heißt, dass man als Person welche den Datenausfall hat ggf. beweisen/belegen muss, dass man ein regelmässiges Backup durchgeführt hat.
Allgemeine Sorgfaltspflicht.
Fazit:
Backups sind Wichtig !! Wirklich Wichtig.
Für Privatpersonen als auch als Unternehmens backup.
Nach dem Szenario welches ich oben Beispiehaft genommen habe fallen demnach immer kosten an selbst im Almost worst enough case Szenario.
In diesem Sinne , Backup please … 🙂
Und natürlich nicht die Anmeldug zur Open Source Backup Conference vergessen!

David Okon
David Okon
Senior Systems Engineer

Weltenbummler David hat aus Berlin fast den direkten Weg zu uns nach Nürnberg genommen. Bevor er hier anheuerte, gab es einen kleinen Schlenker nach Irland, England, Frankreich und in die Niederlande. Alles nur, damit er sein Know How als IHK Geprüfter DOSenöffner so sehr vertiefen konnte, dass er vom Apple Consultant den Sprung in unser Professional Services-Team wagen konnte. Er ist stolzer Papa eines Sohnemanns und bei uns mit der Mission unterwegs, unsere Kunden zu glücklichen Menschen zu machen.

Hätten Sie's gewußt ?

Hätten Sie’s gewußt?
Dell ist eine flexible Firma mit flexibler Hardware?
Sicher hätten die meisten Leute „Nein“ gesagt.
Wir hätten ähnlich geurteilt, aber wir mußten feststellen, dass der Dell Display Link Adapter (USB 3.0 to HDMI/VGA/Ethernet/USB 2.0) DA100 der flexibelste ist, welchen wir in letzter Zeit auf unseren Schreibtischen hatten.
picture
So unscheinbar wie er aussieht, so verrichtet er trotzdem treu seine Aufgabe.
Mit den Displaylink-Treibern für Ubuntu ist es ohne weiteres möglich, ihn an allen von uns getesteten Laptops & Notebooks (Dell, Macbook & Lenovo), auf denen Ubuntu ab Version 12 aufwärts läuft (auch Debian), ohne Probleme in Betrieb zu nehmen.
Wer mit einem Multimonitorsetup am Laptop arbeitet, wird dies zu schätzen wissen.
Wir schätzen vor allem die Austauschbarkeit.
Bei Meetings, wo wir schnell die Laptops am Beamer wechseln, ist dies ein Segen.
Vor allem, weil es nur USB einstecken und Display erkennen ist.
Der Ethernet-Port des Adapters wird zu fast 95% Out of the Box erkannt und funktioniert damit auch tadellos.
Von uns eine klare Empfehlung für den Displayadapter von Dell als nützliches Helferlein.
Treiberlink:
Displaylink Treiber Ubuntu

David Okon
David Okon
Senior Systems Engineer

Weltenbummler David hat aus Berlin fast den direkten Weg zu uns nach Nürnberg genommen. Bevor er hier anheuerte, gab es einen kleinen Schlenker nach Irland, England, Frankreich und in die Niederlande. Alles nur, damit er sein Know How als IHK Geprüfter DOSenöffner so sehr vertiefen konnte, dass er vom Apple Consultant den Sprung in unser Professional Services-Team wagen konnte. Er ist stolzer Papa eines Sohnemanns und bei uns mit der Mission unterwegs, unsere Kunden zu glücklichen Menschen zu machen.