Wykresy na Shinken przez Graphite
Wykres to wygodny sposób, aby zobaczyć ewolucję metryk serwera. Kiedy myślimy o grafie w świecie Linuksa, zwykle myślimy o Muninie. Bardzo potężne rozwiązanie, z którego korzystam w niektórych przypadkach. Ten ostatni ma jednak własnego agenta, który przesłuchuje maszynę docelową, aby następnie uzyskać dane zinterpretowane w postaci wykresu. Kiedy masz już serwer monitorujący, taki jak Shinken, to tak, jakbyś wykonał tę pracę dwa razy. Aby temu zaradzić, stworzymy serwer Graphite.
Program składa się z trzech części.
- Szept, silnik bazy danych
- Węgiel, serwer nasłuchujący, który zajmuje się wstawianiem danych do bazy danych
- grafit, interfejs sieciowy w Pythonie Django
Montaż grafitu
Instalowanie zależności
1
|
apt–get install python–cairo python–django–tagging python–twisted python–memcache fontconfig
|
1
2
|
pip install django
pip install zope.interface
|
Potrzebny jest również serwer WWW z biblioteką pozwalającą na załadowanie programu Django.
1
|
apt–get install apache2 libapache2–mod–wsgi
|
Instalacja grafitowa
1
2
3
4
|
pip install https://github.com/graphite–project/ceres/tarball/master
pip install whisper
pip install carbon
pip install graphite–web
|
Konfiguracja domyślnej konfiguracji
1
2
3
|
cd /opt/graphite/conf
cp carbon.conf.example carbon.conf
cp storage–schemas.conf.example storage–schemas.conf
|
Konfigurowanie serwera 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
|
Ostrzeżenie, jeśli korzystasz z nowszej dystrybucji z wersją Apache większą niż 2.4, musisz zmodyfikować vHost w następujący sposób
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>
|
Aktywujemy vHost
1
|
service apache2 reload
|
Tworzenie bazy danych
1
2
3
|
cd /opt/graphite/webapp/graphite
python manage.py syncdb
chown –R www–data:www–data /opt/graphite/storage/
|
Uruchamiamy serwer Carbon
1
2
|
cd /opt/graphite/
./bin/carbon–cache.py start
|
Wyślij dane testowe
1
|
echo « carbon.installation.test $RANDOM `date +%s` » | nc –w 1 localhost 2003
|
Na tym etapie mamy funkcjonalny Graphite, jeśli przejdziesz na adres swojego serwera w HTTP powinieneś zobaczyć swoje dane testowe pojawiające się w interfejsie WWW.
Skrzyżowanie w Shinken
Instalujemy moduł Graphite z repozytoriów Shinken
1
2
3
|
su shinken
shinken install ui–graphite
shinken install graphite
|
Dodajemy moduł graphite-ui do WebUI w /etc/shinken/modules/webui.cfg
1
|
modules auth–cfg–password,SQLitedb,ui–graphite
|
Dodajemy moduł grafitowy do brokera w /etc/shinken/brokers/broker-master.cfg
1
|
modules webui,graphite
|
Konfigurujemy moduł graphite w /etc/shinken/modules/graphite.cfg
1
2
3
4
5
6
|
define module {
module_name graphite
module_type graphite_perfdata
host localhost
port 2003
}
|
Konfigurujemy dostęp do grafitowego webui w /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/
}
|
Uważaj, aby nie umieścić ukośnika na końcu adresu URL, w przeciwnym razie linki nie będą działać.
I na koniec ponownie uruchamiamy Shinken, aby wziąć to wszystko pod uwagę.
1
|
/etc/init.d/shinken restart
|
Powinieneś teraz zobaczyć swoje wykresy w zakładce o tej samej nazwie w interfejsie internetowym Shinken
W interfejsie internetowym Graphite powinny również pojawić się hosty.
Karta „4 godziny” może nie działać. Dzieje się tak, ponieważ strefa czasowa nie jest taka sama w obu komponentach.
Aby dostosować strefę czasową shinken, przejdź do pliku /etc/shinken/shinken.cfg
1
|
use_timezone=Europe/Paris
|
A dla grafitu musisz aktywować plik konfiguracyjny, kopiując przykład
1
2
|
cd /opt/graphite/webapp/graphite
cp local_settings.py.example local_settings.py
|
I odkomentuj linię odpowiadającą wartości strefy czasowej!
1
|
TIME_ZONE = ‘Europe/Paris’
|