Nuo Plausible statistikos kaupimo, šis tekstas buvo skaitytas 89 kartą/us.
Šio teksto atnaujinimo ar rašymo laikas jau yra senesnis, kaip vieneri metai, tad per šį laiką galėjo mano nuomonė pasikeisti bei aptartos konfigūracijos.
Tekstas buvo atnaujintas: 2020-05-01.
Kadangi esu statistikos mini fanas ir senokai girdėjau apie tokią programą: Grafana, kuri gali kaupti įvairias statistikas viename lange.
Reddit’e esu matęs labai įdomių variantų, kai viskas yra apjungiama.
Kaip pavyzdys, taip atrodo sistemų monitoringas:
Apjungiama daug duomenų iš įvairių įrenginių.
Duomenis nuo UPS, ar servisai pasiekiami, NAS duomenys, pFsense.
Realiai galimybių yra daug, bet viską pakurti gali užtrukti.
Kaip atrodo Grafana pas mane
Tai langas kuris rodo statistiką iš Mikrotik routerio.
Rodo interneto srautą kuris praeina pro kiekvieną portą.
Šitas langas rodo NUC statistiką.
Dar reiktų susijungti kitus likusius savo serverius ir pagrindinius langus susimesti į vieną.
Įrašome Grafana į sistemą
Debian sistemoje:
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
sudo apt update
sudo apt install grafana
Startuojam:
sudo systemctl start grafana-server
Norint jeigu startuotų su sistema:
sudo systemctl enable grafana-server
Tikriname ar startavo:
sudo systemctl status grafana-server
Turime gauti:
● grafana-server.service - Grafana instance Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; disabled; vendor preset: enabled) Active: active (running) Docs: http://docs.grafana.org Main PID: 13630 (grafana-server) Tasks: 7 (limit: 1152) ...
Jeigu naudojama kitos sistemos, tai galima rasti visas instrukcijas pasinaudojus Google.
Kaip veikia Grafana
Iš pradžių reiktų prisijungti prie Grafanos:
ip_adresas:3000
Grafana po defualt naudoja 3000 prievadą.
Atsidarius puslapi reikės prisijungti.
Standartinis vartotojas ir kodas: admin
Prisijungus reiktų pasikeisti.
Norint pradėti reikia pridėti data source
Tada reikia spausit: Add Data Source
Ir va prasideda įdomioji dalis, reikia nurodyti DB bazę, mano naudojami ir dažnai sutinkami:
InfluxDB ir Prometheus.
Reikės šių programų taip pat.
NUC duomenis renku su InfluxDB ir Telegraf, dashboard kurį naudoju galime rasti Grafana puslapyje.
Dashboard – sudėti jau langai, tai palengvina darbą, kai pačios Grafanos dar neina perprasti.
Dešiniajame kampe rašo:
Svarbiausi Data Sources
ir Collector
.
Tai dar dvi programos kurių reikės.
InfluxDB dokumentacijoje instrukcijos, kaip reikia įrašyti, taip pat Telegraf instrukcijos.
Principas toks: Telegraf renka duomenis iš sistemos > InfluxDB sudeda į DB > Grafana atvaizduoja.
Reikės pakoreguoti Telegraf conf failą:
sudo nano /etc/telegraf/telegraf.conf
Mano naudojamas conf failas:
[global_tags] [agent] interval = "10s" round_interval = true metric_batch_size = 1000 metric_buffer_limit = 10000 collection_jitter = "0s" flush_interval = "10s" flush_jitter = "0s" precision = "" hostname = "" omit_hostname = false [[outputs.influxdb]] urls = ["http://localhost:8086"] database = "telegraf_metrics" retention_policy = "" write_consistency = "any" [[inputs.cpu]] percpu = true totalcpu = true collect_cpu_time = false report_active = false [[inputs.disk]] ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"] [[inputs.diskio]] [[inputs.kernel]] [[inputs.mem]] [[inputs.processes]] [[inputs.swap]] [[inputs.system]] [[inputs.net]] interfaces = ["eth", "enp0s[0-1]", "lo", "wg"] [[inputs.conntrack]] files = ["ip_conntrack_count","ip_conntrack_max", "nf_conntrack_count","nf_conntrack_max"] dirs = ["/proc/sys/net/ipv4/netfilter","/proc/sys/net/netfilter"] [[inputs.ethtool]] interface_include = ["enp2s0"] [[inputs.netstat]] [[inputs.nstat]] [[inputs.internal]] [[inputs.interrupts]] [[inputs.linux_sysctl_fs]] [[inputs.sensors]] [[inputs.smart]] use_sudo = true attributes = true
Gali reikėti pakoreguoti output ip adresą, dabar palikau localhost.
Tada reikės startuoti/perkrauti Telegraf.
sudosystemctl start telegraf
Taip pat InfluxDB:
sudo systemctl start influxdb
Grafanoje paspaudžiame Add Data Source
ir pasirenkame InfluxDB
Tada prašo suvesti kelis duomenis:
Reikia įvesti URL, tai bus tas adresas kuris nurodytas Telegraf output conf faile, conf faile prievadas yra nurodytas kuriame dirba InfluxDB.
Taip pat riekia nurodyti DB:
DB apsirašo telegraf conf faile.
Tada spaudžiame Save & Test
ir turi parodyti pranešimą: Data source is working
.
Tada lieka kopijuoti Dashboard id
:
Ir Grafanoje einame į:
Atsidarius Import langui pirmame lange įkeliam tą ID ir tada automatiškai įkelia viską:
Tereikia nurodyti InfluxDB telegraf.
Spaudžiame Import
ir turi atsirasti statistikos kurios bus pradedamos rinkt nuo šio momento.
Grafanos galimybės
Ką galima nuveikti.
Realiai galimybių yra labai daug, duomenis galima rinkti iš bet ko beveik, dažnai įvairiuose puslapiuose prijungia prie MySQL (prie bet kokios DB ant kuris sukasi puslapis) ir gaunama įvairūs duomenys ką veikia lankytojai, koks srautas ir panašiai.
Galima pasidaryti visų namų dashboard, jog rodytų kur atidarytos durys, ar dega lempos, signalizacija veikia ir panašiai, kitaip sakant smarthouse monitoringas.
Trumpai, ką dar seku
Dėl Mikrotik, naudoju šį Dasboard. Pajungimas gan ilgokas, reikės: Exporter, Prometheus SNMP Exporter, bei Prometheus ir Mikrotik routeryje įjungti SNMP.
Yra ir kitų variantų, bet šis kažkaip geriau startavo pas mane.
Taip pat dar naudoju Haproxy sekimui.
Dar iki galo visko nesusidėjau, bet dar patiko jog įmanoma pasidaryti jog gautum pranešimą jeigu kažkas įvyksta.
Tarkime namie koks sensorius sureaguoja ir tada duodamas pranešimas jog kažkas įvyko.
Įdomi programa, susidėlioti viską gali ir užtrukti, bet finalinis vaizdas labai gražus.