check_load_multi_cpu - obciążenie rdzeni CPU

Cytat z gielo data 2024-11-01, 11:29Moduł monitoruje obciążenie poszczególnych rdzeni procesora (cpu), by po przekroczeniu ustalonej wartości np. 15% wysłać na maila odpowiedni alert.
Paczka do pobrania check_load_multi_cpu_v1.4
Module Setup
1. Extract the package to `/etc/monit/custommodules/`. If the `custommodules` directory does not exist, create it.
2. Adjust settings in the `config.cpp` file if needed.
3. Run the `gen.sh` script. This will create the module's executable file.
4. Add the following entry to the `/etc/monit/monitrc` file:# check_load_multicpu
check program load_check_multi_cpu with path "/etc/monit/custommodules/check_load_multi_cpu/check_load_multi_cpu"
every 2 cycles
if status != 0 then alert5. Reload Monit with the command:
$ systemctl reload monitModule Update
1. Replace the module files with the new version.
2. Run the `gen.sh` script.
3. Reload Monit with the command:
$ systemctl reload monitUruchomienie modułu
1. Rozpakuj paczkę do /etc/monit/custrommodules/ Jeśli nie masz katalogu custommodules, utwórz go
2. Zmień ustawienia w pliku config.cpp jeśli masz taką potrzebę
3. Uruchom plik gen.sh. Spowoduje to utworzenie pliku wykonywalnego modułu
4. Dodaj do pliku /etc/monit/monitrc poniższy wpis:# check_load_multicpu
check program load_check_multi_cpu with path "/etc/monit/custommodules/check_load_multi_cpu/check_load_multi_cpu"
every 2 cycles
if status != 0 then alert5. przeładuj monit poleceniem:
$ systemctl reload monitAktualizacja modułu
1. Zastąp pliki modułu, jego nowszą wersją
2. Uruchom plik gen.sh
3. przeładuj monit poleceniem:
$ systemctl reload monitchanelog
v1.4
- I have added `gen.sh`, responsible for automatically generating the module's executable file (its automatic compilation)
- I have added the option to display messages in English.- Dodałem gen.sh, odpowiedzialny za automatyczne generowanie plku wykonywalnego modułu (automatyczną jego kompilację)
- Dodałem możliwość wyświetlania komunikatów w języku angielskimv1.3
- I have added incident occurrence dates to the journal entries; without this, the journal was not very useful.
- uzupełniłem wpisy do dziennika o datę wystąpienia incydentu, bez tego dziennik był mało użyteczny.
v1.2
- I have added a journal file to log information about CPU core load when it exceeds the defined maximum value. The journal can be disabled in the module's source code file, where the maximum CPU load value, in percentage, can also be set. By default, the journal file is enabled, and the maximum CPU core load threshold is set to 15%.
- dodałem plik dziennika, do którego wpisywane są informacje o obciążeniu rdzeni cpu po przekroczeniu zdefiniowanej wartości maksymalnej. Dziennik można wyłączyć w pliku z kodem źródłowym modułu. Można tam też zdefiniować wartość maksymalną dla cpu, w procentach. Domyślnie plik dziennika jest włączony, a wartość maksymalna dla obciążenia rdzeni cpu, jest ustawiona na 15%.
Uwaga: Moduł jest w stanie skutecznie wychwycić nagły skok obciążenia całego cpu (osobno na wszystkich jego rdzeniach), np. podczas ataku ddos lub w czasie innych nieprawidłowości. Zbyt niska wartość maksymalna jednak (niedostosowana do faktycznego obciążenia serwera) będzie skutkowała nadmiernym rozdęciem pliku dziennika. Należy więc dostosować tą wartość jak najdokładniej. Można także dodać odpowiedni wpis do crona, aby np. raz na tydzień kompresował nam plik dziennika. Moduł sam utworzy odpowiedni plik w przypadku jego braku po takiej kompresji.
Test obciążeniowy
% time seconds usecs/call calls errors syscall
100.00 0.003596 3596 1 wait4
0.00 0.000000 0 1 fcntl
0.00 0.000000 0 1 1 faccessat
0.00 0.000000 0 5 openat
0.00 0.000000 0 7 close
0.00 0.000000 0 1 pipe2
0.00 0.000000 0 6 read
0.00 0.000000 0 1 write
0.00 0.000000 0 7 newfstatat
0.00 0.000000 0 1 set_tid_address
0.00 0.000000 0 1 futex
0.00 0.000000 0 1 set_robust_list
0.00 0.000000 0 2 rt_sigprocmask
0.00 0.000000 0 3 brk
0.00 0.000000 0 9 munmap
0.00 0.000000 0 1 clone
0.00 0.000000 0 1 execve
0.00 0.000000 0 17 mmap
0.00 0.000000 0 10 mprotect
0.00 0.000000 0 3 prlimit64
0.00 0.000000 0 1 getrandom
0.00 0.000000 0 1 rseq100.00 0.003596 44 81 1 total
Moduł monitoruje obciążenie poszczególnych rdzeni procesora (cpu), by po przekroczeniu ustalonej wartości np. 15% wysłać na maila odpowiedni alert.
Paczka do pobrania check_load_multi_cpu_v1.4
Module Setup
1. Extract the package to `/etc/monit/custommodules/`. If the `custommodules` directory does not exist, create it.
2. Adjust settings in the `config.cpp` file if needed.
3. Run the `gen.sh` script. This will create the module's executable file.
4. Add the following entry to the `/etc/monit/monitrc` file:
# check_load_multicpu
check program load_check_multi_cpu with path "/etc/monit/custommodules/check_load_multi_cpu/check_load_multi_cpu"
every 2 cycles
if status != 0 then alert
5. Reload Monit with the command:
$ systemctl reload monit
Module Update
1. Replace the module files with the new version.
2. Run the `gen.sh` script.
3. Reload Monit with the command:
$ systemctl reload monit
Uruchomienie modułu
1. Rozpakuj paczkę do /etc/monit/custrommodules/ Jeśli nie masz katalogu custommodules, utwórz go
2. Zmień ustawienia w pliku config.cpp jeśli masz taką potrzebę
3. Uruchom plik gen.sh. Spowoduje to utworzenie pliku wykonywalnego modułu
4. Dodaj do pliku /etc/monit/monitrc poniższy wpis:
# check_load_multicpu
check program load_check_multi_cpu with path "/etc/monit/custommodules/check_load_multi_cpu/check_load_multi_cpu"
every 2 cycles
if status != 0 then alert
5. przeładuj monit poleceniem:
$ systemctl reload monit
Aktualizacja modułu
1. Zastąp pliki modułu, jego nowszą wersją
2. Uruchom plik gen.sh
3. przeładuj monit poleceniem:
$ systemctl reload monit
chanelog
v1.4
- I have added `gen.sh`, responsible for automatically generating the module's executable file (its automatic compilation)
- I have added the option to display messages in English.
- Dodałem gen.sh, odpowiedzialny za automatyczne generowanie plku wykonywalnego modułu (automatyczną jego kompilację)
- Dodałem możliwość wyświetlania komunikatów w języku angielskim
v1.3
- I have added incident occurrence dates to the journal entries; without this, the journal was not very useful.
- uzupełniłem wpisy do dziennika o datę wystąpienia incydentu, bez tego dziennik był mało użyteczny.
v1.2
- I have added a journal file to log information about CPU core load when it exceeds the defined maximum value. The journal can be disabled in the module's source code file, where the maximum CPU load value, in percentage, can also be set. By default, the journal file is enabled, and the maximum CPU core load threshold is set to 15%.
- dodałem plik dziennika, do którego wpisywane są informacje o obciążeniu rdzeni cpu po przekroczeniu zdefiniowanej wartości maksymalnej. Dziennik można wyłączyć w pliku z kodem źródłowym modułu. Można tam też zdefiniować wartość maksymalną dla cpu, w procentach. Domyślnie plik dziennika jest włączony, a wartość maksymalna dla obciążenia rdzeni cpu, jest ustawiona na 15%.
Uwaga: Moduł jest w stanie skutecznie wychwycić nagły skok obciążenia całego cpu (osobno na wszystkich jego rdzeniach), np. podczas ataku ddos lub w czasie innych nieprawidłowości. Zbyt niska wartość maksymalna jednak (niedostosowana do faktycznego obciążenia serwera) będzie skutkowała nadmiernym rozdęciem pliku dziennika. Należy więc dostosować tą wartość jak najdokładniej. Można także dodać odpowiedni wpis do crona, aby np. raz na tydzień kompresował nam plik dziennika. Moduł sam utworzy odpowiedni plik w przypadku jego braku po takiej kompresji.
Test obciążeniowy
% time seconds usecs/call calls errors syscall
100.00 0.003596 3596 1 wait4
0.00 0.000000 0 1 fcntl
0.00 0.000000 0 1 1 faccessat
0.00 0.000000 0 5 openat
0.00 0.000000 0 7 close
0.00 0.000000 0 1 pipe2
0.00 0.000000 0 6 read
0.00 0.000000 0 1 write
0.00 0.000000 0 7 newfstatat
0.00 0.000000 0 1 set_tid_address
0.00 0.000000 0 1 futex
0.00 0.000000 0 1 set_robust_list
0.00 0.000000 0 2 rt_sigprocmask
0.00 0.000000 0 3 brk
0.00 0.000000 0 9 munmap
0.00 0.000000 0 1 clone
0.00 0.000000 0 1 execve
0.00 0.000000 0 17 mmap
0.00 0.000000 0 10 mprotect
0.00 0.000000 0 3 prlimit64
0.00 0.000000 0 1 getrandom
0.00 0.000000 0 1 rseq
100.00 0.003596 44 81 1 total