Linux за българи: Форуми

BSD секция => Настройки на софтуер => Темата е започната от: anakinn в Mar 05, 2015, 10:53



Титла: nagios period check
Публикувано от: anakinn в Mar 05, 2015, 10:53
Здравейте,

Прегледах темите за нагиос, но не открих това, което търся.
Freebsd 9.3, nagios 3.5

Това, което ме интересува е периода на проверка на дадена услуга в нагиос.
Ползвам следните настройки:
nagios.cfg
command_check_interval=-1

в abs.cfg

define host{
        host_name               abs
        use                     freebsd-server
        address                 192.168.10.19
        check_period            24x7
        check_interval          5
        retry_interval          1
        max_check_attempts      7
        check_command           check-host-alive
        notification_period     24x7     
        notification_interval   3         
        notification_options    d,r       
        contact_groups          admins
        register                1
        }

define service{
        use                             generic-service     
        host_name                       abs
        service_description             HTTP
        check_command                   check_http
        notifications_enabled           1
        contact_groups                  admins
        }

Когато спря апачето на машина, нагиос проверява 3 пъти през 3 минути и чак тогава
изпраща мейл. Като цяло това може би не е лоша практика, но има ли начин за определени
услуги, когато те са недостъпни да направи 2,3,4,5 проверки през 30 секунди примерно?

Т.е. регулярното проверяване на услуга/хост да си бъде през 5/10мин, но когато нещо падне
да прави по-често проверката, с цел по-бързо известяване.


Титла: Re: nagios period check
Публикувано от: BRADATA в Mar 05, 2015, 13:56
Като за начало погледна ли тук? http://nagios.sourceforge.net/docs/3_0/toc.html

