Tento tutoriál vám ukáže, jak nainstalovat a nakonfigurovat nástroj pro monitorování sítě Cacti ze zdroje, abyste zajistili, že získáte nejnovější verzi na Debianu 9 s kódovým označením Stretch.
Cacti je webový nástroj pro monitorování sítě, zcela otevřený zdroj, určený k zobrazení síťové a systémové grafiky prostřednictvím RRDtool. Používá protokol SNMP (Simple Network Management Protocol) ke shromažďování a monitorování síťového provozu ze síťových zařízení, jako jsou přepínače, směrovače, servery Linux, Unix a Windows nebo jiné typy síťových zařízení, která podporují SNMP.
Požadavky
- Minimální instalace Debianu 9 na holém počítači nebo na virtuálním privátním serveru.
- Statická adresa IP nakonfigurovaná pro jednu z vašich systémových síťových karet.
- Přístup k účtu root nebo uživateli s oprávněními účtu root prostřednictvím sudo.
Počáteční konfigurace
Než začneme instalovat Cacti ze zdroje, nejprve se ujistěte, že váš systém splňuje všechny softwarové požadavky pro kompilaci a instalaci Cacti. V prvním kroku otevřete soubor se seznamem zdrojů Debianu pro úpravy s právy root a připojte contrib a non-free repozitáře, jak je znázorněno na níže uvedeném úryvku souboru.
nano /etc/apt/sources.list
ukázka souboru sources.list:
deb http://ftp.ro.debian.org/debian/ stretch main contrib non-free
deb-src http://ftp.ro.debian.org/debian/ stretch main
deb http://security.debian.org/debian-security stretch/updates hlavní příspěvek nesvobodný
deb-src http://security.debian.org/debian-security stretch/updates main
Po dokončení úprav souboru uložte a zavřete soubor a aktualizujte systémová úložiště a softwarové balíčky tak, aby obsahovaly nové balíčky, zadáním níže uvedených příkazů.
aktualizace apt
upgrade apt
Dále spusťte nový příkaz, abyste nainstalovali některé potřebné nástroje, které budou použity k další správě vašeho systému z příkazového řádku.
apt install wget patch unzip zip bash-completion
Cacti je webový monitorovací nástroj většinou napsaný v programovacím jazyce PHP na straně serveru. Aby bylo možné spouštět skripty souboru php Cacti, musí být v systému nainstalován a funkční webový server, například server HTTP Apache, a interpret PHP. Chcete-li nainstalovat webový server Apache a interpret PHP spolu se všemi požadovanými moduly PHP, které Cacti potřebuje ke správnému fungování, zadejte na konzole serveru následující příkaz.
apt 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
Po instalaci Apache a PHP otestujte, zda je webový server v provozu a naslouchá síťovým připojením na portu 80 zadáním následujícího příkazu s právy root.
netstat –tlpn
V případě netstat síťová utilita není ve výchozím nastavení na vašem systému Debian nainstalována, nainstalujte ji provedením níže uvedeného příkazu.
apt install net-tools
Kontrolou netstat na výstupu příkazu můžete vidět, že démon Apache naslouchá příchozím síťovým připojením na portu 80.
V případě, že máte ve svém systému povolenou bránu firewall, jako je například aplikace brány firewall UFW, měli byste přidat nové pravidlo, které umožní průchod HTTP provozu přes bránu firewall, zadáním následujícího příkazu.
ufw povolit WWW
nebo
ufw povolit 80/tcp
Nakonec otestujte, zda lze výchozí webovou stránku webového serveru Apache zobrazit v prohlížeči vašeho klienta návštěvou IP adresy vašeho počítače Debian přes protokol HTTP, jak je znázorněno na obrázku níže. Pokud neznáte IP adresu svého počítače, spusťte 'ifconfig' nebo 'ip a' příkazy. Moje IP v tomto nastavení je:http://192.168.1.14
V dalším kroku musíme provést nějaké další změny ve výchozím konfiguračním souboru PHP, abychom zajistili, že file_uploads proměnná je povolena a časové pásmo PHP je správně nakonfigurováno a odpovídá fyzickému umístění vašeho systému. Otevřete /etc/php/7.0/apache2/php.ini soubor pro úpravy a ujistěte se, že následující řádky jsou nastaveny následovně.
file_uploads =Zapnuto
date.timezone =Evropa/Londýn
Nahraďte proměnnou časového pásma podle svého fyzického časového pásma podle seznamu časových pásem poskytnutých dokumenty PHP na následujícím odkazu http://php.net/manual/en/timezones.php
Po provedení požadovaných změn vytvořte informační soubor php a restartujte démona apache, abyste aplikovali změny pomocí následujících příkazů.
echo ''| tee /var/www/html/info.php
systemctl restartujte apache2
Zkontrolujte, zda bylo časové pásmo PHP správně nakonfigurováno, návštěvou informačního skriptu php z prohlížeče na následující adrese URL (jak je znázorněno na obrázku níže). Přejděte dolů na nastavení data a zkontrolujte nastavení časového pásma php.
http://192.168.1.14/info.php
Monitorovací nástroj kaktusů ukládá konfigurace a shromážděná data do databáze RDBMS. V tomto tutoriálu nakonfigurujeme Cacti s databázovým backendem MariaDB. Vydáním níže uvedeného příkazu nainstalujte databázi MariaDB a modul PHP potřebný pro přístup k databázi mysql.
apt install mariadb-server php7.0-mysql
Po instalaci MariaDB ověřte, že démon běží a naslouchá síťovým připojením na localhost, port 3306, spuštěním netstat příkaz.
netstat –tlpn | grep mysql
Poté se přihlaste do konzole MySQL a zabezpečte root MariaDB účtu vydáním následujících příkazů.
mysql -h localhost
use mysql;
update user set plugin='' where user='root';
vyprázdnit oprávnění;
exit
V dalším kroku zajistěte MariaDB spuštěním skriptu mysql_secure_installation poskytuje instalační balíček z úložiště Debian Stretch. Během běhu bude skript klást řadu otázek k zabezpečení databáze MariaDB, jako například:změnit heslo root MySQL, odstranit anonymní uživatele, zakázat vzdálené přihlášení root a odstranit testovací databázi. Spusťte skript vydáním níže uvedeného příkazu a ujistěte se, že na všechny položené otázky zadáte ano, abyste plně zabezpečili démona MySQL. Níže uvedený výstup skriptu použijte pouze jako vodítko.
sudo mysql_secure_installation
POZNÁMKA:SPUŠTĚNÍ VŠECH ČÁSTÍ TOHOTO SKRIPTU SE DOPORUČUJE PRO VŠECHNY MariaDB
SERVERY VE VÝROBNÍM POUŽITÍ! ČTĚTE PROSÍM POZORNĚ KAŽDÝ KROK!
Abychom se mohli přihlásit do MariaDB a zabezpečit ji, budeme potřebovat aktuální
heslo pro uživatele root. Pokud jste právě nainstalovali MariaDB a
ještě jste nenastavili heslo uživatele root, heslo bude prázdné
takže zde stačí stisknout enter.
Zadejte aktuální heslo pro root (zadejte pro žádné):
OK, úspěšně použité heslo, pokračujeme...
Nastavení hesla uživatele root zajistí, že se nikdo nemůže přihlásit do MariaDB
uživatel root bez řádného oprávnění.
Už máte nastavené heslo uživatele root, takže můžete bezpečně odpovědět 'n'.
Změnit heslo uživatele root? [A/n] y
Nové heslo:
Znovu zadejte nové heslo:
Heslo bylo úspěšně aktualizováno!
Opětovné načítání tabulek oprávnění...
... Úspěch!
Ve výchozím nastavení má instalace MariaDB anonymního uživatele, který umožňuje komukoli
pro přihlášení do MariaDB, aniž byste museli mít vytvořený uživatelský účet pro
jít trochu plynuleji. Před přesunem dobyste je měli odstranit
produkční prostředí.
Odebrat anonymní uživatele? [A/n] y
... Úspěch!
Normálně by měl mít root povoleno připojení pouze z 'localhost'. Toto
zajišťuje, že někdo nemůže uhodnout heslo root ze sítě.
Zakázat vzdálené přihlášení root? [A/n] y
... Úspěch!
Ve výchozím nastavení je MariaDB dodávána s databází s názvem 'test', kterou může každý
přístup. Toto je také určeno pouze pro testování a mělo by být odstraněno
před přesunem do produkčního prostředí.
Odebrat testovací databázi a získat k ní přístup? [A/n] y
- Ruší testovací databáze...
... Úspěch!
– Odebírání oprávnění k testovací databázi...
... Úspěch!
Opětovné načtení tabulek oprávnění zajistí provedení všech dosud provedených změn
vstoupí v platnost okamžitě.
Obnovit nyní tabulky oprávnění? [A/n] y
... Úspěch!
Probíhá úklid...
Vše hotovo! Pokud jste provedli všechny výše uvedené kroky, vaše MariaDB
instalace by nyní měla být bezpečná.
Děkujeme, že používáte MariaDB!
Chcete-li otestovat zabezpečení MariaDB, zkuste se přihlásit do databáze z konzole bez rootu Heslo. Pokud není pro root poskytnuto žádné heslo, měl by být přístup k databázi odepřen účet. Pokud je zadáno heslo, měl by být proces přihlášení povolen konzoli MySQL, jak je znázorněno na níže uvedeném snímku obrazovky.
mysql -h localhost -u root
mysql -h localhost -u root –p
Po přihlášení do databáze MariaDB pokračujte a vytvořte databázi pro instalaci kaktusů a vytvořte uživatele, který bude použit ke správě kaktusů databáze, zadáním následujících příkazů. Nahraďte kaktusy uživatel databáze a heslo podle toho.
vytvořit databázi kaktusů;
udělit vše na kaktusy.* uživateli 'cacti_user'@'localhost' identifikovanému pomocí 'cacti_pass';
vyprázdnit oprávnění;
ukončit
Také udělte uživateli databáze kaktusů oprávnění k výběru pro časové pásmo MySQL vydáním níže uvedených příkazů. Toto je nový požadavek pro instalaci a spuštění nejnovější verze Cacti.
mysql -u root -p mysqlmysql -u root -p -e 'udělit výběr na mysql.time_zone_name uživateli [email protected]'
V dalším kroku otevřete výchozí konfigurační soubor serveru MySQL a připojte následující řádky, jak je ukázáno v níže uvedené ukázce.
nano /etc/mysql/mariadb.conf.d/50-server.cnfPřidejte následující řádky na konec 50-server.cnf soubor:
max_heap_table_size =98m
tmp_table_size =64M
join_buffer_size =64M
innodb_buffer_pool_size =485m
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
Chcete-li použít všechny změny, které jsme dosud provedli, restartujte démony MySQL a Apache a ověřte, že démoni běží, zadáním následujících příkazů.
systemctl restart mysql apache2stav systemctl mysql apache2Konfigurovat službu SNMP
Webová monitorovací služba Cacti využívá protokol SNMP ke sběru dat a statistik zařízení. Chcete-li nainstalovat program SNMP, službu démona SNMP a SNMP MIBS do místního systému Debian 9, zadejte následující příkaz s právy root.
apt install snmp snmpd snmp-mibs-downloader
Nainstalujte si také standardní nástroj pro protokolování dat RRDtool, který Cacti používá k zobrazení funkcí grafů.
apt install rrdtool
Dále upravte konfigurační soubor SNMP /etc/snmp/snmp.conf a okomentujte „mibs“ řádek přidáním hashtagu (#) před řádek, jak je popsáno na obrázku níže.
Nakonfigurujte také vzdálený přístup k démonu SNMP a přístup k místnímu hostiteli otevřením souboru snmpd.conf soubor pro úpravy a vyhledejte a aktualizujte následující řádky:
nano /etc/snmp/snmpd.confChcete-li naslouchat připojením na všech rozhraních, odkomentujte řádek
Adresa agenta udp:161,udp6:[::1]:161
Přidejte následující řádky, abyste povolili dotaz SNMP pro vaši místní síť prostřednictvím snmp_string Heslo. Nahraďte řetězec komunity snmp string_snmp heslo a vaši síťovou adresu CIDR.
rocommunity snmp_string localhost
rocommunity snmp_string 192.168.1.0/25
Volitelně můžete také upravit proměnnou kontakt a umístění, abyste poskytli informace o vašem serveru. Tyto informace se zobrazí v oznamovací oblasti kaktusů, když zkontrolujete podrobnosti o svém serveru. V oznamovací oblasti Cacti se také zobrazí název hostitele vašeho systému, verze jádra a doba provozu systému.
Chcete-li tyto informace upravit, upravte sysLocation a sysContact řádky pod sekcí systémových informací a přidejte vlastní hodnoty. Ve výchozím nastavení jsou pro sysLocation nakonfigurovány následující hodnoty a sysContact .
sysLocation sedí na doku v zálivu
sysContact Me <[email protected]>Po provedení správných změn v snmpd.conf soubor, uložte a zavřete soubor a restartujte démona snmp, aby se změny projevily vydáním níže uvedených příkazů. Poté zkontrolujte stav démona snmpd a vlastněné porty ve stavu naslouchání.
systemctl restart snmpd.servicestav systemctl snmpd.servicenetstat -tulpn| grep snmp
Otevřete port brány firewall pro SNMP:
ufw povolit 161/udpChcete-li ověřit, že démon SNMP funguje podle očekávání a načítá všechny hodnoty SNMP ze stromu paměti pro localhost, spusťte níže uvedený příkaz.
snmpwalk -v 2c -c snmp_string localhost memory
Instalovat Cacti-Spine
Cacti-Spine je náhrada za výchozí cmd.php poller napsaný v C pro rychlejší provádění. Chcete-li zkompilovat a nainstalovat Cacti-Spine pooler ze zdrojů v Debianu 9, nejprve spusťte následující příkaz, abyste do systému nainstalovali všechny požadované závislosti.
apt install build-essential dos2unix dh-autoreconf help2man libssl-dev libmysql++-dev libmariadb-dev libmariadbclient-dev librrds-perl libsnmp-devDále si stáhněte nejnovější verzi komprimovaného archivu Cacti-Spine tar pomocí wget extrahujte archiv tarball a zadejte adresář extrahovaný cacti-spine zadáním následujících příkazů.
wget https://www.cacti.net/downloads/spine/cacti-spine-latest.tar.gztar xfz cacti-spine-latest.tar.gzcd cacti-spine-1.1.24/Nyní zkompilujte a nainstalujte nástroj Cacti-Spine ze zdrojů zadáním níže uvedených příkazů.
./bootstrap./configurevyrobitproveďte instalaciCacti-Spine se nainstaluje do /usr/local/spine/ systémová cesta. Spine doporučuje nastavit bit SUID pro páteřní binární soubor, aby bylo možné podporovat požadavky ping ICMP.
chown root:root /usr/local/spine/bin/spinechmod +s /usr/local/spine/bin/spineSpine musíte také připojit k databázi kaktusů úpravou konfiguračního souboru pomocí, jak je znázorněno na níže uvedeném úryvku souboru.
nano /usr/local/spine/etc/spine.confspine.conf ukázka souboru. Podle toho vyměňte přihlašovací údaje. Použijte stejné přihlašovací údaje k databázi, jaké jsou nakonfigurovány pro Cacti.
DB_Host localhost
DB_Database cacti
DB_User user_cacti
DB_Pass pass_cacti
DB_Port 3306
DB_PreG 0
Instalovat Cacti
Chcete-li nainstalovat Cacti ze zdrojů v Debianu 9, nejprve si stáhněte a rozbalte nejnovější verzi komprimovaného archivu Cacti tarball a poté zkopírujte všechny extrahované soubory do webové kořenové cesty Apache zadáním následujících příkazů.
wget https://www.cacti.net/downloads/cacti-latest.tar.gztar xfz cacti-latest.tar.gzcp -rf cacti-1.1.24/* /var/www/html/
V dalším kroku otevřete konfigurační soubor kaktusů a aktualizujte následující řádky, aby odrážely uživatelské jméno, heslo, hostitele a cestu URL k databázi kaktusů MySQL, jak je znázorněno v příkladu níže.
nano /var/www/html/include/config.phpKaktusy config.php ukázka souboru:
$database_type ='mysql';
$database_default ='kaktusy';
$database_hostname ='localhost';
$database_username ='cacti_user';
$database_password ='cacti_pass';
$database_port ='3306';
$database_ssl =false;Přejděte dolů a změňte proměnnou cesty z “/cacti “ až „/ “
$url_path ='/';
Dále musíte naplnit databázi kaktusů načtením cacti.sql skript umístěný v kořenovém umístění dokumentu vašeho webového serveru a ověřte tabulky cacti mysql vydáním níže uvedených příkazů.
mysql -u cacti_user kaktusy -pmysql -u cacti_user cacti -p -e 'zobrazit tabulky'Nakonec před zahájením instalace Cacti z webového rozhraní proveďte níže uvedené příkazy, abyste odstranili výchozí soubor index.html nainstalovaný webovým serverem Apache, vytvořte soubor protokolu pro Cacti a povolte uživateli Apache runtime s plnými oprávněními k zápisu cestu k instalaci kaktusů. .
rm /var/www/html/index.htmldotkněte se /var/www/html/log/cacti.logchown -R www-data:www-data /var/www/html/Začněte instalovat Cacti přes webové rozhraní tak, že navštívíte vaši systémovou IP adresu nebo název domény v prohlížeči a otevřete následující URL.
http://192.168.1.14/install
Na první obrazovce zaškrtněte políčko Přijmout licenční smlouvu GPL a pokračujte kliknutím na tlačítko Další, jak je znázorněno na níže uvedeném snímku obrazovky.
Na další obrazovce přejděte dolů a ověřte, zda instalační program splnil všechny systémové požadavky, a stisknutím tlačítka Další pokračujte v procesu instalace.
Dále zvolte Nový primární server jako typ instalace a pokračujte kliknutím na tlačítko Další.
Nyní ověřte, zda jsou všechna kritická binární umístění a verze správně detekována instalačním programem kaktusů. Také byste měli aktualizovat binární cestu Spine na /usr/local/spine/bin/spine . Můžete si vybrat klasický motiv a pokračovat stisknutím tlačítka Další.
Na další obrazovce instalační program ověří oprávnění webového kořenového adresáře Apache, aby zkontroloval, zda má webový server povoleno zapisovat do instalační cesty kaktusů. Pokud jsou všechny požadované cesty zapisovatelné, pokračujte stisknutím tlačítka Další.
Vyberte všechny šablony z poskytnutého seznamu a klepněte na tlačítko Dokončit pro dokončení instalace.
Po dokončení procesu instalace se přihlaste do webového rozhraní Cacti pomocí následujících výchozích přihlašovacích údajů a nahraďte výchozí heslo správce novým silným heslem, jak je znázorněno na následujících snímcích obrazovky.
Uživatelské jméno:admin
Heslo:admin
Po přihlášení do webového rozhraní Cacti přejděte do Konzole -> Konfigurace -> Nastavení -> Poller a změňte typ poller z cmd.php na spine binární, jak je znázorněno na obrázku níže. Přejděte dolů a klikněte na Uložit pro použití změn.
Poté přejděte na Konzola -> Konfigurace -> Nastavení -> Cesty a aktualizujte Cacti-Spine a nastavte cestu konfiguračního souboru na následující cestu /usr/local/spine/etc/spine.conf a klepnutím na tlačítko Uložit použijte konfiguraci, jak je znázorněno na obrázku níže.
Chcete-li přidat nové zařízení ke sledování prostřednictvím SNMP, přejděte na Konzola -> Správa -> Zařízení a stiskněte + ikonu, jak je znázorněno na obrázku níže. Pro demonstrační účely přidáme počítač localhost, který bude Cacti monitorovat prostřednictvím protokolu SNMP.
Pro nově přidané linuxové zařízení, které bude monitorováno prostřednictvím SNMP, přidejte popis zařízení, název hostitele, FQDN nebo IP adresu monitorovaného zařízení a vyberte Místní počítač se systémem Linux jako šablonu zařízení. V možnostech SNMP vyberte správnou verzi SNMP (v tomto případě použijeme verzi 2) a napište komunitní řetězec SNMP vašeho zařízení, jak je popsáno na obrázcích níže. V případě, že se port SNMP nezměnil, ponechte hodnotu portu jako výchozí, a když skončíte, přejděte dolů a stiskněte tlačítko Vytvořit, abyste zařízení přidali do databáze Cacti, abyste jej mohli monitorovat.
Po přidání zařízení do databáze Cacti se v horní části stránky zařízení zobrazí souhrn SNMP v případě, že bylo zařízení správně detekováno a dotazováno. Chcete-li pro toto zařízení vytvořit grafy SNMP RRDTool, klikněte na Vytvořit grafy pro toto zařízení odkaz, zaškrtněte šablony grafů, které chcete dále zkoumat, a stiskněte tlačítko Vytvořit pro přechod na další obrazovku, poté znovu stiskněte tlačítko Vytvořit pro dokončení, jak je znázorněno na následujících obrázcích.
Chcete-li zobrazit grafy, přejděte na Konzole -> Správa -> Zařízení, zaškrtněte zařízení, na kterém chcete dále provést akci, a z nabídky akcí vyberte možnost Umístit na strom (výchozí strom).
Na nové obrazovce ponechte cílovou větev jako výchozí a kliknutím na tlačítko Pokračovat dokončete proces, jak je popsáno na obrázku níže.
A konečně, aby Cacti poller začal sbírat data o monitorovaných zařízeních, musíte přidat novou cron úlohu, která bude každých 5 minut dotazovat zařízení přes SNMP. Přidejte plánovanou úlohu, kterou bude vlastnit a provádět uživatel runtime Apache, zadáním níže uvedeného příkazu.
crontab –u www-data –eLinka práce Crontab:
*/5 * * * * /usr/bin/php /var/www/html/poller.php> /var/www/html/log/cron.log 2>&1
Po přidání cronjob pooleru počkejte asi půl hodiny, aby měl Cacti čas na shromáždění dat, a poté přejděte na kartu Grafy ve webovém rozhraní Cacti. Rozbalte výchozí strom a grafy shromážděné z vašeho monitorovaného počítače by se měly zobrazit, jak je znázorněno na níže uvedeném snímku obrazovky.
Prozatím je rozhraní Cacti přístupné z klientských prohlížečů nezabezpečeným způsobem prostřednictvím protokolu HTTP. Všechny citlivé informace o vašich zařízeních, stejně jako přihlašovací údaje k kaktusům, jsou odesílány jako prostý text. Chcete-li zašifrovat provoz mezi prohlížeči klienta a webovým rozhraním Cacti, zadejte následující příkazy s oprávněními root, abyste povolili konfiguraci Apache SSL.
a2enmod ssla2ensite default-ssl.confsystemctl restartujte apache2Poté přejděte na webové rozhraní Cacti přes protokol HTTPS. Protože webový server Apache používá k šifrování připojení certifikát s vlastním podpisem, měla by se ve vašem prohlížeči zobrazit chybová zpráva. Přijměte chybu a nyní můžete bezpečně přistupovat k webovému rozhraní Cacti, jak je znázorněno na následujícím snímku obrazovky.
To je vše! Úspěšně jste nainstalovali a nakonfigurovali Cacti ze zdrojů v Debianu 9. Další vlastní nastavení týkající se Cacti naleznete na stránkách dokumentace na následujícím odkazu https://docs.cacti.net/manual:100
Debian