Автор Тема: nagios period check  (Прочетена 6787 пъти)

anakinn

  • Напреднали
  • *****
  • Публикации: 190
    • Профил
nagios period check
« -: 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мин, но когато нещо падне
да прави по-често проверката, с цел по-бързо известяване.
Активен

BRADATA

  • Напреднали
  • *****
  • Публикации: 833
  • Distribution: Slackware/Mint/CentOS
  • Window Manager: console/KDE/LXDE
    • Профил
    • WWW
Re: nagios period check
« Отговор #1 -: Mar 05, 2015, 13:56 »
Като за начало погледна ли тук? http://nagios.sourceforge.net/docs/3_0/toc.html

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

anakinn

  • Напреднали
  • *****
  • Публикации: 190
    • Профил
Re: nagios period check
« Отговор #2 -: 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
#        }

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

BRADATA

  • Напреднали
  • *****
  • Публикации: 833
  • Distribution: Slackware/Mint/CentOS
  • Window Manager: console/KDE/LXDE
    • Профил
    • WWW
Re: nagios period check
« Отговор #3 -: 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 directive from the default value of 60, this number will mean minutes.  More information on this value can be found in the check scheduling 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 directive from the default value of 60, this number will mean minutes.  More information on this value can be found in the check scheduling documentation. 
Активен

anakinn

  • Напреднали
  • *****
  • Публикации: 190
    • Профил
Re: nagios period check
« Отговор #4 -: Mar 05, 2015, 18:32 »
Нещо с това unit time бъркам нещата.

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

проверява на 90секунди някъде 2 пъти.
« Последна редакция: Mar 05, 2015, 18:33 от anakinn »
Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: nagios period check
« Отговор #5 -: Mar 05, 2015, 19:21 »
Нещо с това unit time бъркам нещата.

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

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

0x2B|~0x2B

anakinn

  • Напреднали
  • *****
  • Публикации: 190
    • Профил
Re: nagios period check
« Отговор #6 -: Mar 06, 2015, 10:35 »
Съгласен съм.
Това искам да го ползвам за 2-3 сървиса (от сумарно 100-120), за които е ясно, че
в 90% от случаите алармата е истинска и затова ми се иска тях да ги следа
малко по-често отколкото другите.

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

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: nagios period check
« Отговор #7 -: Mar 06, 2015, 10:55 »
Съгласен съм.
Това искам да го ползвам за 2-3 сървиса (от сумарно 100-120), за които е ясно, че
в 90% от случаите алармата е истинска и затова ми се иска тях да ги следа
малко по-често отколкото другите.

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

0x2B|~0x2B

anakinn

  • Напреднали
  • *****
  • Публикации: 190
    • Профил
Re: nagios period check
« Отговор #8 -: Mar 12, 2015, 17:06 »
Да, така ми се струва по-правилно. Оставих нагиоса на по-голям период от
време да проверява и си написах демон на две машини за тези два сървиза.

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

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

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

romeo_ninov

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

0x2B|~0x2B

anakinn

  • Напреднали
  • *****
  • Публикации: 190
    • Профил
Re: nagios period check
« Отговор #10 -: 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)
нещо пропускам ...
Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: nagios period check
« Отговор #11 -: Mar 13, 2015, 09:17 »
Пробвайте да изпълните командата от шел и вижте какво връща. Освен това проверете дали няма някакви неизпълнени изисквания (самба библиотеки или подобно), опитайте с ИП адрес вместо име на хост
Активен

0x2B|~0x2B

anakinn

  • Напреднали
  • *****
  • Публикации: 190
    • Профил
Re: nagios period check
« Отговор #12 -: 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

Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: nagios period check
« Отговор #13 -: 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$
        }
Активен

0x2B|~0x2B

anakinn

  • Напреднали
  • *****
  • Публикации: 190
    • Профил
Re: nagios period check
« Отговор #14 -: 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) ?
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Spell check / Open Office
Настройка на програми
dilyan 5 3450 Последна публикация Aug 03, 2004, 16:07
от alabal
Конфигуриране на Nagios
Настройка на програми
George Andonov 1 1762 Последна публикация Nov 28, 2005, 17:22
от George Andonov
Check your system clock
Настройка на програми
sash 6 1834 Последна публикация Mar 05, 2006, 21:49
от
Check password for specific user
Настройка на програми
toncho11 2 1332 Последна публикация Jul 11, 2007, 17:07
от zeridon
bios data check на slackware
Настройка на програми
ivoborgir 5 1813 Последна публикация Jul 12, 2009, 14:20
от b2l