Please or Zarejestruj się to create posts and topics.

Monit moduły obciążenia cpu

Udostępniam dwa moduły dla systemu monitorowania monit, o którym pisałem w artykule Monitorowanie serwera www.

Pierwszy sprawdza obciążenie procesora i po przekroczeniu zadanego obciążenia np. 20%, wysyła na maila stosowny komunikat o zdarzeniu i jaki proces za to odpowiada.

Drugi moduł sprawdza obciążenie każdego z rdzeni cpu i jeżeli wszystkie przekraczają ustalony limit np. 15% wysyłany jest odpowiedni komunikat do administratora.

Do czego można użyć niniejszych modułów Monit ? 

Pierwszy moduł można użyć np. do namierzenia problematycznych procesów. Zdarza się, że jakiś proces jak np. MySQL, czy ClamAV w losowych porach powoduje drastyczny wzrost obciążenia, by po kilku minutach wszystko wróciło do normy.  W takim przypadku możemy szybko zareagować na dany problem np. optymalizując swoją bazę danych.

Drugi moduł może się sprawdzić np. do wykrywania ataków DoS/DDoS, czy nadmiernego skanowania naszych stron np. testami AB. Jeśli obciążenie poszczególnych procesów np. dla PHP-FPM wzrośnie ponad miarę, to także powinniśmy otrzymać stosowny komunikat. Czasem także w okresie świąt obciążenie naszych stron potrafi wzrosnąć kilkukrotnie, co przy odpowiednim ustawieniu dla modułu powinno zaowocować konkretnym komunikatem.

Poniżej linki do modułów skompilowanych dla Raspberry Pi5 oraz kod źródłowy do samodzielnej kompilacji.

Żeby ustawić własne limity obciążenia, należy zmodyfikować odpowiednią opcję w pliku źródłowym modułu i samemu go skompilować. Jak wygląda polecenie do kompilacji zamieściłem w pliku źródłowym danego modułu.

Check Load CPU

Skompilowany moduł dla Raspberry Pi5

Plik źródłowy

Check Load Multi CPU

Skompilowany moduł dla Raspberry Pi5

Plik źródłowy

Wpisy jakie należy dodać do pliku konfiguracyjnego monitrc

check program load_check_cpu with path "/etc/monit/customscripts/check_load_cpu"
every 2 cycles
if status != 0 then alert

check program load_check_multi_cpu with path "/etc/monit/customscripts/check_load_multi_cpu"
every 2 cycles
if status != 0 then alert