Informacje takie bardzo przydają się do analizy działania całego systemu z perspektywy czasu. Dzięki temu możemy przewidzieć zapotrzebowanie na zasoby sprzętowe, oszacować przyrost danych w ostatnim czasie.
Wraz z upływem czasu, dzięki zebranym informacjom, będziemy w stanie oszacować ile jeszcze w stanie jesteśmy wycisnąć z naszego serwera oraz obejrzeć jak rozkładało się obciążenie w minionym czasie.
Jedną z aplikacji, która ułatwi nam to zadanie jest Munin. Munin jest to narzędzie, które pozwala na monitorowanie wielu usług systemowych. Zawiera ponad 500 pluginów, które potrafią zbierać dane z różnych parametrów. Ogromną zaletą tej aplikacji jest generowanie wykresów oraz dostęp do nich przez interfejs webowy.
Munin wykorzystuje RRDtool jako silnik do przechowywania danych. Cała aplikacja została napisana w języku Perl, natomiast pluginy mogą być tworzone w dowolnym języku. Cała architektura opiera się o serwer master, który odpowiada za zbieranie danych i generowanie wykresów oraz serwery node, które wysyłają dane z monitorowanych maszyn do serwera głównego.
- munin-node – daemon, który wystawia dane dla podpiętych do monitorowania usług.
- munin-cron – proces, który zbiera dane co 5 minut.
- munin – główna aplikacja, która zbiera dane i generuje wykresy.
Konfiguracja
Całą aplikację możemy zainstalować korzystając ze źródeł lub wykorzystać do tego gotowe paczki przygotowane dla dystrybucji. W przypadku Ubuntu wystarczy wydać polecenie:
[bash]apt-get install munin[/bash]
Przygotowane paczki z aplikacją skonfigurują do działania całą aplikację, przygotują nawet serwer Apache do wyświetlania statystyk zebranych przez Munina. Dla systemów typu Red Hat, CentOS czy Fedora gotowe paczki znajdziemy w repozytoriach RPMForge i EPEL.
Konfigurację serwera zaczynamy od edycji pliku /etc/munin/munin.conf
. Definiujemy tam listę hostów z jakich będą generowane wykresy. Serwery możemy segregować w grupach dla łatwiejszego przeglądania. Przykład konfiguracji:
[bash][osworld]
address 127.0.0.1
use_node_name yes
[muszelka]
address 192.168.0.2
use_node_name yes
[LAN;gargamel]
address 10.0.0.1
use_node_name yes
[LAN;maruda]
address 10.0.0.2
use_node_name yes
[LAN;ciamajda]
address 10.0.0.3
use_node_name yes[/bash]
Tak przygotowany plik konfiguracyjny zawierać będzie 5 serwerów, z czego 3 zostały przypisane do grupy LAN. Wygenerowane menu przez Munina będzie prezentowało się następująco:
Następnie edytujemy plik /etc/munin/munin-node.conf
i dodajemy adresy IP serwerów z jakich będziemy zbierać dane:
[bash]allow ^127\.0\.0\.1$
allow ^192\.168\.0\.2\.1$
allow ^10\.0\.0\.1\.1$
allow ^10\.0\.0\.2\.1$
allow ^10\.0\.0\.3\.1$[/bash]
Restartujemy usługę za pomocą polecenia service munin-node restart
. Aby dane zaczęły zbierać się z innych maszyn, należy na nich zainstalować munin-node dla każdego serwera z osobna. Jeżeli wszystko dobrze skonfigurowaliśmy, mamy otwarty ruch na firewallach to w logach powinniśmy zobaczyć:
[bash]2011/04/11-16:22:17 CONNECT TCP Peer: "192.168.0.146:44650" Local: "192.168.0.2:4949"[/bash]
Ostatnią rzeczą jaką musimy zrobić jest cykliczne uruchamianie procesu munin-cron, który generuje wykresy. Najlepiej dodać go do CRONa dla użytkownika munin:
[bash]*/5 * * * * /usr/bin/munin-cron[/bash]
Aplikacja wygeneruje nam pliki HTML oraz obrazki ze statystykami serwera. Ścieżkę w jakiej się one pojawią definiuje zmienna htmldir w pliku /etc/munin/munin.conf
. Tak wygenerowane dane możemy wyświetlić za pomocą serwera Apache.
Pluginy
Munin zawiera ogromną ilość pluginów, którą możemy wykorzystać do zbierania statystyk. Wszystkie dostępne pluginy znajdują się w katalogu /usr/share/munin/plugins/
. Jeżeli chcemy wzbogacić nasze wykresy o dodatkowe funkcje monitorujące należy dowiązać odpowiedni plugin do katalogu /etc/munin/plugins
i zrestartować munin-node.
Przykładowo aby monitorować ping do google.pl wydajemy polecenie:
[bash]ln -s /usr/share/munin/plugins/ping_ /etc/munin/plugins/ping_google.pl[/bash]
Każdy plugin zakończony znakiem _ na końcu wymaga dodatkowego parametru, który podajemy tak jak w przykładzie powyżej.
Munina można bardzo szybko zainstalować na każdym serwerze i niemal od zaraz zacząć zbierać statystyki z systemu operacyjnego.
Korzystałem kiedyś na swoim lokalnym komputerze z tego Munina. Bardzo prosty i fajny serwer do zbierania danych. Bardzo prosto generuje wykresy.
Jak ktoś ma Ubuntu to apt-get wszystko zrobi za niego. Instalujesz i cieszysz się wykresami.
Zastanawia mnie tylko jeden fakt. Z jakiego silnika Munin korzysta do generowania wykresów?
to fork Nagios-a.
Jeden z serwisow spolecznosciowych w polsce korzysta z munina do monitoringu serwerow.
Jaki?
[…] źródło: https://osworld.pl/2011/05/23/munin-zbieranie-informacji-o-serwerze […]
Pod Ubuntu 10.04
# munin-node restart
Pid_file already exists for running process (2307)… aborting