Щото нагиоса има милион опции за финна настройка.... Хинт: статусите биват хард и софт ( http://nagios.sourceforge.net/docs/3_0/statetypes.html )


Титла: Re: nagios period check
Публикувано от: anakinn в Mar 05, 2015, 16:08
Доста съм гледал из него както и примери из нета, но или не схващам, или концептуално бъркам,
или и аз не знам вече. Така както съм настроил услугите ми харесва, просто някои искам да ги направя
по-критични така да се каже.

Пробвах и така:
define service{
#        name                            special-service
#        host_name                      abs#
#       service_description             proftpd
#        check_command                   check_tcp!21
#        notifications_enabled           1
#       contact_groups                  admins
#        max_check_attempts              3
#       check_period                    24x7
#        normal_check_interval           20
#        retry_check_interval            3
#        notification_interval           60
#        }

пак използва същите интервали за време на реакция.


Титла: Re: nagios period check
Публикувано от: BRADATA в Mar 05, 2015, 18:07
Тук http://nagios.sourceforge.net/docs/3_0/objectdefinitions.html погледна ли?

Цитат
max_check_attempts:  This directive is used to define the number of times that Nagios will  retry the host check command if it returns any state other than an OK  state.  Setting this value to 1 will cause Nagios to generate an alert  without retrying the host check.  Note: If you do not want to check the  status of the host, you must still set this to a minimum value of 1.  To  bypass the host check, just leave the check_command option blank. 
check_interval:  This directive is used to define the number of "time units" between  regularly scheduled checks of the host.  Unless you've changed the interval_length ($2) directive from the default value of 60, this number will mean minutes.  More information on this value can be found in the check scheduling ($2) documentation. 
retry_interval:  This directive is used to define the number of "time units" to wait  before scheduling a re-check of the hosts.  Hosts are rescheduled at the  retry interval when they have changed to a non-UP state.  Once the host  has been retried max_check_attempts times without a change in its status, it will revert to being scheduled at its "normal" rate as defined by the check_interval value. Unless you've changed the interval_length ($2) directive from the default value of 60, this number will mean minutes.  More information on this value can be found in the check scheduling ($2) documentation. 


Титла: Re: nagios period check
Публикувано от: anakinn в Mar 05, 2015, 18:32
Нещо с това unit time бъркам нещата.

Добавяйки тези в сървиса
        max_check_attempts              2
        check_interval                  30s
        retry_interval                  1

проверява на 90секунди някъде 2 пъти.


Титла: Re: nagios period check
Публикувано от: romeo_ninov в Mar 05, 2015, 19:21
Нещо с това unit time бъркам нещата.

Добавяйки тези в сървиса
        max_check_attempts              2
        check_interval                  30s
        retry_interval                  1

проверява на 90секунди някъде 2 пъти.
Нагиос не е система за мониторинг в реално време. В зависимост от боря на пробите 30 секунди може да се окаже много малък интервал. Каква е причината да е толкова малък? И не е ли по-добре да ползвате скрипт на машината за целта (макар че как ще го пуснете на 30 секунди е отделна тема) 


Титла: Re: nagios period check
Публикувано от: anakinn в Mar 06, 2015, 10:35
Съгласен съм.
Това искам да го ползвам за 2-3 сървиса (от сумарно 100-120), за които е ясно, че
в 90% от случаите алармата е истинска и затова ми се иска тях да ги следа
малко по-често отколкото другите.

Точно както е описано там - услуги с висок приоритет.


Титла: Re: nagios period check
Публикувано от: romeo_ninov в Mar 06, 2015, 10:55
Съгласен съм.
Това искам да го ползвам за 2-3 сървиса (от сумарно 100-120), за които е ясно, че
в 90% от случаите алармата е истинска и затова ми се иска тях да ги следа
малко по-често отколкото другите.

Точно както е описано там - услуги с висок приоритет.
Пробвайте на минута. Или си напишете демон (но нека да не е шел скрипт), който да праща трап до пасивен чек


Титла: Re: nagios period check
Публикувано от: anakinn в Mar 12, 2015, 17:06
Да, така ми се струва по-правилно. Оставих нагиоса на по-голям период от
време да проверява и си написах демон на две машини за тези два сървиза.

Друго да питам, че и там не ми е ясно.

Плъгините на нагиос къде се слагат ?
тук -> /usr/local/libexec/nagios  ?

Да кажем искам да ползвам това ($2)
После трябва да се опише някъде и как се ползва точно, може ли пример?


Титла: Re: nagios period check
Публикувано от: romeo_ninov в Mar 12, 2015, 17:19
При моите инсталации нагиос си има собствено дърво (стил chroot) така че си нямам идея. Но ако пробвате да видите какви файлове са инсталирани в пакет с име подобно на nagios-plugins може да ви даде идея къде стандартно се изпълняват. Иначе може да е всякъде стига потребителя с който стартира нагиос да има права да изпълнява плъгина.
А дефинициите са нещо от рода:
Код:
define command {
        command_name    check_snmp_running
        command_line    $USER2$/check_snmp_running $HOSTADDRESS$ $ARG1$
}
като ако не ви се играе да дефинирате USER2 няма проблем директно да зададете пълния път до плъгина


Титла: Re: nagios period check
Публикувано от: anakinn в Mar 12, 2015, 18:54
В commands слагам

define command{
        command_name    check_smb
        command_line    /usr/local/etc/nagios/plugins/check_smb $HOSTADDRESS$
        }


B abs.conf дописвам
define service{
        use                             generic-service         ; Name of service template to use
        host_name                        abs
        service_description            smb
        check_command                check_smb
        notifications_enabled           1
        }

и резултата е (NULL)
нещо пропускам ...


Титла: Re: nagios period check
Публикувано от: romeo_ninov в Mar 13, 2015, 09:17
Пробвайте да изпълните командата от шел и вижте какво връща. Освен това проверете дали няма някакви неизпълнени изисквания (самба библиотеки или подобно), опитайте с ИП адрес вместо име на хост


Титла: Re: nagios period check
Публикувано от: anakinn в Mar 13, 2015, 10:46
В момента check_smb изглежда така:
--------------------------------------------------
REVISION=1.0
PROGNAME=`/usr/bin/basename $0`
PROGPATH=`echo $0 | /usr/bin/sed -e 's,[\\/][^\\/][^\\/]*$,,'`

#. $PROGPATH/utils.sh
. /usr/local/libexec/nagios/utils.sh

usage () {
    echo "\
Nagios plugin to check if (anonymous) access to SMB on host works.

Usage:
  $PROGNAME -H <host>
  $PROGNAME --help
  $PROGNAME --version
"
}

help () {
    print_revision $PROGNAME $REVISION
    echo; usage; echo; support
}

if [ $# -lt 1 ] || [ $# -gt 2 ]; then
    usage
    exit $STATE_UNKNOWN
fi

while test -n "$1"; do
    case "$1" in
        --help | -h)
            help
            exit $STATE_OK;;
        --version | -V)
            print_revision $PROGNAME $REVISION
            exit $STATE_OK;;
        -H)
            shift
            host=$1;;
        *)
            usage; exit $STATE_UNKNOWN;;
    esac
    shift
done

stdout=`/usr/local/bin/smbclient -U guest -N -L "$host" 2>&1`

if [ $? -eq 0 ]; then
    header=`echo "$stdout" | grep Server= | head -n 1`
    echo "OK $header"
    exit $STATE_OK
else
    err=`echo "$stdout" | head -n 1`
    echo "CRITICAL SMB anon access: $err"
    exit $STATE_CRITICAL
fi
---------------------------------------------------------------
commands.cfg
define command{
        command_name    check_smb
        command_line    /usr/local/etc/nagios/plugins/check_smb $HOSTADDRESS$
        }
-----------------------------------------------------------------
abs.cfg
define service{
        use                             generic-service         ; Name of service template to use
        host_name                       abs
        service_description             chec_smb
        check_command                   check_smb
        notifications_enabled           1
        contact_groups                  admins
        }


