Jak ręcznie uruchomić sprawdzanie nagios z wiersza poleceń?

24

Podczas definiowania i testowania nowych usług w nagios zrestartowałem nagios, następnie kliknąłem usługę i przełożyłem czek tak szybko, jak to możliwe, a następnie czekałem na sprawdzenie.

Czy istnieje bardziej skuteczny sposób to zrobić? Chciałbym użyć wiersza polecenia do uruchomienia tego konkretnego sprawdzenia i uzyskania danych wyjściowych.

cwd
źródło

Odpowiedzi:

31

Czasami trudno mi dokładnie zrozumieć, co robi wtyczka. Aby to rozgryźć, ustawiłem nagios w tryb debugowania z taką konfiguracją. debug_level=2048 Z nagios w trybie debugowania po prostu zmieniam debug_logplik debug_file=/var/log/nagios3/nagios.debug. Wymuś sprawdzenie, a zobaczysz dokładnie, jak polecenie jest uruchamiane. Jednak nie pozostawiłbym tego ustawienia normalnie, jest bardzo szczegółowe i szybko wypełnia plik dziennika.

Zoredache
źródło
niesamowite. jest to bardziej zgodne z tym, co miałem na myśli. tylko dlatego, że szukałem już w pliku command.cfg, które polecenia są uruchomione, ale chciałem wiedzieć, jakie flagi są ustawione. dzięki! :)
cwd 12.12.11
2
Będę również mentonować dla nowych użytkowników, którzy używają tail -fpozwolą ci nadal widzieć aktualizacje pliku w czasie rzeczywistym i control+canulują to.
cwd
2
Poziomy debugowania są binarne - 2048 włącza tylko wiadomości z makr. Aby włączyć wszystko, co chcesz ustawić poziom debugowania = 4095. (1 + 2 + ... + 2048)
jwg
18

To całkiem proste. Po prostu włóż cd (lub nie) do katalogu wtyczek (ta lokalizacja katalogu różni się w zależności od tego, jak go zainstalowałeś, ale sprawdź / usr / local / nagios lub / usr / lib / nagios).

Znajdź wtyczkę, którą chcesz uruchomić (jeśli nie jesteś pewien, porównaj to, co widzisz w katalogu wtyczek na swoim Linux-ie z wtyczkami znajdującymi się tutaj: http://exchange.nagios.org/directory/Plugins , lub spróbuj uruchomić „./plugin-name -h”, aby uzyskać informacje pomocy na temat wtyczki).

Metoda użycia którejkolwiek z tych „wtyczek” z wiersza poleceń jest taka sama jak w przypadku każdego innego skryptu Linux: po prostu uruchom „./plugin-name” z odpowiednimi flagami, które chcesz sprawdzić, i voila!

David W.
źródło
1
+1 ... a jeśli wydaje się to zbyt wielkim problemem, zawsze możesz spojrzeć na pliki konfiguracyjne Nagios, aby zobaczyć, jakie polecenie i parametry należy uruchomić. Znajduje się tam nawet lokalizacja katalogu wtyczek.
John Gardeniers,
5
I pamiętaj, że zawsze rób to z nagiosużytkownikiem su - nagios -s /bin/bash.
kwanty
miły. i -ładuje zmienne środowiskowe dla tego użytkownika?
cwd 12.12.11
Tak, jak każda inna flaga linux, „-” z dowolnymi flagami, które użyjesz załaduje flagę. (Gdybym uruchomił df -h na CLI Linuksa, używam flagi „h” - w przypadku polecenia df h oznacza „czytelny dla człowieka”.) Więc jeśli chcesz uruchomić sprawdzanie check_http z poziomu interfejsu CLI uruchomisz ./check_http -I, gdzie flaga I oznacza adres IP ( nagiosplugins.org/man/check_http ). nagiosplugins.org/man może być pomocny, podobnie jak katalog wtyczek, do którego dowiązałem wcześniej.
David W
Opcją pomocy powinno być --help. nagios-plugins.org/doc/guidelines.html
dmourati,
5

Biorę nieco bardziej brutalny kierunek niż @Zoredache, loguję się do serwera nagios i robię „choć prawda; ps pswwlx | grep NAGIOS_CHECK_NAME; gotowe”, a ja wymuszam ponowną kontrolę usługi, gdzie NAGIOS_CHECK_NAME jest albo część nazwy czeku lub adres IP serwera, którego szukam. Zwykle w ciągu kilku sekund pojawia się polecenie pełnego sprawdzenia, a następnie zabijam pętlę while i uruchamiam polecenie sprawdzania.

Tak, to jest całkowicie brutalna siła, ale <shrug> działa dla mnie.

Sean Reifschneider
źródło
Spróbuj „obserwować” zamiast pętli while. linux.about.com/library/cmd/blcmdl1_watch.htm
dmourati,
3

Możesz także wypróbować wtyczkę przechwytującą. Zasadniczo robi to samo, co poziom debugowania 2048, ale może być używany dla poszczególnych wtyczek. Daje to mniej mocy do przekopania.

http://www.waggy.at/nagios/capture_plugin.htm

Keith
źródło
1
Walczyłem, aby to zadziałało, nie jestem pewien, co robiłem źle (noob), ale sztuczka debug_level zadziałała dla mnie :)
sbditto85,
2

Przejdź do katalogu wtyczek - w moim przykładzie jest to

/usr/lib64/nagios/plugins/

Wpisz nazwę wtyczki - w moim przykładzie jest to

check_tcp

teraz uruchom pełne polecenie - (nazwa wtyczki) -H (nazwa hosta) -p (numer portu)

/usr/lib64/nagios/plugins/check_tcp -H myservername -p 8080

wydajność

TCP OK - 0.004 second response time on port 8080|time=0.004146s;;;0.000000;10.000000

Jednak w tym przykładzie numer portu jest opcjonalny

inny przykład -

w pliku konfiguracyjnym, który wygląda mniej więcej tak (myserver.cfg) i chcesz uruchomić check_cpu z wiersza poleceń

define service{
  use                             generic-service
  host_name                       myserver
  servicegroups                   windows
  service_description             CPU
  contact_groups                  sysadmin_email_only
  notification_options            w,c,r
  check_command                   check_nrpe!check_cpu
}

aby sprawdzić natychmiast (bez GUI zielony lub czerwony)

Spróbuj tego - (pełna ścieżka wtyczki) - H (nazwa serwera) -c (nazwa kontrolna)

/usr/lib64/nagios/plugins/check_nrpe -H spc7atc01 -c check_cpu

wyjście -

OK CPU Load ok.|'5'=4;80;90; '10'=3;80;90; '15'=3;80;90;

To jest to

Sharia Chowdhury
źródło