niedziela, 10 czerwca 2012

Cacti - wykresy stanu portów w switchach

Cacti jest przepotężnym narzędziem do zbierania i graficznej prezentacji najprzeróżniejszych parametrów sieci. W podstawowej instalacji są to wykresy obciążenia procesora, interfejsów sieciowych, zajętości pamięci itp. Cacti może być rozbudowane o wiele przeróżnych wykresów jak monitorowanie środowiska, zasilania, stanu serwerów (HTTP, DNS) i wiele innych. 

Niedawno spotkałem się z potrzebą monitorowania zajętości portów na switcha. Najprostszym sposobem było zaprzęgnięcie działającego już w sieci Cacti do dodatkowej pracy. W tym celu znalazłem na forum Cacti skrypt, który w zamierzeniu autora miał odczytywać potrzebne parametry - ilość wszystkich portów ethernet i portów, które działają w danym momencie. Przerobiłem go do swoich celów i dodałem nową funkcjonalność - odczyt portów w stanie Admin Up. Dodatkowo przystosowałem skrypt do działania z innymi switchami, nie tylko Cisco, ale również HP Procurve i 3COM.

Poniższe skrypty należy skopiować do katalogu /usr/share/cacti/site/scripts

Cisco - większość switchy, sprawdzone na C3560, C2960, C3750 i C6505
HP - Procurve 2510G, 2524 (będzie działać ze wszystkimi switchami które numerują interfejsy cyframi), 1810G-8 i 4000M (modularny)
3COM - SuperStack II 3300, SuperStack III 4400 i 4500, Baseline 2226 Plus

Następnie, po zalogowaniu się do Cacti z prawami administratora musimy skonfigurować kilka zależnych od siebie elementów:

1. Data Input Methods

Input Fields - przy ich pomocy przekazujemy parametry do skryptu
Output Fields - przy ich pomocy odbieramy ze skryptu dane, ich nazwy muszą być identyczne z tymi które są w skrypcie

Jeżeli chcemy, by parametry do skrypty były przekazywane automatycznie na podstawie informacji zdefiniowanych w karcie urządzenia (Device), takich jak. IP adres, SNMP community, czy SNMP version, należy przy definiowaniu Input Field w polu Special Type Code wpisać jedno z podanych słów kluczowych, np. hostname dla adresu IP lub nazwy kanonicznej urządzenia.

2. Data Templates
W Data Templates definiujemy w jaki sposób RRDTools ma obsługiwać napływające ze skryptu dane. Ważne jest zdefiniowanie odpowiedniej ilości pól w szablonie, należy pamiętać o zapisywaniu szablonu po każdorazowym utworzeniu i edycji nowego pola.

3. Graph Templates  
 Tu definiujemy jak ma wyglądać wykres.

4. Device i Create Graph
Na koniec na karcie urządzenia dodajemy z listy rozwijanej nowy szablon i po wybraniu linka Create Graph For This Host dodajemy nowy wykres.


5. A tak wygląda efekt końcowy


Pole niebieskie to całkowita ilość interfejsów. Pole zielone to interfejsy w stanie Admin UP a czerwona linia to aktualnie aktywne interfejsy - w stanie Oper Up.

Pliki z gotowymi szablonami do switchy Cisco i HP 
generowane za pomocą Cacti 0.8.8a 

4 komentarze:

  1. Hmm, zrobiłem dokładnie według opisu, kilka razy sprawdziłem i mi nie rysuje. Co ciekawe, czy w polach Data source ma być coś wybrane, bo jest ustawione na none, screen: http://imgur.com/xxi8N

    OdpowiedzUsuń
    Odpowiedzi
    1. Powinny być odpowiednie data Source, z tym, że jeśli będzie poprawnie zrobiony Data Template i Graph Template, to one będą wstawione automatycznie. postaram się zamieścić przykładowy plik XML z szablonami.

      Usuń
    2. Za jakiej wersji Cacti to exportowałeś? wyskakuje mi Hash version does not exist, mam wersję 0.8.7g

      Usuń
    3. 0.8.8a
      podejrzewam, że używasz pakiet z Debiana squeeze? Zrób upgrade, 0.8.8a ma od razu wbudowane PIA.

      Usuń