MRTG i poprawianie historii
Dzieje się tak czasem, że wygląd historii został zaburzony przez pewne fakty, zakłócając obraz do tego stopnia, iż nie potrafimy skupić się na niczym innym. Potrafi się to stać (i dzieje się) także dla MRTG. Ponieważ skaluje on tworzone obrazki dynamicznie nagłe zakłócenie danych oscylujących na pewnym okreslonym poziomie olbrzymim w stosunku do nich pikiem, powoduje zakłócenie radości z oglądania owych fluktuacji. Można sobie zadać pytanie - skoro monitorujemy, to przecież chcemy wiedzieć co się dzieje?
Tak - to prawda, niemniej czasem, ze względu chociażby na możliwość czasowego wyłączenia agenta SNMP odczytującego wewnętrzne rejestry maszyny jego nagłe włączenie potrafi podać olbrzymią daną (agent SNMPd podaje dane różnicowo - jeśli nie wie jaka była poprzednia wartość zwróci aktualną wartość rejestru… która może być zaskakująca). Dzieje się to chociażby przy restarcie maszyny. Oczywiście można zapobiec takim sytuacjom podając zmieniając ciut konfigurację agenta, my niemniej zejdziemy do poziomu pliku logów i poprawimy jego zachowanie.
MRTG wykorzystuje do gromadzenia danych RRD. Jest to taka specyficzna baza danych, która z upływem czasu bardzo nie rośnie, a jedynie zmienia się jej zawartość/rozdzielczość w czasie. Wynika to z faktu, iż jest ona tworzona w oparciu o szczegółowe interwały czasowe (tu: dzień/tydzień/miesiąc/rok), ze szczegółową dokładnością (odpowiednio 5 minut/30 minut/godzina/dzień), które wraz ze starzeniem się, przesuwają się w dół, tracąc nadmiarowe, nie potrzebne na danym poziomie szczegółowości dane.
Wystarczy w związku z tym popatrzeć na nasze zaburzone wykresy, zapamiętac kiedy wystąpiło zaburzenie, otworzyć plik log powiązany z daną/interfejsem, który monitorujemy i… ujrzeć stado cyfr.
Pierwsza linijka pliku RRD zawiera informacje o tym kiedy była wykonana na nim ostatnia operacja i (dla interfejsu) ilość danych wchodzących i wychodzących:
1172975401 828445773 1460749062
Czas podany jest w sekundach od 01-01-1970. Można to przełożyć na nasze za pomocą np. funkcji Excela
Kolejne linijki mają zbliżony format, różnią się jedynie pozostałymi czterema kolumnami - są to odpowiednio średni ruch wchodzący/interwał, średni ruch wychodzący/interwał, maksymalny ruch wchodzący w odcinku czasu, maksymalny ruch wychodzący/interwał.
1172527200 119 4209 718 25418
My jednak jesteśmy w innej sytuacji - znamy mniej więcej moment wystąpienia złej danej - trzeba go wyszukać i zneutralizować.
Zamieniamy szukaną datę (zaokrągloną do pełnej godziny lub północy szukanego dnia) na odpowiednią liczbę sekund - znów przychodzi z pomocą Excel, zakładając, że datę mamy wpisaną w komórce A1:
Teraz tylko otworzyć plik logów, znaleźć inkryminowany czas, wyliczyć średnią z otaczających pól, żeby jakaś wartość jednak była w tym miejscu i koniec. Po chwili równej interwało odświeżania danych pliki wykresów poprawią się. Oczywiście jeśli jest to na wykresie rocznym/miesięcznym to ta chwila może być dłuższa, warto więc skasować pliki *.png i poczekać, aż skrypt je odtworzy.
Źródło: MRTG-logfile