Notatku LanKontroleru Pluginu

Uwaga, żeby sobie nic nie ponadpisywać, zrobić kopię i przejrzeć ten kod. Dawno to było, USE AT OWN RISK:)
Nie mam opcji testu na takich wersjach, przepisuję i adaptuję z backupa, gdzie miałem inny swój plugin na zbliżonych wersjach.
Generalnie na dzień dzisiejszy przepisałbym to uwzględniając wersję LK i zbyt niskie temperatury, oraz parę innych rzeczy 😉

Plugin ma wylądować w /usr/lib/nagios/plugins/:

wget "https://exchange.nagios.org/components/com_mtree/attachment.php?link_id=5384&cf_id=24" -O /usr/lib/nagios/plugins/check_lc_temp

Uprawnienia do wykonywania:

chmod +x /usr/lib/nagios/plugins/check_lc_temp

W pierwszej kolejności sprawdzenie czy działa plugin(generalnie czy są zależności itp.). Jeśli temperatura będzie trzycyfrowa to mamy encountera z nowszą wersją LK(jako dirty hack można próbować thresholdy dać trzycyfrowe przełączniki -w oraz -c i stworzyć dwie osobne komendy dla nowych i starych LK).

STATE UNKNOWN na dzień dobry informuje o prawdopodobieństwie braku zależności.

Good:

┌─[root@nagios]─[~]
└──╼ /usr/lib/nagios/plugins/check_lc_temp -H 192.168.1.1
STATE CRITICAL - 50
┌─[✗]─[root@nagios]─[~]
└──╼ /usr/lib/nagios/plugins/check_lc_temp -H 192.168.1.2
STATE OK - 23

Definicja komendy sprawdzania temperatury z LK:

┌─[root@nagios]─[~]
└──╼ cat /etc/nagios3/command_check_lc_temp.cfg
# 'check_lc_temp' command definition
define command{
        command_name    check_lc_temp
        command_line    /usr/lib/nagios/plugins/check_lc_temp -H '$HOSTADDRESS$'
}

Hosty do sprawdzania:

┌─[root@nagios]─[~]
└──╼ cat /etc/nagios3/conf.d/service_check_lc_temp.cfg
define service {
	host_name LK1, LK2, LK3, LK4, LK5
	service_description check_lc_temp
	check_command check_lc_temp
	use service-template
}

Templatka usługi(uwaga na nadpisanie, może być wbudowana):

┌─[root@nagios]─[~]
└──╼ cat /etc/nagios3/conf.d/service_template.cfg
define service {
	name service-template
	active_checks_enabled 1
	max_check_attempts 3
	check_period 24x7
	notification_period 24x7
	notifications_enabled 1
	retain_status_information		1
	retain_nonstatus_information		1
	contact_groups admins
	register 0
}

Aktualizacja DeCha

Masz styczność z nowszą wersją LK prawdopodobnie… Aby operować na wartościach z miejscami po przecinku w całym kodzie trzeba zmienić kod pluginu(użyć bc na pobranej wartości itp., trzeba by testować, nie na dziś;) ). Dla samego sprawdzania można wykorzystać fakt, że:

decha

decha2

ergo (jeśli nic nie skopałem w kodzie[będziem rzeźbić]):
Definicja komendy sprawdzania temperatury z LK:

┌─[root@nagios]─[~]
└──╼ cat /etc/nagios3/command_check_lc_temp.cfg
# 'check_lc_temp' command definition -starsze LK
define command{
        command_name    check_lc_temp
        command_line    /usr/lib/nagios/plugins/check_lc_temp -H '$HOSTADDRESS$'
}

# 'check_lcnewer_temp' command definition - nowsze LK(w domyśle te same thresholdy co w default'cie oryg. pluginu)
define command{
        command_name    check_lcnewer_temp
        command_line    /usr/lib/nagios/plugins/check_lc_temp -H '$HOSTADDRESS$' -w 280 -c 350
}

