Pokazywanie postów oznaczonych etykietą Cacti. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą Cacti. Pokaż wszystkie posty

poniedziałek, 26 listopada 2012

Cacti - monitorowanie serwera DNS - BIND9

Do uruchomienia monitorowania serwera DNS Bind9 będa potrzebne:
- skrypty i template do Cacti - bind9-stats-2.0.tar
- biblioteka do Perla - libsnmp-extension-passpersist-perl

Ponieważ nie mam jej w dystrybucji Debian Squeeze należy pobrać pakiet deb na dysk i zainstalować za pomocą:
# dpkg - i libsnmp-extension-passpersist-perl_0.06-1_all.deb

Przed instalacja należy doinstalować pakiety:
  • libclass-accessor-perl (>= 0.30)
  • liblist-moreutils-perl (>= 0.21)

1. Konfiguracja Binda i sprawdzenie działanie narzędzie RNDC

- do pliku konfiguracyjnego Binda dodajemy sekcje z kluczem MD5 dla RNDC, musi byc on zgodny z kluczem w pliku konfiguracyjny rndc.conf, oraz konfigurujemy Binda by generował statystyki do pliku (jeżeli Bind jest uruchamiany w sand-boxie, podajemy zwykłą ścieżkę do pliku, bez żadnych dodatkowych informacji)


key rndc-key {
        algorithm hmac-md5;
        secret " jakis sekretny klucz MD5 ";
        };

zone-statistics         yes;
dump-file               "/var/cache/bind/cache_dump.db";
statistics-file         "/var/cache/bind/named_stats.txt";
memstatistics-file      "/var/cache/bind/named_mem_stats.txt";


- restart Binda i sprawdzenie działanie narzędzia RNDC
# /etc/init.d/bind9 restart

# rndc status
version: 9.7.3 (DNS)
CPUs found: 1
worker threads: 1
number of zones: 28
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running

- sprawdzamy czy rndc generuje plik

# rndc stats
# more /var/cache/bind/named_stats.txt

+++ Statistics Dump +++ (1353929701)
++ Incoming Requests ++
                 123 QUERY
++ Incoming Queries ++
                 117 A
                   6 AAAA
++ Outgoing Queries ++
[View: internal]
[View: external]
[View: _bind]
++ Name Server Statistics ++
                 123 IPv4 requests received
                  54 requests with EDNS(0) received
                  62 recursive queries rejected
                 123 responses sent
                  54 responses with EDNS(0) sent
                  55 queries resulted in successful answer
                  61 queries resulted in authoritative answer
                   6 queries resulted in nxrrset
                  62 other query failures
++ Zone Maintenance Statistics ++
                   9 IPv4 notifies sent
++ Resolver Statistics ++
(...)

- i dodajemy wywołanie skryptu do crona, generowanie statystyk nastąpi co 5 minut
*/5 * * * * /usr/share/bind9/bind9-genstats.sh > /dev/null 2>&1

2. Plik bind9-stats-2.0.tar rozpakowujemy np. do /usr/share/bind9

3. Modyfikujemy skrypty. W obu należy ustawić ścieżkę do pliku named_stats.txt. Tu podajemy już pełną ścieżkę w systemie plików


/usr/share/bind9/bind9-genstats.sh

STAT_FILE=/var/lib/named/var/cache/bind/named_stats.txt



/usr/share/bind9/snmp/bind9-stats-snmpd.pl
$STAT_FILE = "/var/lib/named/var/cache/bind/named_stats.txt";


4. Do pliku snmpd.conf dodajemy:
pass .1.3.6.1.4.1.2021.55 /usr/bin/perl /usr/share/bind9/snmp/bind9-stats-snmpd.pl

restartujemy demona
# /etc/init.d/snmpd restart

i sprawdzamy:
#snmpwalk -v 2c -c <snmp_community> localhost .1.3.6.1.4.1.2021.55
UCD-SNMP-MIB::ucdavis.55.1.0 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.55.1.1 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.55.1.2 = INTEGER: 2
UCD-SNMP-MIB::ucdavis.55.1.3 = INTEGER: 3
UCD-SNMP-MIB::ucdavis.55.1.4 = INTEGER: 4
UCD-SNMP-MIB::ucdavis.55.1.5 = INTEGER: 5
UCD-SNMP-MIB::ucdavis.55.1.6 = INTEGER: 6
UCD-SNMP-MIB::ucdavis.55.2.1 = STRING: "GLOBAL"
(...)

5. Na koniec kopjujemy plik 
# cp /usr/share/bind9/snmp/bind9-stats-snmp.xml /usr/share/cacti/resource/snmp_queries/

oraz importujemy do Cacti template cacti_data_query_bind_9_statistics_snmp.xml

6. Dodajemy do hosta na którym mamy uruchomiony serwer DNS data query BIND 9 Statistics (SNMP), po czym wykonujemy odczyt danych z serwera (Verbose query) i normalnie dodajemy potrzebne wykresy.
Data Query
Obrazek z http://forums.cacti.net




Statystyka ogólna serwera DNS Bind9
Obrazek z http://forums.cacti.net



czwartek, 25 października 2012

Cacti - monitorowanie kontrolera zasilania Tahoe 8216 GSM

Zacząłem ostatnio używać bardzo fajny system do zdalnej kontroli zasilania urządzeń w szafie rackowej. Szczególnie użyteczne jest to w miejscu, gdzie dojazd zabiera trochę czasu a trzeba szybko zrestartować jakieś urządzenie przez wyłączenie zasilania. System zdalnego zasilania Tahoe 8216 GSM udostępnia kontrolę nad zasilanie urządzeń zarówno przez sieć LAN/WAN, jak i pozwala na kontrolę zasilania za pomocą telefonu, przez wysyłanie wiadomości SMS. Oprócz dostępnych 10 gniazdek na jednostce główniej, system umożliwia podłączenie 31 jednostek podrzędnych do pozwala na kontrolowania naprawdę dużej ilości urządzeń :) Oprócz tego urządzenie potrafi w oparciu o zdefiniowane watchdogi samodzielnie restartować wybrane urządzenia, które np. nie odpowiadają na ping przez 5 minut.




Więcej informacji o Tahoe 8216 GSM tutaj.


Przez SNMP urządzenie udostępnia kilka parametrów środowiskowych, takich jak: napięcie, pobór prądu i mocy, temperatura urządzenia i inne. Wszystkie informacje są dostępne w gałęzi enterprice OID: 

.1.3.6.1.4.1.3600.4.2 

oraz standardowym

.1.3.6.1

MIBy do urządzania są tutaj. MIB jest kompatybilny z firmware 1.4.2 rev.499

Co do monitorowania samego urządzenia to stworzyłem do Cacti template urządzenia Tahoe do monitorowania wspomnianych parametrów. Plik jest utworzony w wersji Cacti 0.8.8a.

 cacti_host_template_tahoe_8216gsm.xml

Całość wygląda tak:



poniedziałek, 15 października 2012

Cacti - jak zmienić hasło konta admin ?

Jeśli nie można dostać się na konto admina w Cacti, zostaje jedna droga - zmiana hasła w bazie MySql. Można zrobić to za pomocą np. PhpMyAdmin lub po prostu za pomocą CLI. Proste, łatwe i przyjemne :)

mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4322 Server version: 5.1.63-0+squeeze1 (Debian) Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use cacti
mysql> update user_auth set password=MD5('Password') where username='admin';

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