Installeer Grafana, Graphite, en Statsd op Ubuntu 18.04

Estimated reading time: 4 min

Introductie

Monitoring is een belangrijk onderdeel van kwaliteitssystemen. Met behulp van monitoring kun je in de gaten houden of jouw serverinfrastructuur en -applicaties gezond zijn maar ook functioneren zoals het hoort. In deze tutorial helpen wij jou met het opzetten van een eigen monitoring infrastuctuur, hiervoor maken we gebruik van Grafana, Graphite en Statsd.

Grafana is een open-source hulpmiddel dat gebruikers helpt om time-series data te visualiseren en om alerts in te stellen. Grafana ondersteunt meer dan 50 databronnen en Graphite is daar één van. Graphite wordt gebruikt om de tijdreeksgegevens op te slaan en ondersteunt verschillende soorten datafeeds. Statsd-server is één van die datafeeds die luistert naar de inkomende gegevens van de clients via UDP-verbinding.

Vereisten

  • Cloud VPS of Dedicated Server met minimaal 1 GB RAM en Ubuntu 18.04.
  • Je moet ingelogd zijn via SSH als sudo of root gebruiker. In deze tutorial gaan we ervan uit dat je bent aangemeld als sudo-gebruiker.

Stap 1: Systeem updaten

Begin eerst met het updaten van jouw systeem. Installeer de laatste pakketten en beveiligingspatches door de onderstaande commando’s uit te voeren.

sudo apt update
sudo apt upgrade -y

Stap 2: Installeer Grafana

Grafana kan zowel met Linux binaries als officiële repository worden geïnstalleerd. In deze tutorial gebruiken we de officiële Grafana-repository om de software te installeren, zodat we ze in de toekomst gemakkelijk kunnen upgraden.

Voeg de Grafana GPG-sleutel toe aan het systeem om ervoor te zorgen dat ongewijzigde pakketten worden geïnstalleerd.

curl https://packages.grafana.com/gpg.key | sudo apt-key add -

Voeg de Grafana repository toe in het systeem.

sudo apt install -y software-properties-common
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"

Update de repository cache en installeer de software door de onderstaande commando’s uit te voeren:

sudo apt update
sudo apt install -y grafana

Stap 3: Start Grafana

Grafana voorziet van systemd service bestanden, daarom kun je Grafana eenvoudig starten door het onderstaande commando uit te voeren:

sudo systemctl start grafana-server

Om ervoor te zorgen dat Grafana automatisch wordt ingeschakeld tijdens het bootproces en mislukte applicaties, voer je het onderstaande commando uit:

sudo systemctl enable grafana-server

Grafana is nu geïnstalleerd. Navigeer naar http://192.168.0.101:3000/  op jouw browser en log vervolgens in met de gebruikersnaam admin en wachtwoordadmin Zorg ervoor dat je  192.168.0.101 vervangt met het echte IP-adres van jouw VPS of dedicated server.

Stap 4: Installeer Graphite

Graphite bestaat uit drie verschillende applicaties: Carbon, Whisper and Graphite Web. Installeer build dependencies die nodig zijn voor het compileren van een aantal Graphite componenten. Voer het onderstaande commando uit:

sudo apt -y install python-dev python-pip libcairo2-dev libffi-dev build-essential

Installeer Graphite samen met alle componenten, voer het onderstaande commando uit:

export PYTHONPATH="/opt/graphite/lib/:/opt/graphite/webapp/"
sudo -H pip install --no-binary=:all: https://github.com/graphite-project/whisper/tarball/master
sudo -H pip install --no-binary=:all: https://github.com/graphite-project/carbon/tarball/master
sudo -H pip install --no-binary=:all: https://github.com/graphite-project/graphite-web/tarball/master

Creëer een schema voor Graphite door het onderstaande commando uit te voeren:

sudo -H PYTHONPATH=/opt/graphite/webapp django-admin.py migrate --settings=graphite.settings --run-syncdb

Creëer een superuser voor Graphite door het commando hieronder uit te voeren. Geef hiervoor een gebruikersnaam, wachtwoord en e-mailadres op.

sudo -H PYTHONPATH=/opt/graphite/webapp django-admin.py createsuperuser --settings=graphite.settings

Genereer een statische bestand voor Graphite web app door het onderstaande commando uit te voeren:

sudo -H PYTHONPATH=/opt/graphite/webapp django-admin.py collectstatic --noinput --settings=graphite.settings

Kopieer tenslotte de carbon configuratiebestanden door het onderstaande uit te voeren:

sudo cp /opt/graphite/conf/carbon.conf.example /opt/graphite/conf/carbon.conf
sudo cp /opt/graphite/conf/storage-schemas.conf.example /opt/graphite/conf/storage-schemas.conf

Stap 5: Configureer Apache with mod_wsgi

Installeer Apache with mod_wsgi.

sudo apt install -y apache2 libapache2-mod-wsgi

Schakel mod_wsgi module in op Apache.

sudo a2enmod wsgi

Maak een wsgi bestand aan /opt/graphite/conf/graphite.wsgi gebruik de editor die je zelf prettig vindt.

sudo nano /opt/graphite/conf/graphite.wsgi

Vul het bestand met de volgende configuratie:

