Serverovny.cz/Fórum/Jak nastavit upozornění pro vysokou zátěž CPU na serveru?

Jak nastavit upozornění pro vysokou zátěž CPU na serveru?

Mám server, který občas zažívá opravdu vysokou zátěž CPU a já bych chtěl mít nějaké upozornění, když se dostane do kritických hodnot. Mám Linux server a používám různý monitorovací software, ale nejsem si jistý, jak přesně nastavit ta upozornění. Potřeboval bych vědět, jestli je lepší použít nějaký skript nebo jestli to jde udělat přímo v tom monitorovacím nástroji, co mám. Zkoušel jsem se dívat do dokumentace, ale většinou je to dost technické a já jsem spíš začátečník. Myslím, že by bylo dobré dostávat email nebo sms, když CPU překročí určitý limit třeba 80 nebo 90 procent. Nechci, aby mi něco uniklo, takže potřebuju mít přehled. Taky by mě zajímalo, jestli je nutné mít nějaké další aplikace nebo pluginy nainstalované pro tohle nastavení. Mám pocit, že v minulosti jsem narazil na něco jako cron joby nebo tak nějak, ale nejsem si jistý jak to funguje. Pokud jste někdo už nastavovali podobné upozornění na vysokou zátěž CPU, mohl byste mi prosím poradit? Jaké nástroje používáte a jaký máte postup? Děkuju moc za pomoc!

171 slov
1.7 minut čtení
17. 6. 2024
Vojtěch Marek

Než začneš, ujisti se, že máš nějaký monitorovací nástroj, jako je třeba Nagios, Zabbix nebo něco podobnýho. Většina těchhle nástrojů už má zabudovanou možnost nastavení upozornění pro CPU. Například v Zabbixu si můžeš nastavit trigger, který ti pošle email, když zátěž překročí 80 procent. Stačí si projít sekci o notifikacích v jejich dokumentaci.

Pokud bys chtěl něco jednoduššího, můžeš napsat skript v bash, který každou minutu zkontroluje zátěž pomocí příkazu top nebo mpstat a když to přesáhne tvůj limit, tak použiješ mail příkaz na posílání emailu. Např.:

#!/bin/bash
LOAD=$(cat /proc/loadavg | awk '\{print $1\}')
if (( $(echo "$LOAD \> 0.8" | bc -l) )); then
    echo "High CPU load: $LOAD" | mail -s "CPU Alert" [email protected]
fi

Tenhle skript můžeš pak spustit jako cron job, což je takový plánovač úloh v Linuxu. Nastavíš ho tím způsobem, že přidáš do crontabu něco jako * * * * * /cesta/k/tvemu/skriptu.sh, což běží každou minutu.

Pokud chceš dostávat SMS, tak na to budeš potřebovat nějakou službu jako Twilio nebo něco podobného, co umí posílat SMS přes API.

Takže shrnuto, buď použij monitorovací nástroj s notifikacemi nebo udělej skript a cron job. Obě možnosti fungujou.

187 slov
1.9 minut čtení
19. 1. 2025
František Janků

Nastavit upozornění na vysokou zátěž CPU na Linux serveru není tak složité. Záleží dost na tom, jaký monitorovací nástroj máš. Pokud používáš něco jako Zabbix, Prometheus nebo Grafana, tak většinou mají možnost nastavit alarmy přímo v jejich rozhraní. Jen si nastavíš threshold, třeba nad 80% a pak přidáš notifikace na email nebo SMS.

Pokud chceš jít cestou skriptů, tak můžeš napsat jednoduchý bash skript, co používá příkaz top nebo mpstat. Skript by mohl vypadat nějak takhle:

#!/bin/bash
THRESHOLD=80
CPU_LOAD=$(top -bn1 | grep "%Cpu(s)" | sed "s/.*, *\\([0-9.]*\)%* id.*/\\1/" | awk '\{print 100 - $1\}')
if (( $(echo "$CPU_LOAD \> $THRESHOLD" | bc -l) )); then
  echo "Vysoká zátěž CPU: $CPU_LOAD%" | mail -s "Upozornění: Vysoká zátěž CPU" [email protected]
fi

Pak to můžeš spouštět pravidelně pomocí cron jobu. Otevři crontab pomocí crontab -e a přidej řádek jako */5 * * * * /cesta/k/tvemu/script.sh, což znamená, že se to spustí každých 5 minut.

Co se týče dalších aplikací, pokud ti tvůj monitorovací nástroj nedává možnosti alertů, pak ano, budeš potřebovat něco jako mailutils pro posílání emailů. Záleží na tom, co všechno už máš nainstalované. Takže buď použij integrované funkce monitorovacího softwaru nebo si udělej vlastní skript a cron job. Snad to pomůže!

194 slov
1.9 minut čtení
19. 1. 2025
Jaroslav Kořínek
Serverovny.cz/Články/Agregace monitoringu
Jak nastavit upozornění na základě shromážděných metrik: Případové studieUpozornění na základě metrik jsou klíčová pro efektivní správu serverů. V článku najdete konkrétní příklady, jak tato upozornění správně nastavit a op...
1000 slov
10 minut čtení
7. 9. 2023
Filip Procházka
Přečíst článek
Podobné otázky