Seite wählen

Revisited – Graphite-Web installation unter Debian 9

von | Sep 15, 2017 | NETWAYS, Linux, MySQL, Graphite & Grafana, MariaDB, Python

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.

18 Kommentare

  1. Tom

    Da fehlt ein .
    chown _graphite. /var/lib/graphite/graphite.db

    Antworten
  2. David

    Danke! Mir ist wirklich der graphite.db entfleucht.

    Antworten
    • David

      Thanks for noticing that they added, graphite-web to stretch-backports. It wasn’t available in September last year.
      Therefore it is „now“ easier.

      Antworten
  3. Christian S.

    Hallo David,
    danke für die tolle Arbeit. Auf (m)einem Debian 9.4-System musste ich noch das Paket libffi-dev installieren, damit die pip-Befehle auch fehlerfrei durchlaufen.
    Beste Grüße,
    Christian.

    Antworten
    • David

      Danke!
      Ich werde es ggf. Berücksichtigen wenn ich es nochmal erneuere 🙂
      Vorausgesetzt pip macht Probleme.
      Also wahrscheinlich bei dem 9.5 Release.

      Antworten
  4. vinc

    und das funktioniert dann mit icinga2web?

    Antworten
    • David

      Wieso ? Gibt es denn damit ein Problem ?

      Antworten
      • vinc

        on the part to install it.
        : Paket python-django-tagging kann nicht gefunden werden.

        Antworten
        • Oliver

          Hier half mir ein downgrade:
          python -m pip install ‚django-tagging<0.4'

          Antworten
      • dummy user

        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

        Antworten
      • vinc

        auch nach diversen Neuinstallationen gibt es immer noch kein Erfolg. Jetzt habe ich ein Composite Tooling Corporation 404 error.

        Antworten
  5. Basti

    Nach Eingabe von

    graphite-manage syncdb

    bekomme ich ein „ImportError: cannot import name smart_text“

    🙁

    Antworten
    • Basti

      Obwohl Django 1.4 ja mit Python 2.7 kompatibel sein sollte laut Website.

      Antworten
      • David

        Hallo Basti, danke für den Hinweis.
        Wie ich schon etwas weiter oben geschrieben hab werd ich in naher Zukunft einen neuen Runderneuerten Blog Eintrag zu dem Thema verfassen.

        Ist nicht leider ganz so einfach weil das neben unserer eigenen Tätigkeit passiert also bitte ich um etwas Geduld.

        Mit freundlichem Gruß

        David

        Antworten
    • Oliver

      Das hatte ich auch, habe es mit upgrade auf django 1.5 beseitigen können:
      python -m pip install django==1.5

      Antworten
  6. Philipp

    Danke für die Tips!
    Nach einen Dist-Upgrade von Jessie auf Stretch hat es mir natürlich die Konfiguration zerstört, weil die Pakete nicht mehr da waren.
    Dank deinen Hinweisen funktioniert jetzt alles wieder! 🙂

    Antworten
  7. 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

    Antworten

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Mehr Beiträge zum Thema NETWAYS | Linux | MySQL | Graphite & Grafana | MariaDB | Python

Monthly Snap Februar 2024

Der Februar war ein ereignisreicher Monat bei NETWAYS! Neben dem normalen Alltag gab es auch unser Jahresmeeting, ein Spieleabend im Büro, und viele Kollegen waren auf Konferenzen und der Jobmesse in Nürnberg unterwegs. Und natürlich wurden viele Blogposts zu...