Last Updated on 09/07/2023 by administrator
Konfigurace Smokeping pro monitoring v Linuxu (Smokeping configuration)
Konfigurace Smokeping pro monitoring v Linuxu (Smokeping configuration)
Popis:
SmokePing je software pro monitorování síťové odezvy (latency), ztrátovosti (packetloss) a rozptylu zpoždění. Nabízí mnoho sond a pluginů pro monitorování nejrůznějších protokolů jako je SSH, Telnet, DNS, IPv6, LDAP, .. Tyto údaje zaznamenává vizuálně do grafů a umí varovat při výpadku služby. Konfigurace Smokeping není nějak náročná.
Demo s živými ukázkovými grafy lze nalézt zde: https://smokeping.oetiker.ch/?target=Customers.OP
OS:
Implementace byla prováděna na Ubuntu 18.04 LTS a Ubuntu 20.04 LTS, postup může být aplikovatelný na Ubuntu 17.10 a nižší.
Impementaci je možné provést u na Ubuntu 22.04 – nicméně je potřeba se řídit instrukcemi v závěru článku.
Implementace:
Instalace a konfigurace Smokeping:
Aktualizace seznamu balíčků z repozitářů:
Instalace služby Smokeping. Automaticky se nainstalují i další závislosti na tomto balíčku (např: apache2, fping, echoping, ..):
Potvrdíme „Internet Site“, díky kterému je možné použít protokol SMTP pro odesílání emailu při výpadku služby. To bude později ukázáno.
Dopsat doménové jméno. Např. pokud používám email uzivatel@example.org, mé doménové jméno bude example.org.
Smokeping vyžaduje instalaci webového serveru. V tomto případě bude nainstalován Apache web server:
Po instalaci webového serveru apache povolit CGI modul. CGI (Common Gateway Interface) umožňuje spouštění externích programů (v případě SmokePing je to skript smokeping.cgi) na straně serveru. SmokePing využívá skript smokeping.cgi jako rozhraní mezi serverem a uživatelským rozhraním webového prohlížeče. Skript smokeping.cgi zpracovává požadavky na zobrazení grafů, tabulek a konfiguraci SmokePing.
Zjistit IP adresu na které běží smokeping pomocí příkazu:
Do internetového prohlížeče zadat link níže, kde <IP> je IP adresa je adresou stanice/serveru na které běží Smokeping:
Objeví se hlavní okno Smokeping webu:
Všechna síťová zařízení se definují v souboru Targets ve složce /etc/smokeping/config.d/:
Ukázka původní konfigurace s popisem:
Lépe je to ukázáno níže na obrázku, kde je graficky znázorněná sekce (+ Local) a podsekce (++ LocalMachine):
Jak lze vidět v podsekcích označené „++“ definujeme síťová zařízení. Sekce označená „+“ je zase nadmnožinou síťových zařízení.
a) Sonda pro testování ICMP (ping):
Budou přidány první dva testy na ICMP (ping) pro síťová zařízení např. router, který běží na IP adrese 192.168.0.1 a WiFi router běžící na 192.168.0.254. Tyto podsekce budou přidány do souboru Targets.
Pod celý config níže vložit:
Podobně lze přidávat další síťová zařízení.
Změna configu vyžaduje restart služby smokeping:
Ověření služby Smokeping:
Výpis příkazu service smokeping status:
Nyní se na localhost, router a wifi router zasílá co 5 min žádost protokolem ICMP. To je následně vykresleno v grafu níže. Na vykreslení první hodnoty v grafu je nutné si počkat minimálně 5 min:
Pozn. Jak bylo již zmíněno výše, vykreslení grafu není okamžité. Defaulně se posílá 20 „pingů“ každých 5 min. Případné změny lze nastavit v souboru Database v /etc/smokeping/config.d/.
b) Sonda pro testování HTTP:
Pro měření obousměrného zpoždění (RTT) na aplikační službu HTTP se využívá sonda (probe) EchoPingHttp. Tuto sondu je nutné definovat v souboru /etc/smokeping/config.d/Probes
Příklad konfigurace v souboru Probes:
Legenda:
binary – typ sondy (probe) s definicí její absolutní cesty v linuxu
port – HTTP obvykle beží na portu 80
ipversion – verze IP protokolu, zde pro IPv4 protokol
accept_redirects – akceptuje stavové HTTP kódy 3xx přesměrování (redirections) jako obyčejné odpovědi
Bude přidána nová sekce WEBtest (+) pod kterou budou přidány dvě podsekce (++), kde bude sledována dostupnost na webové stránky google.com a seznam.cz protokolem HTTP. To bude zapsáno do souboru Targets:
Všechna síťová zařízení se definují v souboru Targets ve složce /etc/smokeping/config.d/:
A vložit nakonec souboru:
Restartovat službu smokeping:
Nyní se na oba webové servery google.com a seznam.cz zasílá co 5 min žádost na portu 80. To je následně vykresleno v grafu níže. Na vykreslení první hodnoty v grafu je nutné si opět počkat minimálně 5 min:
Pozn. podle potřeby lze parametry port, ipversion, accept_redirects přepsat u každé podsekce zvlášt v /etc/smokeping/config.d/Targets.
Další info a možnostech nastavení sondy zde: https://oss.oetiker.ch/smokeping/probe/EchoPingHttp.en.html
c) Sonda pro testování HTTPS:
Pro měření obousměrného zpoždění (RTT) na aplikační službu HTTPS se využívá sonda (probe) EchoPingHttps. Tuto sondu je nutné definovat v souboru /etc/smokeping/config.d/Probes
Příklad konfigurace v souboru Probes:
Legenda:
forks – maximální počet souběžných procesů
Bude použita stejná sekce WEBtest (+) kde budou upravanz dvě podsekce (++), kde bude sledována dostupnost na webové stránky google.com a seznam.cz protokolem HTTPS.
Všechna síťová zařízení se definují v souboru Targets ve složce /etc/smokeping/config.d/:
Boldem označené řádky, které byly změněny:
Restartovat službu smokeping:
Nyní se na oba webové servery google.com a seznam.cz zasílá co 5 min žádost na portu 443. To je následně vykresleno v grafu níže. Na vykreslení první hodnoty v grafu je nutné si opět počkat minimálně 5 min:
Pozn. opět podle potřeby lze parametry port, ipversion, accept_redirects přepsat u každé podsekce zvlášt v/etc/smokeping/config.d/Targets.
Další info a možnostech nastavení sondy zde: https://oss.oetiker.ch/smokeping/probe/EchoPingHttps.en.html
d) Sonda pro testování DNS:
Pro test rychlosti překladu s obousměrným zpožděním na DNS servery je možné použít program dig jako sondu. Jako doménové jméno pro tento test rychlosti překladu bude zvoleno seznam.cz. Toto se definuje v opět v /etc/smokeping/config.d/Probes
Příklad konfigurace v souboru Probes:
Legenda:
binary – typ sondy (probe) s definicí její absolutní cesty v linuxu
lookup – definice doménového jména (to které se má DNS servery „resolvovat“)
Bude přidána opět nová sekce DNStest (+) pod kterou budou přidány dvě podsekce (++) na veřejné Google DNS servery 8.8.8.8 a 8.8.4.4. To bude zapsáno do souboru Targets:
A vložit nakonec souboru:
Nyní se na oba veřejné Google DNS servery 8.8.8.8 a 8.8.4.4 zasílá co 5 min žádost o překlad doménového jména seznam.cz. To je následně vykresleno v grafu níže. Na vykreslení první hodnoty v grafu je nutné si opět počkat minimálně 5 min:
Pozn. podle potřeby lze parametr lookup přepsat u každé podsekce zvlášť v/etc/smokeping/config.d/Targets.
Další info a možnostech nastavení sondy zde: https://oss.oetiker.ch/smokeping/probe/DNS.en.html
Mnoho dalších sond lze najít zde: https://oss.oetiker.ch/smokeping/probe/index.en.html
Notifikace přes Email:
Při výpadku síťového zařízení či služby je možné nastavit oznámení zasílání emailem. K tomu je potřebný balíček sendmail:
Ověřit zda služba sendmail běží:
Konfigurační soubor sendmail je umístěný v /etc/mail/sendmail.conf, nicméně nemusí se upravovat.
V souboru Targets odkomentovat alerts = someloss
Nastavení zasílání emailů se provede v souboru Alerts.
Doporučuji vymazat původní konfiguraci a konfiguraci níže překopírovat a upravit podle sebe. Přepsat parametr „to“ na skutečnou emailovou adrese příjemce a parametr „from“ na původce zprávy:
someloss – označení alertu (to je ten „alert“, který byl odkomentován v souboru Targets)
type – existují základní dva typy – loss (pro packetloss) a rtt (pro síťovou odezvu)
pattern = >5% – Pokud vznikne packetloss více než 5-ti procentní, odešle se email
edgetrigger – pokud bude nastaven na „yes“, email se zašle při výpadku a při znovunačtení/obnovení výpadku
Dále v souboru General přepsat some.url na řádku cgiurl = http://some.url/smokeping.cgi, což definuje doménové jméno nebo IP adresu na které běží Smokeping. Příklad konfigurace, kde smokeping běží na IP adrese 192.168.88.15:
Částečný výpis souboru General:
Restartovat službu smokeping:
Konfigurace Smokepingje hotova!
TIP – Jak zkrátit URL:
Jelikož URL název „192.168.88.15/cgi-bin/smokeping.cgi“ je příliš dlouhý, je tady tip jak přesměrovat 192.168.88.15 na 192.168.88.15/cgi-bin/smokeping.cgi aby se nemusela zadávat do prohlížeče tato celá URL adresa:
Otevřít soubor .htaccess ve složce /var/www/html/:
Vložit kód níže:
Otevřít soubor 000-default.conf ve složce /etc/apache2/sites-available/:
Přidat pod <VirtualHost *:80> vložit tučně vyznačený kód níže. Ve výsledku to bude vypadat takto:
Povolit modul mod_rewrite pro Apache2. Modul mod_rewrite je zodpovědný za přesměrování URL a řízení přepisování URL v Apache:
Provést restart Apache2:
Hotovo!