Когато мине нагиоса казва:
nagios.log
SERVICE ALERT: abs;chec_smb;UNKNOWN;HARD;3;Nagios plugin to check if (anonymous) access to SMB on host works

В services виждам:
     UNKNOWN   (for 0d 0h 2m 46s)
Status Information:   Nagios plugin to check if (anonymous) access to SMB on host works.

Usage:
check_smb -H <host>
check_smb --help
check_smb --version
\n

и

 UNKNOWN   (for 0d 0h 4m 29s)
Status Information:   Nagios plugin to check if (anonymous) access to SMB on host works.

Usage:
check_smb -H <host>
check_smb --help
check_smb --version
\n



Титла: Re: nagios period check
Публикувано от: romeo_ninov в Mar 13, 2015, 10:52
Пробвайте да я изпълните директно от командната линия така:
/usr/local/etc/nagios/plugins/check_smb -H име_на_хоста
Ако работи оправете записа за дефиниране на командата
Код:
define command{
        command_name    check_smb
        command_line    /usr/local/etc/nagios/plugins/check_smb -H $HOSTADDRESS$
        }


Титла: Re: nagios period check
Публикувано от: anakinn в Mar 13, 2015, 11:08
Благодаря, разбрах къде греша
   
OK   03-13-2015 11:02:54   0d 0h 0m 9s   1/3   OK Domain=[CENTRAL] OS=[Unix] Server=[Samba 3.6.9]

пп. има ли как да взема името на хоста, а не групата (CENTRAL) ?


Титла: Re: nagios period check
Публикувано от: romeo_ninov в Mar 13, 2015, 11:12
Благодаря, разбрах къде греша
   
OK   03-13-2015 11:02:54   0d 0h 0m 9s   1/3   OK Domain=[CENTRAL] OS=[Unix] Server=[Samba 3.6.9]

пп. има ли как да взема името на хоста, а не групата (CENTRAL) ?
Проверете какви команди приема smbclient и модифицирайте плъгина. Аз лично нямам идея :)


Титла: Re: nagios period check
Публикувано от: anakinn в Mar 13, 2015, 11:17
Така както гледах няма :-)

Благодаря !


Титла: Re: nagios period check
Публикувано от: anakinn в Mar 18, 2015, 10:54
Изпитвам разни проблеми със снмп и реших да пробвам нрпе.

На abs сървъра инсталирах nrpe, chown nagios:nagios на плъгин директорията
в nrpe.cfg добавих
command[check_data]=/usr/local/libexec/nagios/check_disk -w 20% -c 10% -p /data

На сървъра, където работи нагиос с nrpe.cfg имам:

command[check_storage]=/usr/local/libexec/nagios/check_disk -w 20% -c 10% -p /storage
command[check_data]=/usr/local/libexec/nagios/check_disk -w 20% -c 10% -p /data

/usr/local/libexec/nagios както и файловете вътре са nagios:nagios

в commands.cfg добавих:
define command {
        command_name  check_nrpe2
        command_line  /usr/local/libexec/nagios/check_nrpe2 -H $HOSTADRESS$  -c $ARG1$
        }

в abs.host

define service{
        use                             generic-service         ; Name of service template to use
        host_name                       abs
        service_description             root
#        check_command                   $USER1$/check_nrpe -H $HOSTADRESS$ -c check_root
        check_command                   check_nrpe2!check_root
        notifications_enabled           1
        contact_groups                  admins
        }

Когато го пускам през конзола:
/usr/local/libexec/nagios/check_nrpe2 -H 192.168.10.19 -c check_root
DISK OK - free space: / 7894 MB (78% inode=91%);| /=2142MB;8728;9819;0;10910

Когато направи проверка през уеб казва:
SERVICE ALERT: abs;root;WARNING;SOFT;1;(null)

Къде бъркам ?



Титла: Re: nagios period check
Публикувано от: romeo_ninov в Mar 18, 2015, 12:17
Това:
Код:
command_line  /usr/local/libexec/nagios/check_nrpe2 -H $HOSTADRESS$  -c $ARG1$
е добре да е:
Код:
command_line  /usr/local/libexec/nagios/check_nrpe2 -H $HOSTADDRESS$  -c $ARG1$

и за всеки случай погледнете какво пише в лога
А и не виждам в клиента да е дефинирано check_root


Титла: Re: nagios period check
Публикувано от: anakinn в Mar 18, 2015, 13:09
Въобще не обърнах внимание на грешката, голям съм...
в commands имам:

като това не го подкарах също
define command {
        command_name  check_nrpe2
        command_line  /usr/local/libexec/nagios/check_nrpe2 -H $HOSTADDRESS$  -c $ARG1$
        }

ползвам
define command {
        command_name  check_root
        command_line  /usr/local/libexec/nagios/check_nrpe2 -H $HOSTADDRESS$  -c check_root
        }

в abs.conf
        check_command                   check_root

е достатъчно
DISK OK - free space: / 7894 MB (78% inode=91%):

Благодаря !