Monitorowanie urządzeń i serwerów to przydatna sprawa, a zebrane statystyki przydają się do weryfikacji działania naszych urządzeń, sieci, serwerów. Postanowiłem opisać instalację Cacti na Raspberry Pi, ale w taki sam sposób praktycznie (może z jakimiś malutkimi różnicami) można to wykonać na Linuxie Debian 9. Cacti to narzędzie, które umożliwia monitorowanie urządzeń m.in. używając protokołu SNMP. Dzięki temu możemy pobierać z np. routera, switcha, serwera takie dane jak transfer na kartach sieciowych/portach LAN, zużycie pamięci RAM, zużycie dysku, wykorzystanie procesora itp.. Można także tworzyć własne skrypty, które pobierają dane ze stron www, naszych własnych urządzeń (Arduino) itd.. Cacti z zebranych danych tworzy wykresy co pozwala w prosty sposób prowadzić podgląd monitorowanych urządzeń. Umożliwia także wysyłanie powiadomień e-mail kiedy, któreś urządzenie jest niedostępne, a po instalacji i ustawieniu wtyczki “Thold” Cacti może wysyłać powiadomienia kiedy wskazane parametry któregoś z urządzeń zostaną przekroczone. U mnie Raspberry Pi zalegało w szufladzie więc postanowiłem je wykorzystać jako serwer dla Cacti. Co prawda zrobiłem to na Raspberry Pi Model B i jest to trochę za słabe dla Cacti, ale jakoś daje radę (tylko ślamazarnie odświeża wyświetlanie wykresów). Najlepiej mieć do tego celu minimum RPi 2. Opis dotyczy Cact od wersji 1.0 (tutaj jest przedstawiona instalacja wersji 1.1.27 (taka była dostępna jako najnowsza w chwili tworzenia tego poradnika)
Spis treści:
1. Przygotowanie
2. Instalacja wymaganych narzędzi i modułów
3. Kompilacja i instalacja Cacti-Spine (opcjonalne)
4. Instalacja Cacti
5. Odświeżanie co 1 minutę (Cacti 1 minute poll – opcjonalne)
6. Podsumowanie
Pierwsze co to wymagane jest Raspberry Pi z zainstalowanym systemem i najlepiej stałym adresem w sieci LAN.
Statyczny adres w Raspbian Stretch ustawiamy w /etc/dhcpd.conf. Sprawdzamy nazwę interfejsu sieciowego.
sudo ifconfig
lub
ip a
Przykładowy wynik “ip a”
1: lo:mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff inet 192.168.254.129/24 brd 192.168.254.255 scope global eth0 valid_lft forever preferred_lft forever
eth0 to mój interfejs sieciowy, który należy skonfigurować.
Edytujemy plik
sudo nano /etc/dhcpcd.conf
Na końcu pliku dodajemy poniższą konfigurację dla statycznego adresu IP dla karty sieciowej eth0.
Zamiast podanych adresów należy wprowadzić swoje własne odpowiednie dla własnej sieci LAN. Poniżej to tylko przykład:
#static IP configuration interface eth0 static ip_address=192.168.254.10/24 static routers=192.168.254.254 static domain_name_servers=208.67.222.222 8.8.8.8
static ip_address – to adres jaki ma mieć RPi
statis routes – adres routera z internetem
static domain_name_servers – DNSy
Po ustawieniu adresu IP wykonujemy restart Rpi.
reboot
Powinno się uruchomić ze skonfigurowanym adresem IP.
2. Instalacja wymaganych narzędzi i modułów
Całość instalacji wykonywałem używając Raspbian Stretch w wersji lite i Raspberry Pi 2. Właściwie w podobny sposób można Cacti zainstalować pod Debian 9 Stretch jak ktoś chce. Różnic w instalacji i konfiguracji właściwie nie ma.
Na początek wykonujemy update i upgrade:
sudo apt-get update && apt-get upgrade -y
Czyli aktualizacja apt i aktualizacja systemu.
Po aktualizacji instalujemy potrzebne narzędzia:
apt-get install apache2 libapache2-mod-php7.0 php7.0 php7.0-snmp php7.0-xml php7.0-mbstring php7.0-json php7.0-gd php7.0-gmp php7.0-zip php7.0-ldap php7.0-mcrypt sendmail -y
Przechodzimy do utawienia timezone dla PHP (wymagane przez Cacti).
Edytujemy plik /etc/php/7.0/apache2/php.ini
sudo nano /etc/php/7.0/apache2/php.ini
Odszukujemy pole file_uploads powinno być ustawione jak poniżej
file_uploads = On
Następnie odszukujemy date.timezone i ustawiamy jak poniżej
date.timezone = Europe/Warsaw
Przed date.timezone może być znak ; (średnik). Usuwamy go i ustawiamy tak aby było jak powyżej.
Zapisujemy plik i wychodzimy z edytora.
Restartujemy apache2
sudo systemctl restart apache2
Następnie instalujemy bazę i obsługę bazy przez php
sudo apt-get install mariadb-server php7.0-mysql -y
Po instalacji zabezpieczamy konto root dla mysql:
sudo mysql -h localhost
Przejdziemy do mysql czyli będzie coś takiego:
Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 4 Server version: 10.1.23-MariaDB-9+deb9u1 Raspbian 9.0 Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
Wpisujemy:
use mysql; update user set plugin='' where user='root'; flush privileges;
Na koniec
exit
Teraz uruchamiamy kreator zabezpieczeń mysql
sudo mysql_secure_installation
Powinny się pojawić pytania jak poniżej. W pytaniu o hasło do root wciskamy enter (ponieważ nie ma żadnego hasła). Na wszystkie pytania odpowiadamy twierdząco (Y). W pytaniu o zmianę hasła wciskamy Y, enter i wpisujemy nowe hasło. Wszystko jak poniżej:
---------------------
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
You already have a root password set, so you can safely answer 'n'.
Change the root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] Y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] Y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] Y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] Y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
---------------------
Tworzymy bazę danych dla Cacti. Czyli łączymy się z mysql
mysql -h localhost -u root –p
System zapyta o nasze hasło do root mysql. Wpisujemy i przechodzimy do tworzenia bazy z użytkownikiem.
create database cacti; grant all on cacti.* to 'cacti'@'localhost' identified by 'hasło_użytkownika_cacti'; flush privileges;
Po pomyślnym wykonaniu powyższych komend wpisujemy
exit
Należy teraz ustawić uprawnienia do strefy czasu w MySQL dla Cacti. Jest to wymagane przy nowej wersji Cacti.
mysql -u root -p mysql < /usr/share/mysql/mysql_test_data_timezone.sql
oraz
mysql -u root -p -e 'grant select on mysql.time_zone_name to cacti@localhost'
Teraz edytujemy plik /etc/my.cnf
sudo nano /etc/my.cnf
Dodajemy do pliku:
[mysqld] max_heap_table_size = 98M tmp_table_size = 64M join_buffer_size = 64M innodb_doublewrite = off innodb_additional_mem_pool_size = 80M innodb_flush_log_at_timeout = 3 innodb_read_io_threads = 32 innodb_write_io_threads = 16
Zapisujemy i restartujemy usługi:
sudo systemctl restart mysql apache2
Sprawdzamy status:
sudo systemctl status mysql apache2
Instalujemy narzędzia i usługi SNMP i rrdtool oraz cron:
sudo apt-get install snmp snmpd snmp-mibs-downloader rrdtool cron -y
Edytujemy plik /etc/snmp/snmp.conf
sudo nano /etc/snmp/snmp.conf
komentujemy linie mibs dodając znak # czyli #mibs jak poniżej
# As the snmp packages come without MIB files due to license reasons, loading # of MIBs is disabled by default. If you added the MIBs you can reenable # loading them by commenting out the following line. #mibs :
Zapisujemy plik i edytujemy /etc/snmp/snmpd.conf
sudo nano /etc/snmp/snmpd.conf
usuwamy # przy #agentAddress udp:161,udp6:[::1]:161 i uzupełniamy adres IP. Dlaczego? Ponieważ jest jakiś BUG w snmpd dla Raspbiana i inaczej usługa nie startuje. Czyli zostanie agentAddress udp:192.168.254.10:161,udp6:[::1]:161. Każdy wpisuje swój adres IP Raspberry.
# # AGENT BEHAVIOUR # # Listen for connections from the local system only agentAddress udp:127.0.0.1:161 # Listen for connections on all interfaces (both IPv4 *and* IPv6) agentAddress udp:192.168.254.10:161,udp6:[::1]:161
Przechodzimy niżej do Access Control i dodajemy
rocommunity snmpcacti localhost rocommunity snmpcacti 192.168.254.0/25
snmpcacti może być dowolną nazwą.
W pliku sekcja ACESS CONROL będzie wyglądać przykładowo jak poniżej:
############################################################################### # # ACCESS CONTROL # # system + hrSystem groups only view systemonly included .1.3.6.1.2.1.1 view systemonly included .1.3.6.1.2.1.25.1 # Full access from the local host #rocommunity public localhost # Default access to basic system info rocommunity public default -V systemonly # rocommunity6 is for IPv6 rocommunity6 public default -V systemonly rocommunity snmpcacti localhost rocommunity snmpcacti 192.168.254.0/25 # Full access from an example network # Adjust this network address to match your local # settings, change the community string, # and check the 'agentAddress' setting above #rocommunity secret 10.0.0.0/16 # Full read-only access for SNMPv3 rouser authOnlyUser
Oczywiście adres IP podajemy odpowiedni dla naszej sieci LAN.
Niżej możemy przejść do sekcji System Information i zmienić dane sysLocation i sysContact na takie jak chcemy:
sysLocation Cacti server in server room sysContact Admin
Zapisujemy zmiany i wychodzimy z pliku. Restartujemy usługę:
sudo systemctl restart snmpd.service
Sprawdzamy status
sudo systemctl status snmpd.service
Wynik powinien być podobny do tego:
● snmpd.service - Simple Network Management Protocol (SNMP) Daemon. Loaded: loaded (/lib/systemd/system/snmpd.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2017-11-08 23:20:07 UTC; 2min 16s ago Process: 11257 ExecStartPre=/bin/mkdir -p /var/run/agentx (code=exited, status=0/SUCCESS) Main PID: 11260 (snmpd) CGroup: /system.slice/snmpd.service └─11260 /usr/sbin/snmpd -Lsd -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux mteTrigger mteTriggerConf -f Nov 08 23:20:07 rpi-cacti systemd[1]: Starting Simple Network Management Protocol (SNMP) Daemon.... Nov 08 23:20:07 rpi-cacti systemd[1]: Started Simple Network Management Protocol (SNMP) Daemon.. Nov 08 23:20:07 rpi-cacti snmpd[11260]: pcilib: Cannot open /proc/bus/pci Nov 08 23:20:07 rpi-cacti snmpd[11260]: pcilib: Cannot find any working access method. Nov 08 23:20:07 rpi-cacti snmpd[11260]: pcilib: pci_init failed Nov 08 23:20:07 rpi-cacti snmpd[11260]: /etc/snmp/snmpd.conf: line 148: Warning: Unknown token: defaultMonitors. Nov 08 23:20:07 rpi-cacti snmpd[11260]: /etc/snmp/snmpd.conf: line 150: Warning: Unknown token: linkUpDownNotifications. Nov 08 23:20:07 rpi-cacti snmpd[11260]: Turning on AgentX master support. Nov 08 23:20:07 rpi-cacti snmpd[11260]: NET-SNMP version 5.7.3
Błędem pci_init failed nie ma co się przejmować. Jest to jakiś błąd w samym SNMPD i tak poza SNMPD działa OK.
Działanie SNMPD możemy dodatkowo zweryfikować:
snmpwalk -v 2c -c snmpcacti localhost memory
snmpcacti to jest nazwa, którą podaliśmy w konfiguracji /etc/snmp/snmpd.conf przy rocommunity.
3. Kompilacja i instalacja Cacti-Spine (opcjonalne)
Teraz czas na instalację Cacti-Spine. Jest to opcjonalne i jeżeli ktoś nie chce to może ten krok pominąć. Cacti-Spine zastępuje domyślny cmd.php pooler szybszym napisanym W C co skraca czas wykonywania poolera. W celu instalacji Cacti-Spine.
Najpierw instalujemy narzędzia i zależności potrzebne do kompilacji i instalacji Cacti-Spine.
sudo apt-get install build-essential dos2unix dh-autoreconf help2man libssl-dev libmysql++-dev libmariadb-dev libmariadbclient-dev librrds-perl libsnmp-dev -y
Przechodzimy do katalogu domowego pi i ściagamy cacti-spine czyli
cd /home/pi
wget https://www.cacti.net/downloads/spine/cacti-spine-latest.tar.gz
Wypakowujemy
tar xfz cacti-spine-latest.tar.gz
Przechodzimy do katalogu
cd cacti-spine-1.1.27/
Może być inny numer wersji. W tym celu należy sprawdzić dostępne katalogi poleceniem
ls
Po przejściu do katalogu cacti-spine-1.1.27 wpisujemy
sudo ./bootstrap
następnie
sudo ./configure
póżniej
sudo make
no i w końcu
sudo make install
Cacti-spine zostanie zainstalowane w katalogu /usr/local/spine/. Zalecane jest ustawienie SUID dla pliku wykonywalnego spine aby wspierał ICMP ping.
Zmieniamy właściciela
sudo chown root:root /usr/local/spine/bin/spine
Ustawiamy chmod
sudo chmod +s /usr/local/spine/bin/spine
Następnie edytujemy/tworzymy konfiguracje spine
sudo nano /usr/local/spine/etc/spine.conf
Ustawiamy dostęp do bazy danych Cacti
DB_Host localhost DB_Database cacti DB_User cacti DB_Pass hasło_użytkownika_cacti DB_Port 3306 DB_PreG 0
Zapisujemy plik i przechodzimy do instalacji Cacti.
Ściągamy ostatnią wersję Cacti:
wget https://www.cacti.net/downloads/cacti-latest.tar.gz
wypakowujemy
tar xfz cacti-latest.tar.gz
tworzymy katalog dla cacti
sudo mkdir /var/www/html/cacti
kopiujemy do katalogu /var/www/html/cacti (poleceniem ls należy sprawdzić jaki katalog Cacti został wypakowany. W momencie tworzenia tego opisu był to katalog cacti-1.1.27).
sudo cp -rf cacti-1.1.27/* /var/www/html/cacti
edytujemy plik config dla cacti
sudo nano /var/www/html/cacti/include/config.php
ustawiamy dane dostępu do bazy danych
$database_type = 'mysql'; $database_default = 'cacti'; $database_hostname = 'localhost'; $database_username = 'cacti'; $database_password = 'hasło_użytkownika_cacti'; $database_port = '3306'; $database_ssl = false;
importujemy bazę Cacti z pliku do bazy danych
mysql -u cacti cacti -p < /var/www/html/cacti/cacti.sql
podajemy hasło użytkownika cacti (system zapyta o hasło)
zmieniamy właściciela katalogu www i wszystkiego co jest wewnątrz tego katalogu na użytkownika www-data
sudo chown -R www-data:www-data /var/www/
Teraz przechodzimy na stronę Cacti install czyli w przeglądarce wchodzimy na adres
http://192.168.254.10/cacti/install
Każdy podaje swój adres IP Rasperry.
Powinna się pojawić strona instalacyjna Cacti:
Klikamy Accept GPL License Agreement i Next.
Następna strona to weryfikacja ustawień systemu. Wszystko powinno się zgadzać jak na poniższym screenie:
Klikamy Next i przechodzimy dalej.
Ustawiamy serwer na opcję "New Primary Server" (domyślny wybór) i przechodzimy dalej.
Na kolejnym ekranie będzie błąd ze względu na ścieżkę /usr/local/spine/bin/spine/spine. Tym się nie przejmujemy póki co i przechodzimy dalej.
Jeżeli ktoś ma błąd przy Cacti Log Path to może wykonać następujące czynności:
sudo touch /var/www/html/cacti/log/cacti.log chown www-data:www-data /var/www/html/cacti/log/cacti.log
Przechodzimy dalej czyli Next. Weryfikacja katalogów i uprawnień:
Wszystko jest OK więc Next.
Wybór szablonów. Zaznaczamy wszystkie dostępne.
Klikamy Finish. Powinno przejść teraz do strony logowania.
Domyślne logowanie to
Login: admin
Hasło: admin
Przy pierwszym zalogowaniu zostaniemy poproszeni o zmianę hasła.
Ustawiamy nowe hasło, save i pokaże się panel Cacti.
Teraz przechodzimy do ustawienia Pollera.
UWAGA: jeżeli ktoś nie instalował Cacti spine to nie zmienia pollera i zostawia cmd.php.
Console -> Configuration -> Settings -> Poller
W zakładce Poller mamy ustawienia Pollera. Zmieniamy Poller Type z cmd.php na Spine
Przechodzimy niżej strony i klikamy przycisk Save.
UWAGA: jeżeli ktoś będzie korzystać ze Spine to wykonuje tą część
Teraz klikamy na zakładkę Paths i zmieniamy ścieżkę do Spine na /usr/local/spine/bin/spine oraz ustawiamy ścieżkę Spine Config File Path na /usr/local/spine/etc/spine.conf
Klikamy przycisk Save. Tam gdzie był błąd przy Spine Binary File Location powinien się pojawić znaczek, że jest OK.
Teraz dodamy jakiś wykres. Na początek z maszyny lokalnej na której pracuje Cacti. Przechodzimy do Console -> Management -> Devices i klikamy na + w prawym górnym rogu tabelki Devices.
Ustawiamy dane urządzenia czyli nazwę, adres itd.
Description - określa opis urządzenia tutaj ustawiłem "Rpi Cacti"
Hostname - adres urządzenia czyli 127.0.0.1
Device Template - ustawiamy Local Linux Machine
SNMP Version - Version 2
SNMP Community - czyli to co ustawialiśmy przy konifugracji SNMPD w moim przypadku jest to nazwa snmpcacti
SNMP Port - 161
Downed Device Detection - SNMP Uptime
Po ustawieniu klikamy przycisk Create. Po utworzeniu urządzenia zostanie wyświetlona strona zarządzania utworzonym urządzeniem.
Klikamy napis w prawym górnym rogu "Create Graphs for this device". Przejdzie to nam do strony tworzenia wykresów. Zaznaczamy pozycje z których chcemy mieć wykresy.
Po zaznaczeniu klikamy przycisk Create.
Kolejna strona to kolory. Jak ktoś chce to może je pozmieniać. Klikamy przycisk Create i przechodzimy dalej.
Teraz dla zachowania porządku możemy dodać urządzenie do odpowiedniego drzewka/kategorii wykresów. Drzewa tworzymy w Console -> Management -> Trees. W tabelce Trees w prawym gónym rogu jest + (plus), którym dodajemy nową kategorię/drzewo. Jak ktoś chce to może dodać nowe. Ja pokaże jak przypisać urządzenie do wybranej kategorii
Przechodzimy teraz do Console -> Management -> Devices i zaznaczamy w kwadraciku po prawej stronie nasze urządzenie. Przy przycisu GO jest pole rozwijalne. Rozwijamy je i wybieramy opcję Place on a Tree (Default Tree).
Następnie klikamy przycisk GO. Jeżeli bęzie dostępnych więcej kategorii/drzew to będzie więcej opcji Place on a Tree (nazwa).
W następnym oknie zostawiamy tak jak jest i klikamy continue
Teraz w Raspberry edytujemy crontab (jeżeli zapyta o edytor to wybieramy nano)
sudo crontab -u www-data -e
dodajemy wpis
*/5 * * * * php /var/www/html/cacti/poller.php > /var/www/html/cacti/log/cron.log
Zapisujemy i wychodzimy.
Teraz pozostaje poczekać minimum 5-10 min żeby cokolwiek się zaczęło pojawiać na wykresach. Wykresy możemy podejrzeć wchodząc w Cacti w zakładkę Graphs, rozwijamy drzewo Default tree i klikamy na dodane urządzenie. Pojawi się ekran z wykresami. Na początku będzie to zapewne wyglądać tak jak na screenie. Czyli wykresy bez danych. Jak już Cacti jakieś dane zbierze wówczas zaczną się one pojawiać na wykresie.
Tutaj screen jak już Cacti zebrało jakieś dane i naniosło na wykres
Jeżeli ktoś chce mieć SSL (https) to należy wykonać:
sudo a2enmod ssl sudo a2ensite default-ssl.conf sudo systemctl restart apache2
SSL włączone i można się łączyć z Cacti przez https (SSL z certyfikatem self-signed).
5. Odświeżanie co 1 minutę (Cacti 1 minute poll - opcjonalne)
Jeżeli dla kogoś polling danych co 5 minut to za mało to można ustawić Cacti aby to działało z rozdzielczością 1 minuty. Żeby ustawić odświeżanie danych co 1 minutę (1 minute poller) należy przejść najpierw do zakładki Console -> Presets -> Data profiles. W tabelce Data Source Profiles kliknąć na + (add) i dodać nowy profil. Pojawi się okno z dodawaniem nowego profilu.
Name - dowolna tutaj dla przykładu 1 minute rate poller.
Polling Interval - Every minute
Heartbeat - 2 minutes
X-Files Factor - 0.5
Consolidation Functions - zaznaczamy wszystkie
Default - zaznaczamy
Klikamy create. Po utworzeniu pojawi się tabelka Data Source Profile RRAs (press save to update timespans).
Klikamy na + (add) w prawym rogu tej tabelki i dodajemy kolejne profile
Po wpisaniu wszystkiego klikamy Create. Teraz to samo dla kolejnych profili (czyli +, wpisać dane i create, dane jak poniżej na screenach).
Klikamy Save.
Teraz przechodzimy do konsoli. Zmieniamy wpis w cronie
sudo crontab -u www-data -e
zmieniamy 5 na 1 czyli będzie wpis
*/1 * * * * php /var/www/html/cacti/poller.php > /var/www/html/cacti/log/cron.log
Przechodzimy teraz do zakładki Console -> Templates -> Data source. Tutaj wybieram Profile "All", Data Templates "50" (żeby wyświetliło wszystkie, na początku więcej niż 50 ich nie ma) zaznaczamy wszystkie szablony. Na samym dole z listy rozwijalnej przy przycisku GO wybieramy Change profile i wciskamy przycisk GO. Pojawi się okienko gdzie wybieramy "New Data Source Profile" na nasz nowy utworzony czyli 1 Minute rate poller.
Klikamy przycisk Continue.
Przechodzimy teraz do zakładki Console -> Utilities -> System utilities i klikamy opcję Rebuild Poller Cache. Jest to konieczne aby wszystko działało jak należy. Po tym zabiegu mamy Cacti z pollerem 1 minutowym.
Więcej pomocy na temat tworzenia wykresów, podłączania urządzeń znajdziecie na stronie Cacti oraz na forach związanych z Cacti. Można znaleźć także gotowe szablony oraz wtyczki do urządzeń takich jak np. Mikrotik. Temat jest dość obszerny i wątpię abym zdołał tutaj opisać wszystko co można zrobić i co kto chciałby zrobić. U mnie w domu monitoruję tak router Mikrotik, serwer domowy, strony webowe (czy żyją) itd. Cacti ma także możliwość odpytywania wskazanych portów TCP/UDP, a także można dołożyć własne skrypty aby badać stan jakichś specyficznych usług. Możliwości jest naprawdę wiele.
Powodzenia w dalszym użytkowaniu Cacti i zgłębianiu wiedzy na temat SNMP i monitoringu urządzeń i serwerów. Opis instalacji i konfiguracji jest dość obszerny więc możliwe, że gdzieś wkradły się jakieś błędy aczkolwiek dokładam wszelkich starań aby opis był jak najbardziej dokładny i umożliwiał sprawne uruchomienie przedstawionego narzędzia.
Dokumentacja Cacti: https://docs.cacti.net/wiki:documentation