Grafy na Shinkene cez Graphite
Graf je pohodlný spôsob, ako vidieť vývoj metrík servera. Keď myslíme na graf v linuxovom svete, zvyčajne si predstavíme Munina. Veľmi výkonné riešenie, ktoré v niektorých prípadoch používam. Ten však má svojho vlastného agenta, ktorý bude skúmať cieľový stroj, aby následne získal údaje interpretované vo forme grafu. Keď už máte monitorovací server ako Shinken, je to ako robiť prácu dvakrát. Aby sme to prekonali, vytvoríme grafitový server.
Program sa skladá z troch častí.
- šepot, databázový stroj
- Uhlík, počúvajúci server, ktorý sa stará o vkladanie údajov do databázy
- grafit, webové rozhranie v pythone Django
Inštalácia grafitu
Inštalácia závislostí
1
|
apt–get install python–cairo python–django–tagging python–twisted python–memcache fontconfig
|
1
2
|
pip install django
pip install zope.interface
|
Potrebujete tiež webový server s knižnicou, ktorá vám umožní načítať program Django.
1
|
apt–get install apache2 libapache2–mod–wsgi
|
Inštalácia grafitu
1
2
3
4
|
pip install https://github.com/graphite–project/ceres/tarball/master
pip install whisper
pip install carbon
pip install graphite–web
|
Nastavenie predvolenej konfigurácie
1
2
3
|
cd /opt/graphite/conf
cp carbon.conf.example carbon.conf
cp storage–schemas.conf.example storage–schemas.conf
|
Nastavenie apache vHost
1
2
3
4
5
6
7
8
9
10
11
|
cd /opt/graphite
cp –a examples/example–graphite–vhost.conf /etc/apache2/sites–available/graphite
cp /opt/graphite/conf/graphite.wsgi.example /opt/graphite/conf/graphite.wsgi
sed –i s%« @DJANGO_ROOT@/contrib/admin/media/ »%« /usr/share/pyshared/django/contrib/admin/media/ »% /etc/apache2/sites–available/graphite
sed –i ‘s%WSGISocketPrefix run/wsgi/%WSGISocketPrefix /var/run/apache2/wsgi%’ /etc/apache2/sites–available/graphite
a2ensite graphite
|
Upozornenie, ak používate novšiu distribúciu s verziou Apache vyššou ako 2.4, musíte upraviť vHost nasledovne
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<Directory /opt/graphite/conf/>
#Order deny,allow
#Allow from all
Options All
AllowOverride All
Require all granted
</Directory>
<Directory /opt/graphite/webapp>
Options All
AllowOverride All
Require all granted
</Directory>
|
Aktivujeme vHost
1
|
service apache2 reload
|
Vytvorenie databázy
1
2
3
|
cd /opt/graphite/webapp/graphite
python manage.py syncdb
chown –R www–data:www–data /opt/graphite/storage/
|
Spúšťame Carbon server
1
2
|
cd /opt/graphite/
./bin/carbon–cache.py start
|
Odoslať testovacie údaje
1
|
echo « carbon.installation.test $RANDOM `date +%s` » | nc –w 1 localhost 2003
|
V tejto fáze máme funkčný Graphite, ak prejdete na adresu vášho servera v HTTP, mali by ste vidieť, že sa na webovom rozhraní objavia vaše testovacie dáta.
Križovatka v Shinkene
Modul Graphite inštalujeme z repozitárov Shinken
1
2
3
|
su shinken
shinken install ui–graphite
shinken install graphite
|
Pridávame modul graphite-ui do WebUI pod /etc/shinken/modules/webui.cfg
1
|
modules auth–cfg–password,SQLitedb,ui–graphite
|
Grafitový modul pridávame do brokera pod /etc/shinken/brokers/broker-master.cfg
1
|
modules webui,graphite
|
Grafitový modul konfigurujeme v /etc/shinken/modules/graphite.cfg
1
2
3
4
5
6
|
define module {
module_name graphite
module_type graphite_perfdata
host localhost
port 2003
}
|
Nakonfigurujeme prístup ku grafitovému webu pod /etc/shinken/modules/ui-graphite.cfg
1
2
3
4
5
6
|
define module {
module_name ui–graphite
module_type graphite–webui
uri http://172.16.10.6 ; ip de votre serveur graphite
templates_path /var/lib/shinken/share/templates/graphite/
}
|
Dávajte pozor, aby ste na koniec adresy URL nedali lomku, inak odkazy nebudú fungovať.
A nakoniec znova spustíme Shinken, aby sme to všetko zohľadnili.
1
|
/etc/init.d/shinken restart
|
Teraz by ste mali vidieť svoje grafy na karte s rovnakým názvom vo webovom rozhraní Shinken
Na webovom rozhraní Graphite by sa mali objaviť aj vaši hostitelia.
Karta „4 hodiny“ nemusí fungovať. Je to preto, že časové pásmo nie je v týchto dvoch komponentoch rovnaké.
Ak chcete upraviť časové pásmo shinken, prejdite do súboru /etc/shinken/shinken.cfg
1
|
use_timezone=Europe/Paris
|
A pre grafit musíte aktivovať konfiguračný súbor skopírovaním príkladu
1
2
|
cd /opt/graphite/webapp/graphite
cp local_settings.py.example local_settings.py
|
A odkomentujte riadok zodpovedajúci hodnote časového pásma
1
|
TIME_ZONE = ‘Europe/Paris’
|