Monitoring hostów Apacha przy użyciu Munina

apache_vhosts

Jednym z ciekawych pluginów do Munina jest apache_vhosts. Pokazuje on na wykresie per vhost: średnią wielkość odpowiedzi, średni czas odpowiedzi oraz ilość zapytań na minutę.

Wybór metody pozyskiwania danych

Czytając README możemy się dowiedzieć, że do prawidłowego funkcjonowania pluginu potrzebujemy analizować logi Apache i tu mamy do wyboru trzy metody:

  1. Możemy użyć apache_pipelogger, do którego Apache będzie zapisywał logi
  2. Możemy użyć apache_logparser jako daemona, który parsuje logi Apache
  3. Możemy użyć dwie metody jednocześnie – dane będę połączone.

Ja wybrałem metodę nr 2.

Instalacja dodatkowych modułów

Aby zapewnić prawidłowe funkcjonowanie pluginu musimy zainstalować następujące moduły perla:  File::Tail::Multi Storable IPC::ShareLite Munin::Plugin (opcjonalnie Data::Dumper). Możemy to zrobić otwierając perlowy shell:
perl -MCPAN -e shell
a następnie zainstalować moduł, np.:
install File::Tail::Multi

Kopiowanie plików

W kolejnym kroku musimy przekopiować: apache_logparserapache_vhosts do katalogu z naszymi pluginami. W moim przypadku jest to /usr/share/munin/plugins. Następnie powinniśmy utworzyć symlink w /etc/munin/plugins do apache_vhosts.

Konfiguracja parsera

W pliku apache_logparser musimy skonfigurować ścieżkę do plików z logami, określić jak wyglądają nazwy vhostów, aby parser mógł określić nazwę vhosta. Edytujemy:

my $dir = "/logs/apache_logs";
my $files = "*access_log";
my $site = "(.*)-access_log";

Próba parsera

Na tym etapie możemy zobaczyć czy parser działa prawidłowo. Wystarczy, że zmienimy w nim

local $debug=1;

Teraz odpalając parsera będziemy widzieć wynik analizy poszczególnych logów. Na czas konfiguracji możemy zostawić uruchomionego daemona.

Konfiguracja noda

Kolejną czynnością jest konfiguracja noda Munina. Musimy w pliku /etc/munin/plugin-conf.d/munin-node umieścić:

[apache_vhosts]
user root
env.subgraphs requests bytes time
env.checks requests bytes time

Test pluginu

Możemy tera sprawdzić czy plugin działa prawidłowo, wystarczy uruchomić:

munin-run apache_vhosts

Finalne uruchomienie

Na koniec zatrzymujemy daemona parsera logów i wyłączamy w nim tryb debug. Uruchamiamy go w tle. Restartujemy noda Munia. Po kilku minutach powinniśmy zobaczyć nowe wykresy 🙂

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *