Monitoring TeskaLabs LogMan.io s Prometheus¶
Tato sekce doporučuje integraci monitoringu Prometheus s TeskaLabs LogMan.io.
Zahrnuje monitoring na úrovni infrastruktury uzlů clusteru a na úrovni aplikace platformy TeskaLabs LogMan.io a podpůrných služeb.
Rozsah a odpovědnosti
- Prometheus není nasazen jako část produktu TeskaLabs LogMan.io.
- Zákazník je zodpovědný za nasazení a údržbu vlastní infrastruktury Prometheus.
- TeskaLabs poskytuje doporučení, které metriky sbírat a monitorovat.
- TeskaLabs neposkytuje předpřipravená pravidla alertů pro Prometheus.
- Zákazník nebo implementační partner vytváří scrape konfiguraci Prometheus, pravidla alertů a dashboardy.
Popis infrastruktury¶
| Komponenta | Podrobnosti |
|---|---|
| Aplikace | TeskaLabs LogMan.io |
| Nasazení | Víceuzlový cluster |
| Hardware | Servery Supermicro nebo Dell |
| Operační systém | Ubuntu Server 22.04 LTS |
| Kontejnerizace | Docker s Docker Compose |
| Telemetrická DB | Telemetrie kompatibilní s InfluxDB vystavená pro Prometheus |
| Klíčové služby | Elasticsearch, Apache Kafka, ZooKeeper, MongoDB, NGINX, InfluxDB |
Integrace Prometheus¶
Prometheus by měl scrapovat metriky z telemetrické vrstvy LogMan.io nebo z bridge/exporteru vystavujícího stávající metriky ve stylu InfluxDB.
Note
Názvy metrik v tomto dokumentu záměrně používají stávající pojmenování LogMan.io / InfluxDB. Nepřejmenovávejte je na nativní názvy Prometheus exporterů, pokud neměníte telemetrický pipeline.
Doporučené metriky a prahy¶
Metriky na úrovni systému¶
| Metrika | Dotaz | Práh / podmínka | Závažnost |
|---|---|---|---|
| System load 1m | system.load1 |
Varování při dlouhodobě nad očekávaným počtem jader CPU | Medium |
| System load 5m | system.load5 |
Varování při dlouhodobě nad očekávaným počtem jader CPU | Medium |
| System load 15m | system.load15 |
Varování při dlouhodobě nad očekávaným počtem jader CPU | Medium |
| Využití CPU | cpu.usage_user + cpu.usage_system |
Varování ≥ 85 % po dobu 15 minut | High |
| CPU I/O wait | cpu.usage_iowait |
Varování ≥ 30 %, kritické ≥ 50 % | High |
| Využití paměti | mem.used_percent |
Varování ≥ 80 %, kritické ≥ 90 % | High |
| Využití swap | swap.used_percent |
Varování ≥ 50 %, kritické ≥ 70 % | Medium |
| Využití SSD | disk.used_percent{path="/data/ssd"} |
Varování ≥ 65 %, kritické ≥ 80 % | High |
| Využití HDD | disk.used_percent{path="/data/hdd"} |
Varování ≥ 65 %, kritické ≥ 80 % | High |
Metriky aplikace LogMan.io¶
| Metrika | Dotaz | Práh / podmínka | Závažnost |
|---|---|---|---|
| Průměrné EPS příjmu logů | mean(non_negative_difference(last(commlink.event.in)) / 60) |
Náhlý pokles nebo dlouhodobý neočekávaný pokles | High |
| Maximální EPS příjmu logů | max(non_negative_difference(last(commlink.event.in)) / 60) |
Plánování kapacity | Medium |
| 95. percentil EPS příjmu logů | (lmio-charts) |
Plánování kapacity a detekce anomálií | Medium |
Kafka consumer lag¶
| Metrika | Dotaz | Filtr | Práh / podmínka | Závažnost |
|---|---|---|---|---|
| Parsec lag | kafka.consumer_group.lag |
group =~ /^lmio-parsec.*/ |
Lag nesmí nepřetržitě růst | Critical |
| Depositor lag | kafka.consumer_group.lag |
group = lmio_depositor |
Lag nesmí nepřetržitě růst | Critical |
| Correlator lag | kafka.consumer_group.lag |
group =~ /^lmio_correlator.*/ |
Lag nesmí nepřetržitě růst | Critical |
| Baseliner lag | kafka.consumer_group.lag |
group = lmio_baseliner |
Lag nesmí nepřetržitě růst | High |
| Watcher lag | kafka.consumer_group.lag |
group = lmio_watcher |
Lag nesmí nepřetržitě růst | High |
| ASAB IRIS lag | kafka.consumer_group.lag |
group = asab-iris |
Lag nesmí nepřetržitě růst | High |
| Alert Management lag | kafka.consumer_group.lag |
group = lmio-alerts |
Lag nesmí nepřetržitě růst | High |
Monitoring Elasticsearch¶
| Metrika | Dotaz | Práh / podmínka | Závažnost |
|---|---|---|---|
| Stav clusteru | elasticsearch_cluster_health.status |
Musí být green | Critical |
| Relokující se shardy | elasticsearch_cluster_health.relocating_shards |
Po údržbě by mělo vrátit na 0 | Medium |
| Nepřiřazené shardy | elasticsearch_cluster_health.unassigned_shards |
Musí být 0 | High |
| Aktivní shardy | elasticsearch_cluster_health.active_shards |
Sledovat neočekávané změny | Medium |
| Aktivní uzly | last(elasticsearch_clusterstats_nodes.count_total) |
Musí odpovídat očekávanému počtu uzlů | Critical |
| Neaktivní uzly | max(elasticsearch_clusterstats_nodes.count_total) - last(elasticsearch_clusterstats_nodes.count_total) |
Musí být 0 | Critical |
| Shardy na index | _cat/shards nebo _cat/indices seskupené podle indexu |
Sledovat nadměrný počet shardů | Medium |
| Velikost indexu | elasticsearch_indices_stats_total.store_size_in_bytes |
Prozkoumat příliš velké indexy | Medium |