Munin jest narzędziem do monitorowania zasobów sieciowych, które pomaga analizować zasoby. Dostępnych jest wiele pluginów.
Monitorowanie składa się z :
munin – jest to serwer, który pobiera dane z node’ów.
munin-node – jest to daemon instalowany na hostach, który przekazuje dane do serwera.
Architektura munin :
Źródło : http://munin.readthedocs.org/en/latest/tutorial/getting-started.html
Instalacja serwera Munin:
Przykład oparty na systemie Debian.
Aby zainstalować Munin wykonujemy w konsoli:
apt-get install munin
Należy zainstalować również serwer WWW np. apache :
apt-get install apache2
Konfiguracja:
Po instalacji Munina należy przeprowadzić konfigurację usługi.
Przechodzimy do pliku :
/etc/munin/munin.conf
Na początku wyjaśnię parametry zawarte w pliku.
Opis poszczególnych parametrów :
dbdir <path>
Katalog, w którym munin przechowuje pliki bazy danych. Domyślnie: /var/lib/munin
logdir <path>
Katalog, w którym munin przechowuje swoje logi. Domyślnie: /var/log/munin
htmldir <path>
Katalog w którym munin-html przechowuje wygenerowane strony HTML i gdzie munin-graph przechowuje grafy.
Domyślnie /var/cache/munin/www.
rundir <path>
Katalog dla plików sledzących aktualny stan uruchomienia Munina. Domyślnie /var/run/munin.
tmpldir <path>
Katalog dla szablonów używanych przez munin-html i munin-cgi-html do wygenerowania stron HTML. Domyślnie /etc/munin/templates.
fork <yes|no>
Dyrektywa określająca czy munin-update zbierze informacje z klientów (z węzłów nodes). Domyślnie jest ustawione YES. Jeśli zostanie ustawione NO to munin-update będzie zbierał dane z węzłów pojedyńczo. Zajmie to więcej czasu, ale proces zużyje mniej zasobów.
palette <default|old>
Palety używane przez munin-graph i munin-cgi-graph do kolorowania wykresów.
custom_palette rrggbb rrggbb ...
Paleta kolorów niestandardowych używanych przez munin-graph i munin-cgi-graph do kolorowania grafów.
graph_data_size <normal|huge>
Dyrektywa określa rozdzielczość plików RRD, które są tworzone przez munin-graph i munin-cgi-graph.
Domyślnie jest ustawione „normal”
„huge” zapisuje kompletne dane z 5 minutową rozdzielczością dla 400 dni.
Zmiana dyrektywy nie wpływa na istniejące wykresy.
graph_strategy <cgi|cron>
Jeśli ustawisz „cron” to munin-graph będzie wykreślać wszystkie usługi na wszystkich węzłach.
Jeśli ustawisz „cgi” munin-graph nic nie zrobi. Aby wygenerować grafy, musisz skonfigurować serwer www do uruchomienia munin-cgi-graph.
html_strategy <strategy>
Prawidłowe strategie „cgi” i „cron”. Domyślnie jest „CGI”.
Jeśli jest ustawiony na „cron”, munin-html odtworzy wszystkie strony HTML w odstępie.
Jeśli jest ustawiony na „cgi”, munin-html nic nie zrobi. Do wygenerowania strony html należy skonfigurować serwer WWW, aby uruchomić munin-cgi-graph.
Dyrektywy NODE :
Są to wytyczne, które mogą śledzić definicję węzła i będą miały zastosowanie tylko do tego węzła.
address <value>
Nazwa hosta, adres IP, transport alternatywny wykorzystywany do kontaktu z węzłem.
Transport alternatywny jest określony w:
<strong>ssh://<address>/<command> <command line arguments></strong>
port <port number>
Numer portu węzła. Domyślnie jest to „4949”.
local_address <address>
Lokalny adres do połączenia z węzłem.
use_node_name <yes|no>
Zastępuje nazwę dostarczaną przez węzeł. Dozwolone wartości: „tak” i „nie”. Domyślnie jest to „nie”.
contacts <no|contact ...>
Lista kontaktów wykorzystywanych przez munin-limits do raportowania ostrzeżeń i progów krytycznych.
Domyślnie jest to „nie”.
ignore_unknown <yes|no>
Jeśli ustawiono na Tak to zostaną ignorowane nieznane wartości wykazane przez węzeł.Dozwolone wartości to „tak” i „nie”. Domyślnie jest to „nie”.
update <yes|no>
Pobrać dane z tego węzła ? Dozwolone wartości to „tak” i „nie”. Domyślnie jest to „tak”.
Wyłączamy z komentarza następujące linijki :
dbdir /var/lib/munin
htmldir /var/www/munin
logdir /var/log/munin
rundir /var/run/munin
W tym samym pliku należy zdefiniować listę hostów, które będą monitorowane :
[localhost.localdomain]
address 127.0.0.1
use_node_name yes
itd. definiujemy kolejne hosty.
[VOIP;asterisk]
address 192.168.4.111
use_node_name yes
[WWW;wordpress]
address 192.168.4.115
use_node_name yes
VOIP i WWW są to grupy.
Należy jeszcze przejść do /etc/munin/apache.conf
i zmienić ścieżkę na taką jaką podano w munin.conf : np. htmldir /var/www/munin
<Directory /var/www/munin>
Order allow,deny
Allow from localhost 127.0.0.0/8 ::1
Options None
Następnie pamiętaj o restarcie apache.
W katalogu /var/www/munin będą tworzone wykresy.
Należy ten katalog najpierw utworzyć :
mkdir /var/www/munin
Należy następnie nadać uprawnienia :
chown munin:munin /var/www/munin
Po każdej konfiguracji należy przeprowadzić restart usługi :
/etc/init.d/munin-node restart
Aby móc monitorować inne serwery a nie tylko lokalny serwer na którym został zainstalowany munin, należy nie tylko dodać definicję hosta do pliku munin.conf ale również należy doinstalować na pozostałych serwerach, które chcemy monitorować pakiet munin-node.
Opis parametrów pliku munin-node.conf :
host_name
Nazwa hosta używana przez munin-node do prezentacji dla serwera Munin.
ignore_file
Pliki ignorowane, kiedy ustalane są zainstalowane pluginy.
log_level
Określenie co ma być logowane.
Możliwość ustalenia od 0 do 4.
0 – oznacza brak logowania.
Domyślnie jest to 2.
log_file
Ustalenie gdzie munin-node przetrzymuje logi.
port
Port TCP na którym nasłuchuje węzeł node.
pid_file
Plik PID procesu
host
Adres IP na którym munin-node nasłuchuje.
Domyślnie są to wszystkie interfejsy.
Czyli : *
user
Użytkownik uruchamiający munin-node.
Domyślnie : root
group
Grupa uruchamiająca munin-node.
Domyślnie : root
allow
Definiowanie hostów, które mogą się łączyć z munin-node.
Użyj opcję cidr_allow jeśli dostępna.
Dozwolone hosty podane w notacji CIDR (192.0.2.1/32).
cidr_deny
Odmowa dostępu hosta.
Należy przejść do edycji pliku :
/etc/munin/munin-node.conf
i dodać linijkę allow z adresem IP serwera munin :
np.
allow ^192\.168\.4\.110$
Aby wykresy aktualizowały się o ustalonym czasie należy dodać następującą linijkę do crona (na serwerze munin) :
np. wykresy mają się aktualizować co 2 minuty :
*/2 * * * * /usr/bin/munin-cron –force-root
Po kilku minutach panel z wykresami powinien być dostępny pod adresem :
http://adres_ip_serwera_munin/munin/
Aktualnie działające pluginy dowiązane do katalogu /etc/munin/plugins
Jeżeli chcemy dodać jakiś nowy plugin wystarczy zapoznać się z zawartością katalogu : /usr/share/munin/plugins
W celu uruchomienia nowego pluginu należy zrobić dowiązanie do katalogu : /etc/munin/plugins
np. dla pluginu asterisk_sippeers
ln -s /usr/share/munin/plugins/asterisk_sippeers /etc/munin/plugins/asterisk_sippeers
Następnie restartujemy munina :
/etc/init.d/munin-node restart
W zależności od danego pluginu należy w zawartości pliku skonfigurować parametry.
Inne przydatne polecenia przy konfiguracji wtyczek :
Jak wyświetlić listę wtyczek, które są aktywne na danym komputerze ? Wpisujemy w konsoli :
munin-node-configure
Po wykonaniu polecenia, wyświetlą się zainstalowane wtyczki z informacją czy jest aktywna czy nie.
Aby wyświetlić listę wtyczek aktywnych wykonujemy :
munin-node-configure | grep "yes"
Aky uaktywnić wtyczkę należy zapoznać się najpierw z wymaganiami danej wtyczki. Wykonujemy w konsoli :
munin-node-configure --suggest
Włączenie dodatkowych wtyczek :
W konsoli wykonujemy :
munin-node-configure --shell
Wyświetlone polecenia należy wpisać w konsoli aby uruchomić wtyczki.
Jest też drugi sposób na uaktywnienie dodatkowych wtyczek (sposób automatyczny). Wystarczy wpisać :
munin-node-configure --shell | sh -x
Zostaną uaktywnione wszystkie wtyczki, które mogą być uruchomione na danym systemie. Automatycznie zostanie utworzone dowiązanie symboliczne.
Po wykonaniu dowiązań należy zrestartować munin-node :
service munin-node restart
Należy odczekać 5-10 min. na załadowanie wtyczek na stronie internetowej.
Jeśli serwer Munin nie wyświetla wykresów danego hosta należy sprawdzić :
1) Czy na danym komputerze są zainstalowane pluginy na munin-node ?
2) Czy został przeprowadzony restart usługi munin-node ?
3) Czy istnieje komunikacja munin < -> munin-node ?
Komunikacje można sprawdzić wykonując w konsoli :
telnet adres_IP_komputera port_usługi
np.
telnet 192.168.3.109 4949