Please or Zarejestruj się to create posts and topics.

internet_status - monitoruje dostęp do internetu

Moduł monitoruje dostęp do internetu. W przypadku braku dostępu do internetu robi odpowiedni wpis w pliku journal. Znajdzie on przede wszystkim zastosowanie tam, gdzie mamy podejrzenie, że nasze łącze internetowe nie jest najwyższej jakości i mogą zdarzać się krótsze lub dłuższe przerwy. Internet w domu, biurze itp. Moduł pozwala wychwycić takie sytuacje, robiąc odpowiednie wpisy w pliku journal.

W zależności od wybranej opcji (do ustawienia w conf.cpp), do sprawdzania połączenia z internetem moduł może korzystać z:

  • ping (najskuteczniejsza, ale najwolniejsza opcja)
  • iproute (równie skuteczna i dość szybka)
  • nmcli (najszybsza opcja, ale w niektórych konfiguracjach może generować tzw. false positive)

Paczka do pobrania internet_status_v1.1

Suma kontrolna MD5

Module Setup

1. Extract the package to /etc/monit/custommodules/. If the custommodules directory does not exist, create it.
2. Modify the settings in the config.cpp file if needed.
3. Run the autogen script. This will create the executable file for the module.
4. Add the following entry to the /etc/monit/monitrc file:

# internet_status
check program internet_status with path "/etc/monit/custommodules/internet_status/internet_status"
every 1 cycles
if status != 0 then alert

5. Reload Monit with the command:
$ systemctl reload monit

Module Update

1. Replace the module files with the newer version.
2. Run the autogen 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 autogen. Spowoduje to utworzenie pliku wykonywalnego modułu
4. Dodaj do pliku /etc/monit/monitrc poniższy wpis:

# internet_status
check program internet_status with path "/etc/monit/custommodules/internet_status/internet_status"
every 1 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 autogen
3. przeładuj monit poleceniem:
$ systemctl reload monit

-- chanelog --

v1.1

  • I simplified and optimized the program code
  • I added two additional methods for checking the internet connection (iproute and nmcli), configurable in conf.cpp
  • I added the ability to easily define custom messages in the conf.cpp file

 

  • Uprościłem i zoptymalizowałem kod programu
  • Dodałem dwie dodatkowe metody sprawdzania połączenia internetowego (iproute oraz nmcli), do ustawienia w conf.cpp
  • Dodałem możliwość prostego zdefiniowania własnych komunikatów w pliku conf.cpp

v1.0

  • I added the option to display messages in English
  • Dodałem możliwość wyświetlenia komunikatów po angielsku

v0.9

  • I added the ability to define custom IP addresses (a list for pinging) in the conf.cpp file. Any changes require recompiling the module.
  • Dodałem możliwość zdefiniowania własnych adresów Ip (listy do pingowania) w pliku conf.cpp. Każda zmiana wymaga powtórnej kompilacji modułu.

Test obciążeniowy

% time seconds usecs/call calls errors syscall

0.00 0.000000 0 1 1 faccessat
0.00 0.000000 0 5 openat
0.00 0.000000 0 5 close
0.00 0.000000 0 4 read
0.00 0.000000 0 1 write
0.00 0.000000 0 6 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 4 rt_sigaction
0.00 0.000000 0 4 rt_sigprocmask
0.00 0.000000 0 3 brk
0.00 0.000000 0 8 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 1 wait4
0.00 0.000000 0 1 prlimit64
0.00 0.000000 0 1 getrandom
0.00 0.000000 0 1 rseq

100.00 0.000000 0 77 1 total