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.

Munin - wykres

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:

apt-get install munin

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:

[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

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:

Munin - grupy

Następnie edytujemy plik /etc/munin/munin-node.conf i dodajemy adresy IP serwerów z jakich będziemy zbierać dane:

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$

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ć:

2011/04/11-16:22:17 CONNECT TCP Peer: "192.168.0.146:44650" Local: "192.168.0.2:4949"

Ostatnią rzeczą jaką musimy zrobić jest cykliczne uruchamianie procesu munin-cron, który generuje wykresy. Najlepiej dodać go do CRONa dla użytkownika munin:

*/5 * * * * /usr/bin/munin-cron

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.

Munin - Google

Przykładowo aby monitorować ping do google.pl wydajemy polecenie:

ln -s /usr/share/munin/plugins/ping_ /etc/munin/plugins/ping_google.pl

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.

  • Greg

    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?

    • Gość

      to fork Nagios-a.

  • janek

    Jeden z serwisow spolecznosciowych w polsce korzysta z munina do monitoringu serwerow.

  • Greg

    Jaki?

  • Pingback: Munin – zbieranie informacji o serwerze | Posix, GNU, Linux, BSD, Unix, Open Source…()

  • Gość

    Pod Ubuntu 10.04

    # munin-node restart

    Pid_file already exists for running process (2307)… aborting