Snadné Sledování Systému

Popis všech parametrů konfiguračního souboru:

ParametrMožné hodnotyDefaultPoznámka
background_color"#rrggbb""#1f4f4f"Barva pozadí grafu
border_bottomčíslo Šířka dolního okraje, pokud není zadána, vypočte se z velikosti písma
border_color"#rrggbb""#c0c0c0"Barva okraje
border_leftčíslo5Šířka levého okraje
border_rightčíslo Šířka pravého okraje, pokud není zadána, vypočte se z velikosti písma
border_topčíslo Šířka horního okraje, pokud není zadána, vypočte se z velikosti písma
color"#rrggbb""#00ff00"Barva jednotlivých hodnot, implicitně je nastaven "osciloscope view"
command"příkaz" Linuxový příkaz, jehož jediným výstupem je právě jedno číslo. Mohlo by tam být třeba i "echo 123" - ale k čemu by to bylo ;-)
countčíslo1000Počet uložených hodnot, z tohoto čísla se odvozuje i šířka grafu v pixlech
data"number" |
"byte" |
"bps" |
"percent"
"number"Jaká data jsou zobrazována a jak (v kombinaci s "data_format")
"number" : bezrozměrné celé i desetinné číslo
"byte" : bajty, automaticky se převádí násobky (KiB,MiB...)
"bps" : rychlost v bitech za sekundu. Protože do programu vstupují bajty, program provede přepočet, z intervalu pak zjistí i průměrnou rychlost
"percent" : výsledek je zobrazen v procentech. Nutno zadat i "percent_100" aby mohl proběhnout výpočet.
data_format"formátovací_string" Formátovací string dle zvyklostí v Pythonu. Pro desetinná čísla doporučuji "%.2f" a pro celá čísla "%d". Pokud není zadán, čísla se objevují s přesností cca 1%. Tedy čísla menší jak 10 na dvě desetinná místa, čísla menší jak 100 na jedno desetinné místo.
differentialFalse | TrueFalseMají-li se od sebe sousedící hodnoty před zobrazením v grafu odečíst. Případný záporný výsledek bude upraven na nulu.
directory_dump"adresář" Adresář pro ukládání hodnot, program musí mít právo na čtení a zápis
directory_image"adresář" Adresář pro ukládání obrázků, program musí mít právo na zápis
enableFalse | TrueTrueUrčuje zda-li je služba aktivní, vhodné při ladění
filename"soubor" Ze kterého souboru se bude číst hodnota.
font_nameNone | "cesta_k_fontu/font.ttf"NoneCesta k TTF fontu, není-li zadán, vybere se implicitní luximr.ttf
font_sizečíslo13Velikost fontu, okraje obrázku se automaticky přízpůsobí
graph_createFalse | TrueTrueUrčuje, zda-li se má vytvářet graf
heightčíslo120Výška grafu v pixlech
interval"(číslo)m" | "(číslo)h"  V jakém intervalu se má služba spouštět. "1m" znamená každou minutu, "2m" každou druhou minutu, "30m" každou půlhodinu. Obdobně "3h" znamená každou třetí hodinu. Nezapomeňte však, že program je spouštěn cronem, pokud budete mít nastaveno spouštění programu sss.py každou pátou minutu (*/5 * * * *), tak interval "1m" je zbytečný!
percent_100číslo V případě, že je nastaveno "data" na "percent", potřebuje program vědět, kolik je 100%
regex"regulární_výraz"  Regulární výraz, který se má aplikovat buď na výsledek "command", nebo na "filename". Výsledkem musí být jediné číslo (v regulárním výrazu je uzavřeno do závorek).
warningčíslo1,číslo2 Po získání aktualní hodnoty služby se provede kontrola a je-li hodnota vyšší jak číslo1 je vyhlášen poplach a provede se příkaz v "warning_command". Poplach je pak odvolán, pokud je jedna z následujících hodnot menší jak číslo2. Současně je proveden příkaz v "warning_stop_command". Čislo1 MUSÍ být větší jak číslo2. Tím se zabrání neustálým varováním, pokud by hodnota oscilovala kolem hodnoty číslo1.
warning_command"příkaz" Tento příkaz se provede pouze pokud je vyhlášen poplach. Pokud se v textu příkazu vyskytne string "%x", bude nahrazen aktuální získanou hodnotou. Například
"echo | mail -s 'pozor pruser' admin@example.com"
Pošle prázdný mail s varovným předmětem. Ohledně vyhlašování poplachu se podívejte na "warning"
warning_stop_command"příkaz" Tento příkaz se provede pouze pokud byl vyhlášen poplach a kritická hodnota již poklesla pod zadanou mez (číslo2). Pokud se v textu příkazu vyskytne string "%x", bude nahrazen aktuální hodnotou. Například:
"echo | mail -s 'pruser pominul' admin@example.com"
Pošle prázdný mail s uklidňujícím předmětem. Ohledně vyhlašování poplachu se podívejte na "warning"
text"text"""Stručný popisek služby, bude zobrazen při horním okraji obrázku
text_color"#rrggbb""#000000"Barva textu na obrázku

Popis parametrů obrázku

Příklady použití:

Pracuje s průměrným zatížením za 15 minut a pokud toto zatížení stoupne nad 5, vyšle varovnou zprávu s kritickou hodnotou, a až klesne na 2, odvolá varování:
service lavg15
     text = "Průměrný load za 15min"
     interval = "15m"
     regex = "\d+\.\d+ \d+\.\d+ (\d+\.\d+)"
     filename = "/proc/loadavg"
     warning = 5,2
     warning_command = "echo 'Zatizeni stouplo na %x' | mail -s 'VAROVANI' admin@example.com"
     warning_stop_command = "echo 'Zatizeni kleslo na %x' | mail -s 'OK' admin@example.com"
Kontrola velikosti adresáře /sklad:
service sklad
     text = "Velikost skladu"
     interval = "2h"
     command = "ls -l /sklad |awk '/^-/ {s+=$5} END {print s}'"
     data = "byte"
Test, zda-li je server přístupný (graf nás nezajímá). Obvykle se testuje příkazem ping, pokud vše proběhne v pořádku, ping vrací exit status 0, v případě nedostupnosti serveru vrací jinou hodnotu.
service server
     text = "Dostupnost serveru 1.2.3.4"
     interval = "1h"
     graph_create = False
     command = "ping -c1 1.2.3.4 > /dev/null 2>&1 ; echo $?"
     warning = 1,0
     warning_command = "echo | mail -s 'POZOR, server 1.2.3.4 nedostupny' admin@example.com"
     warning_stop_command = "echo | mail -s 'OK, server 1.2.3.4 jiz dostupny' admin@example.com"
Graf ukazující obsazenost paměti RAM v procentech. K dispozici jsou 2 GiB RAM:
service memory
     text = "Využívaná paměť"
     interval = "1m"
     command = "free -b"
     regex = "^Mem: *\d+ +(\d+) "
     data = "percent"
     percent_100 = 2124279808

Chcete vědět ještě víc?

Na stránce pro programátory najdete jak přistupovat k jednotlivým službám v programu.

Valid HTML 4.01 Transitional