Hosty do sprawdzania:

┌─[root@nagios]─[~]
└──╼ cat /etc/nagios3/conf.d/service_check_lc_temp.cfg
#starsze LK
define service {
	host_name starszyLK1, starszyLK2, starszyLK3, starszyLK4, starszyLK5
	service_description check_lc_temp
	check_command check_lc_temp
	use service-template
}

#nowsze LK
define service {
	host_name nowszyLK1, nowszyLK2, nowszyLK3, nowszyLK4, nowszyLK5
	service_description check_lcnewer_temp
	check_command check_lcnewer_temp
	use service-template
}

 

Aktualizacja DeCha #2

Zmiana(zmienia jedynie wyświetlanie dla potrzeb data retention i informacyjnych). Dla nowszych LK w definicji thresholdów nadal używaj formatu: 300=30.0 stopni etc.
W kodzie pluginu zmień(najlepiej zrób sobie osobny plik wykonywalny dla nowszej wersji LK):
#111

# Check if we met critical or warning threshold of $temperature and deal with it accordingly
if [ $temperature -gt $critical ];then
    echo "STATE CRITICAL - $temperature"
    exit $STATE_CRITICAL
elif [ $temperature -gt $warning ];then
    echo "STATE WARNING - $temperature"
    exit $STATE_WARNING
else
    echo "STATE OK - $temperature"
    exit $STATE_OK
fi

na (dirty hack :D):
#222

# Check if we met critical or warning threshold of $temperature and deal with it accordingly
#Sam musisz pilnowac, ktorej wersji LK uzywasz i ktory plugin ja sprawdza
tempdisplay=$(echo "scale=1;$temperature/10"|bc)
if [ $temperature -gt $critical ];then
    echo "STATE CRITICAL - $tempdisplay"
    exit $STATE_CRITICAL
elif [ $temperature -gt $warning ];then
    echo "STATE WARNING - $tempdisplay"
    exit $STATE_WARNING
else
    echo "STATE OK - $tempdisplay"
    exit $STATE_OK
fi

Wynik:

#111
┌─[✗]─[root@nagiostest]─[~/dechalktemptest]
└──╼ ./check_lcnewer_temp -H 192.168.1.1 -w 240 -c 300
STATE WARNING - 270

#222
┌─[✗]─[root@nagiostest]─[~/dechalktemptest]
└──╼ ./check_lcnewer_temp -H 192.168.1.1 -w 240 -c 300
STATE WARNING - 27.0

Co do definicji hostów… :

┌─[✗]─[root@nagiostest]─[~/dechalktemptest]
└──╼ cat /etc/nagios3/conf.d/host_nowszyLK1.cfg 
define host {
	use host-template
	host_name	nowszyLK1
	alias	nowszyLK1
	address	192.168.1.1
	contact_groups	admins
}

┌─[✗]─[root@nagiostest]─[~/dechalktemptest]
└──╼ cat /etc/nagios3/conf.d/host_nowszyLK2.cfg 
define host {
	use host-template
	host_name	nowszyLK2
	alias	nowszyLK2
	address	192.168.1.2
	contact_groups	admins
}

itd…

7 uwag do wpisu “Notatku LanKontroleru Pluginu

  1. Działa wyśmienicie – dziękuje bardzo
    p.s.
    jedyne co trzeba jeszcze ew. pozostawić wartości trzycyfrowe
    # Main
    critical=350
    warning=280

    root@server:/usr/lib/nagios/plugins# /usr/lib/nagios/plugins/check_lc_temp -H 192.168.1.19 -w 28 -c 35
    STATE CRITICAL – 25.1

    root@server:/usr/lib/nagios/plugins# /usr/lib/nagios/plugins/check_lc_temp -H 192.168.1.19 -w 280 -c 350
    STATE OK – 25.1

    Dorobię sobie jeszcze powiadomienia sms i bajka

    Dziękuję i pozdrawiam

    Polubienie

Dodaj komentarz