import sys

sys.path.append('/opt/graphite/webapp')
from graphite.wsgi import application

Geeft dit bestand toestemming om wijzigingen te kunnen uitvoeren en verander de Graphite directory ownership naar Apache gebruiker door dit commando uit te voeren:

sudo chmod +x /opt/graphite/conf/graphite.wsgi
sudo chown -R www-data:www-data /opt/graphite

Maak een nieuwe Apache virtual host bestand door het onderstaande commando uit te voeren:

sudo nano /etc/apache2/sites-available/graphite-vhost.conf

Vul het bestand met de volgende configuratie:

LoadModule wsgi_module modules/mod_wsgi.so

WSGISocketPrefix /var/run/wsgi

<VirtualHost *:80>

    ServerName graphite
    DocumentRoot "/opt/graphite/webapp"
    ErrorLog /opt/graphite/storage/log/webapp/error.log
    CustomLog /opt/graphite/storage/log/webapp/access.log common

    WSGIDaemonProcess graphite-web processes=5 threads=5 display-name='%{GROUP}' inactivity-timeout=120
    WSGIProcessGroup graphite-web
    WSGIApplicationGroup %{GLOBAL}
    WSGIImportScript /opt/graphite/conf/graphite.wsgi process-group=graphite-web application-group=%{GLOBAL}

    WSGIScriptAlias / /opt/graphite/conf/graphite.wsgi

    Alias /static/ /opt/graphite/static/

    <Directory /opt/graphite/static/>
            <IfVersion < 2.4>
                    Order deny,allow
                    Allow from all
            </IfVersion>
            <IfVersion >= 2.4>
                    Require all granted
            </IfVersion>
    </Directory>

    <Directory /opt/graphite/conf/>
            <IfVersion < 2.4>
                    Order deny,allow
                    Allow from all
            </IfVersion>
            <IfVersion >= 2.4>
                    Require all granted
            </IfVersion>
    </Directory>
</VirtualHost>

Schakel de standaard virtual host uit en schakel de virtual host die we zojuist hebben aangemaakt in, door het onderstaande uit te voeren:

sudo a2dissite 000-default
sudo a2ensite graphite-vhost

Om de wijziging van kracht te laten komen, zul je Apache webserver moeten herstarten.

sudo systemctl restart apache2

Je hebt nu toegang tot de Graphite webapp via http://192.168.0.101/ Zorg ervoor dat je 192.168.0.101 vervangt met het daadwerkelijke IP-adres van jouw VPS of dedicated server. Je kunt inloggen met de inloggegevens die we in stap 4 van deze tutorial hebben aangemaakt. We moeten nog steeds de Carbon server, starten dit gaan we in stap 7 van deze tutorial uitvoeren.

Stap 6: Installeer Statsd

Statsd vereist dat Node.js werkt. Configureer Node.js 10.x repository door het onderstaande commando uit te voeren:

curl -L -s https://deb.nodesource.com/setup_10.x | sudo bash

Installeer Node.js en Git.

sudo apt install -y nodejs git

Maak een clone van Statsd git repository.

sudo git clone https://github.com/etsy/statsd.git /opt/statsd

Maak een nieuwe Statsd configuratiebestand aan door het onderstaande uit te voeren:

sudo nano /opt/statsd/localConfig.js

Plak daarin de onderstaande configuratie.

{
    graphitePort: 2003,
    graphiteHost: "127.0.0.1",
    port: 8125,
    backends: [ "./backends/graphite" ]
}

Stap 7: Supervisor Installeren

Voor het uitvoeren van Statsd en Carbon server moeten we Supervisor instellen die deze servers voor ons zal blijven draaien.

Installeer Supervisor.

sudo apt install -y supervisor

Maak een nieuwe supervisor configuratiebestand aan voor Statsd server.

sudo nano /etc/supervisor/conf.d/statsd.conf

Plak de onderstaande configuratie in de editor.

[program:statsd]
directory = /opt/statsd/
command = /usr/bin/node stats.js localConfig.js
autostart=true
autorestart=true

Maak een andere supervisor configuratie aan voor Carbon server.

sudo nano /etc/supervisor/conf.d/carbon.conf

Plak de onderstaande configuratie in de editor.

[program:carbon]
directory=/opt/graphite
command=/usr/bin/python bin/carbon-cache.py --debug start
user=www-data
autostart=true
autorestart=true

Herstart de supervisor en zorg ervoor dat het automatisch wordt ingeschakeld tijdens het bootproces door het onderstaande uit te voeren:

sudo systemctl restart supervisor
sudo systemctl enable supervisor

Conclusie

Gefeliciteerd! Jouw monitoring server is nu helemaal klaar voor gebruik. Statsd luistert naar poort 8125/udp. Je kunt gebruikmaken van elke statsd client om data naar de server te sturen. De data wordt opgeslagen in de Whisper database van Graphite. Voeg Graphite toe als databron in Grafana en begin met het creëren van mooie grafieken. Je kunt ook waarschuwingen toevoegen aan de grafieken, zodat je onmiddellijk op de hoogte wordt gebracht zodra een dienst of server ongewoon gedrag vertoont.

Was this article helpful?
Dislike 0
Views: 31

Lees Interacties

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *