Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: NAGIOS3 настройка  (Прочитано 15396 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн NanoGlist

  • Автор темы
  • Активист
  • *
  • Сообщений: 283
  • Даешь наноглистинг!!!!
    • Просмотр профиля
NAGIOS3 настройка
« : 16 Сентября 2010, 14:37:33 »
Предлагаю Вашему вниманию, если конечно Вам это надо, как я сконфигурил и настроил Nagios3 на Ubuntu Server
Distributor ID:   Ubuntu
Description:   Ubuntu 10.04.1 LTS
Release:   10.04
Codename:   lucid
-----------------------------------------------------------------

Так как установка Nagios в Ubuntu очень проста, то ее здесь, я описывать не буду.
После установки у нас в системе появятся несколько каталогов:

/etc/nagios3/ - вроде как основной каталог, содержащий конфигурационные файлы
/etc/nagios-plugins/config/ - содержит конфигурационные файлы для плагинов
/usr/lib/nagios/prlugins/ - каталог содержит скрипты плагинов
/usr/lib/nagios3/ - содержит всего один файл p1.pl (зачем он там, я не вкурсе )
/var/lib/nagios/ - каталог пуст
/var/lib/nagios3/ - к нему мы вернемся позже

а так же
/usr/share/nagios
/usr/share/nagios3
/usr/share/nagios-plugins
/usr/share/nagios-snmp-plugins

/usr/share/nagios3/htdocs/ - содержит файлы типа index.html, для тех кто еще не догадался, объясню потом.

И так идем в каталог /etc/nagios3/conf.d — мы будем работать над описанием наших хостов и сервисов, сейчас у нас там должны быть что то типа следующего:

generic-service_nagios2.cfg
host-gateway_nagios3.cfg
hostgroups_nagios2.cfg
localhost_nagios2.cfg
serviceextinfo.cfg
services_nagios2.cfg
contacts_nagios2.cfg         
extinfo_nagios2.cfg         
generic-host_nagios2.cfg
templates.cfg
timeperiods_nagios2.cfg

Здесь содержаться описания дефолтных сервисов, групп и тд и тп..
Вообще на сколько я понял что бы все разложить по полкам,  разработчики Nagios, предлагают хранить конфигурацию для хостов, групп_хостов, сервисов и всего остально  в разных файлах. Признаюсь, я ленив и данной схемой пренебрег.  У меня есть несколько групп хостов:

Терминальные серверы. 1С сервер + PosgreSQL сервер, PDC, а так же принтеры, свитчи ну и сам localhost :) на котором собственно говоря и крутится нагиос.

На самом деле основная настройка хостов в Nagios состоит из нескольких этапов:
define host — описываем хост
define hostgroup — описываем группу хоста и ее членов
define service — куда же без них )))))

Как я и говорил, все это можно хранить в разных cfg файлах,  а можно как я в одном для каждого хоста или группы хостов.

И так начнем с PDC, для этого в каталоге /etc/nagios3/conf.d/ создадим файл у меня, это название организации_pdc.cfg , ну и откроем его для редактирования.

#nano my_pdc.cfg (лично мне нравиться данный редактор, так как он очень похож на редактор 'ee' FreeBSD)

define host {
   host_name   main.local.domain
   alias      main
   address   10.0.0.3
   use      generic-host
   parents   HP2824-1
   }

И так разберем по порядку:

define host — говорит что щас мы будем описывать хост
host_name — все надеюсь понятно
address — тоже не сложно
use  generic-service — обращается к дефолтному сервису описанному тут /etc/nagios3/conf.d/generic-service_nagios2.cfg. Ничего не меняем, нас устраивает на все 100%.
parents — Имя моего DMZ свитча к которому подцеплен сам PDC, это нужно для более правильного отображения Status Map (вернемся позже).

define hostgroup {
   hostgroup_name   main-server
   alias         main
   members      main.local.domain
   }

Здесь мы определили группу хостов, задали ей имя и алиас ну и вписали, членов группы.

Теперь начнем определять сервисы, у меня на PDC крутиться dhcp, dns, Lotus Domino, так же при помощи nsclient я настроил мониторинг для uptime, cpuload, memuse, useddiskspace для с, d и e дисков, так же работает внутренний факс, неплохо бы было мониторить и его, поэтому я включил мониторинг Active-Fax сервиса.

define service {
   hostgroup_name           main-server
   service_description   DHCP
   check_command           check_dhcp!-v!-u!
   use                 generic-service
   notification_interval   0 ; set  > 0 if you want to be renotified
}

теперь идем в каталог /etc/nagios-plugins/config/ и ищем там конфигурационный файл для службы dhcp (dhcp.cfg) у меня он выглядит так


 'check_dhcp' command definition
define command{
   command_name   check_dhcp
   command_line   /usr/lib/nagios/plugins/check_dhcp -s '$HOSTADDRESS$'
   }

# 'check_dhcp_interface' command definition
define command{
   command_name   check_dhcp_interface
   command_line   /usr/lib/nagios/plugins/check_dhcp -s '$HOSTADDRESS$' -i '$ARG1$'
   }

check_command говорит нам, что бы Nagios использовал скрипт check_dhcp из каталога /usr/lib/nagios/plugins/, а параметры для данного плагина берутся из выше приложенного файла. Данная схема распространяется на все плагины. Здесь менять ничего не будем в отличии от следующего сервиса (dns).

Далее определяем сервис DNS

define service {
   hostgroup_name      main-server
   service_description   DNS
   check_command      check_dns
   use            generic-service
   notification_interval     0 ; set  >  0 if you want to be renotified
   }

и так говорим Nagios, что сервис применим для группы хостов main-server, описываем его как DNS, говорим что запускаться он будет плагином check_dns.

Теперь заглянем в конфигурационный файл плагина dns (dns.cfg)

# 'check_dns' command definition
define command{
   command_name   check_dns
   command_line   /usr/lib/nagios/plugins/check_dns -H main.local.domain -s '$HOSTADDRESS$'
}

# 'check_dig' command definition
define command{
   command_name    check_dig
   command_line    /usr/lib/nagios/plugins/check_dig -H '$HOSTADDRESS$' -l '$ARG1$'

У меня строчка command_line /usr/lib/nagios/plugins/check_dns -H main.local.domain -s '$HOSTADDRESS$' выглядела так  command_line /usr/lib/nagios/plugins/check_dns -H www.google.com -s '$HOSTADDRESS$' , естественно меняем google.com на доменное имя вашего сервера.

Следующий сервис — это сервис лотус домино сервера

define service {
   hostgroup_name      main-server
   service_description   Domino-Server
   check_command      check_tcp!1352
   use            generic-service
   notification_interval   0 ; set  >  0 if you want to be renotified
   }

Что же опять все тоже самое только теперь используем плагин check_tcp, который обращается к порту 1352. Теперь немного поподробнее, открываем файл /etc/nagios-plugins/config/tcp_udp.cfg

# 'check_tcp' command definition
define command{
   command_name   check_tcp
   command_line   /usr/lib/nagios/plugins/check_tcp -H '$HOSTADDRESS$' -p '$ARG1$'
   }

# 'check_udp' command definition
define command{
   command_name   check_udp
   command_line   /usr/lib/nagios/plugins/check_udp -H '$HOSTADDRESS$' -p '$ARG1$'
   }

####
# use these checks, if you want to test IPv4 connectivity on IPv6 enabled systems
####

# 'check_tcp_4' command definition
define command{
        command_name    check_tcp_4
        command_line    /usr/lib/nagios/plugins/check_tcp -H '$HOSTADDRESS$' -p '$ARG1$' -4
        }

# 'check_udp_4' command definition
define command{
        command_name    check_udp_4
        command_line    /usr/lib/nagios/plugins/check_udp -H '$HOSTADDRESS$' -p '$ARG1$' -4
        }

В моем случае нас интересует первые строки

# 'check_tcp' command definition
define command{
   command_name   check_tcp
   command_line   /usr/lib/nagios/plugins/check_tcp -H '$HOSTADDRESS$' -p '$ARG1$'
   }

Мы видим, что конфигурационный файл говорит, что будет выбрана команда check_tcp, которая будет запущена из /usr/lib/nagios/plugins/,  c параметрами -H '$HOSTADDRESS$' - выберет автоматом адрес хоста, к которому мы прикрутили данный сервис и -p '$ARG1$' - означает что обращение пойдет к порту, который будет указан непосредственно в /etc/nagios3/conf.d/my_pdc.cfg, а именно вот тут check_command check_tcp!1352 <----обратите внимания на !1352. т. е. Все '$ARG$' описываются через знак ! И их может быть сколько душе угодно(ну или по крайней мере, столько, сколько поддерживает сам скрипт плагина). Если у вас несколько аргументов, то их будет необходимо перечислить через знак восклицания (!). Я еще расскажу об этом, когда перейдем к настройке мониторинга PosgreSQL сервера.

Теперь займемся описанием нестандартных для Nagios сервисов, т. е., тех сервисов, которые мониторятся по средствам дополнительного ПО для Windows. Для начала давайте зайдем на сайт nsclient.org и закачаем самую последнюю версию nsclient++, как установить данный сервис на Windows надеюсь рассказывать не надо. После того как сервис установлен и запущен, приступаем к его описаниям:


define service{
   use              generic-service
   host_name           main.local.domain
   service_description    Uptime
   check_command        check_nt!UPTIME
   }

Здесь используется плагин check_nt с параметром -v UPTIME, uptime описывает нам время работы системы после включения. Естественно за данный плагин отвечает конфигурационный файл /etc/nagios-plugins/ nt.conf , давайте посмотрим на него


# 'check_nt' command definition
define command {
   command_name    check_nt
   command_line    /usr/lib/nagios/plugins/check_nt -H '$HOSTADDRESS$' -v '$ARG1$' -l '$ARG2$' -p 12489
}

Обратите внимание на command_line здесь мне пришлось в ручную допиливать параметр -p ,  -p означает порт (port), указываем порт nsclient++  12489. 

define command {
        command_name    check_nt_cpu
        command_line      /usr/lib/nagios/plugins/check_nt -H '$HOSTADDRESS$' -l 5,80,90 -v '$ARG1$' -p 12489
}

Обратите ввримания на строчку command_name, на самом деле, я не смог завести через check_nt мониторинг процессора системы, но зато, Nagios, позволил мне создать символическую ссылку на check_nt как check_nt_cpu и включить ее в свой конфигурационный файл. Данное описание соответствует всем сервисам мониторинга CPU на всех моих серверах.

define command {
        command_name    check_nt1
        command_line     /usr/lib/nagios/plugins/check_nt -H '$HOSTADDRESS$' -v '$ARG1$' -l '$ARG2$' -p 12489
}

Здесь параметр check_nt1, так же является символической ссылкой для check_nt

# 'check_nscp' command definition
define command {
   command_name    check_nscp
   command_line   /usr/lib/nagios/plugins/check_nt -H '$HOSTADDRESS$' -p 12489 -v '$ARG1$'
------------------------------------------------------------------------------------------------------------------
Вернемся к описанию файла my_pdc.cfg

Теперь надеюсь Вам все стало более менее понятно здесь описываем, что нам надо показхывать загруженность процессора.

# Create a service for monitoring CPU load
# Change the host_name to match the name of the host you defined above

define service{
   use         generic-service
   host_name      main.local.domain
   service_description   CPU Load
   check_command   check_nt_cpu!CPULOAD!
   }


Здесь описываем использование  памяти,  -w  предупреждает нас, что память заполнена на 80 процентов, ну а -с означает critical, предупредит нас, когда она заберет еще 10 процентов и достигнет 90 процентов занимаемой памяти.
# Create a service for monitoring memory usage
# Change the host_name to match the name of the host you defined above

define service{
   use                generic-service
   host_name             main.local.domain
   service_description      Memory Usage
   check_command          check_nt!MEMUSE! -w 80 -c 90
   }



# Create a service for monitoring C:\ disk usage
# Change the host_name to match the name of the host you defined above
Ну и совсем несложное описание жестких дисков.

define service{
   use                 generic-service
   host_name              main.local.domain
   service_description   C:\ Drive Space
   check_command           check_nt!USEDDISKSPACE!c! -w 80 -c 90
   }

А вот выдержка все из того же nt.cfg, которую мы приводили раннее
command_line    /usr/lib/nagios/plugins/check_nt -H '$HOSTADDRESS$' -v '$ARG1$' -l '$ARG2$' -p 12489, если выстроить это все в одну цепь то получиться

command_line    /usr/lib/nagios/plugins/check_nt -H '$HOSTADDRESS$' -v USEDDISKSPACE -l  c -p 12489 -w80 -c 90

Здесь параметр -l c говорит, что надо мониторить диск С:, в следующих примерах говориться о D: и  E: дисках.


# Create a service for monitoring D:\ disk usage
define service{
        use                        generic-service
        host_name                  main.local.domain
        service_description         D:\ Drive Space
        check_command           check_nt1!USEDDISKSPACE!d! -w 80 -c 90
        }

# Create a service for monitoring E:\ disk usage
define service{
        use                       generic-service
        host_name                 main.local.domain
        service_description        E:\ Drive Space
        check_command          check_nt1!USEDDISKSPACE!e! -w 80 -c 90
        }


Ну и на последок здесь описан мониторинг внутреннего факса. Все просто делает check_tcp main.local.domain на порт 25017

# Fax Modem Service
define service{
   use                 generic-service
   host_name              main.local.domain
   service_description   Active-Fax-Modem-Status
   check_command           check_tcp!25017
   }

Все, закончили теперь нажимаем CTR+X и Y, программа nano сохранит Ваш конфигурационный файл.

Что же, теперь разберем настройку мониторинга 1с сервера в связке с PostgreSQL сервером. Для начала я хотел их объединить в одну группу, но потом передумал, а вот описание конфигураций, оставил в одном файле, и так #cat my_1cserver.cfg

# Описываем хосты

define host {
   host_name      sql.local.domain
   alias         sql
   address      10.0.0.4
   use         generic-host
   parents      HP2824-1
   }

define host {
   host_name      1cserver. local.domain
   alias         1cserver
   address      10.0.0.5
   use         generic-host
   parents      HP2824-1
   }

# Описываем группы хостов


define hostgroup {
   hostgroup_name   1cserver
   alias         1cserver
   members      1cserver. local.domain
   }

define hostgroup {
   hostgroup_name   pgsql-server
   alias         pgsql
   members      sql. local.domain
   }

Описываем сервисы.


define service {
   hostgroup_name           pgsql-server
   service_description   PGSQL
   check_command           check_pgsql!5432!postgres!postgres!qwerty
   use                 generic-service
   notification_interval   0 ; set > 0 if you want to be renotified
   }
Давате разберем check_command для postgresql и так мы видим набор значений, который нам станет ясен, если мы заглянем в /etc/nagios-plugins/config/pgsql.cfg

# 'check_pgsql' command definition
define command{
   command_name   check_pgsql
   command_line   /usr/lib/nagios/plugins/check_pgsql -H '$HOSTADDRESS$' -P '$ARG1$' -l '$ARG2$' -d '$ARG3$' -p '$ARG4$'
   }
Здесь мы говорим Nagios, что script check_pgsql будет обращаться к -H '$HOSTADDRESS$' (в моем случае это 10.0.0.4), к -P '$ARG1$' (порту 5432, стандартный порт pgsql сервера), -l '$ARG2$' (имя пользователя баз данных, в моем случаем postgres),  -d '$ARG3$' (к базе данных, в моем случае postgres), -P '$ARG4$' ( использовать пароль, в моем случае это qwerty).  Вообще, я бы посоветовал, если что то не получается с плагинами, попытайтесь сначала сделать так, что бы у вас он заработал с командной строки, например предыдущий пример будет выглядеть так
# cd /usr/lib/nagios/plugins/
#./check_pgsql -H ip_address_server -P 5432 -l postgres -d postgres -p qwerty
получаем вывод:
OK - database postgres (0 sec.)|time=0,000000s;2,000000;8,000000;0,000000
Все хорошо, плагин работает, теперь пытаемся его правильно описать в конфигурационных файлах Nagios.

Далее я описал сервис 1с сервера, скрипт check_tcp будет подключаться к 1с серверу на порт 1540

define service {
   hostgroup_name   1cserver
   service_description   1CServer
   check_command   check_tcp!1540
   use         generic-service
   notification_interval   0 ; set > 0 if you want to be renotified
   }

Ну и далее уже привычный нам мониторинг : процессора, памяти, дисков и тд и тп.
Обратите внимания, что описание сервисов в поле host_name, можно вносить несколько хостов в моем случае это sql и 1сserver

# Create a service for monitoring the uptime of the server
# Change the host_name to match the name of the host you defined above

define service{
   use                 generic-service
   host_name              sql.local.domain , 1cserver. local.domain
   service_description   Uptime
   check_command           check_nt!UPTIME
   }



# Create a service for monitoring CPU load
# Change the host_name to match the name of the host you defined above

define service{
   use                 generic-service
   host_name              sql.local.domain , 1cserver. local.domain
   service_description   CPU Load
   check_command           check_nt_cpu!CPULOAD!
   }


 
# Create a service for monitoring memory usage
# Change the host_name to match the name of the host you defined above

define service{
   use                  generic-service
   host_name              sql.local.domain , 1cserver. local.domain
   service_description   Memory Usage
   check_command           check_nt!MEMUSE! -w 80 -c 90
   }



# Create a service for monitoring C:\ disk usage
# Change the host_name to match the name of the host you defined above

define service{
   use                 generic-service
   host_name              sql.local.domain , 1cserver. local.domain
   service_description   C:\ Drive Space
   check_command           check_nt!USEDDISKSPACE!c! -w 80 -c 90
   }

define service{
        use                           generic-service
        host_name                     sql. local.domain
        service_description                D:\ Drive Space
        check_command              check_nt1!USEDDISKSPACE!d! -w 80 -c 90
        }

Теперь займемся описанием принтеров, я не буду описывать все, а опишу только один, дабы не занимать место


# Назначаем хост
define host {
   host_name   HP2015_1
   alias      HP2015_1
   address   10.0.0.32
   use      generic-host
   parents   HP2650-4
   }

# Назначаем группу

define hostgroup {
   hostgroup_name   Printers_HP
   alias         HP_Printers
   members      HP2015_1, HP2015_2, HP2015_3, HP2015_4, HP2015_5, HP2015_6, HP2055DN_1, HP2055DN_2, HP3390_1
   }



# Назначаем сервис, здесь будем использовать скрипт check_hpjd

define service {
   hostgroup_name           Printers_HP
   service_description   Printers
   check_command           check_hpjd
   use                 generic-service
   notification_interval   0 ; set > 0 if you want to be renotified
   }

А вот вывод /etc/nagios-plugins/config/hpjd.cfg

# 'check_hpjd' command definition
define command{
   command_name    check_hpjd
   command_line    /usr/lib/nagios/plugins/check_hpjd -H '$HOSTADDRESS$' -C public
   }
Не буду вам рассказывать теорию snmp, полагаю, что вы лучше меня знаете о данном протоколе, скажу только то, что на принтере нужно разрешить snmp хотя бы для чтения.
Чтож, теперь за принтеры можно не беспокоиться, Nagios подскажет, когда надо заменить картридж, а когда бумагу )))

Далее описываем все остальное оборудование, имеющееся у вас, по принципу, который мы использовали выше.

Вот вывод моих свитчей


define host{
   use      generic-host
   host_name   HP2824-1
   alias      HP2824-1
   address   10.0.0.20
   parents   gateway
}

define hostgroup{
   hostgroup_name   DMZ_switches
   alias         DMZ_switches
   members      HP2824-1
}


define service {
        hostgroup_name           DMZ_switches
        service_description        SSH
   check_command           check_ssh
        use                                generic-service
   notification_interval       0 ; set > 0 if you want to be renotified
}
 

define host{
   use      generic-host
   host_name   HP2650-1
   alias      2650-1
   address   10.0.0.21
   parents   HP2824-1
}

define host{
        use                generic-host
        host_name         HP2650-2
        alias                     2650-2
        address            10.0.0.22
        parents           HP2824-1
}


define host{
        use                generic-host
        host_name          HP2650-3
        alias              2650-3
        address            10.0.0.23
        parents              HP2824-1
}

define host{
        use                generic-host
        host_name       HP2650-4
        alias                2650-4
        address            10.0.0.24
        parents            HP2824-1
}


define hostgroup{
        hostgroup_name          lan_switches
        alias                          lan_switches
        members                     HP2650-1, HP2650-2, HP2650-3, HP2650-4
}


define service {
        hostgroup_name               lan_switches
        service_description            SSH
        check_command               check_ssh
        use                                 generic-service
        notification_interval           0 ; set > 0 if you want to be renotified
}


После того как все сервисы, группы и хосты описаны, займемся украшением Nagios.
Так как красивую карту Status Map мы уже построили при помощи parents, давайте теперь присвоим нашим хостам красивые иконки. Для этого отредактируем extinfo_nagios2.cfg

define hostextinfo{
        hostgroup_name   debian-servers
        notes               Ubuntu GNU/Linux servers
        notes_url           http://nagios.local/
        icon_image          base/ubuntu.png
        icon_image_alt   Ubuntu LAMP Server IP_ADDRESS 10.0.0.10
        vrml_image          ubuntu.png
        statusmap_image  base/debian.gd2
        }

define hostextinfo{
   hostgroup_name   Terminal Servers
   notes              Terminal Servers
   icon_image      base/win40.png   
   icon_image_alt   Windows Server 2003 R2 Terminal Server
   vrml_image      win40.png
   statusmap_image   satrapa/my_termserv.gd2
   }

define hostextinfo{
   hostgroup_name   main-server
   notes         PDC Server
   icon_image      base/win40.png
   icon_image_alt   Windows Server 2003 R2 IP_ADDRESS 10.0.0.3
   vrml_image      win40.png
   statusmap_image   cook/windows_server.gd2
   }

define hostextinfo{
        hostgroup_name     1cserver
        notes                 1C Server
        icon_image            base/win40.png
        icon_image_alt        Windows Server 2003 R2 IP_ADDRESS 10.0.0.5
        vrml_image            win40.png
        statusmap_image    cook/windows_server.gd2
        }

define hostextinfo{
        hostgroup_name     pgsql-server
        notes                 PostgreSQL Server
        icon_image            base/win40.png
        icon_image_alt        Windows Server 2003 R2 IP_ADDRESS 10.0.0.4
        vrml_image            win40.png
        statusmap_image    didier/DBServer.gd2
        }



define hostextinfo{
        hostgroup_name     Printers_HP
        notes                  Printers
        icon_image            base/hp-printer40.png
        icon_image_alt        Printers HP
        vrml_image            hp-printer40.png
        statusmap_image    base/hp-printer40.gd2
        }

define   hostextinfo{
   hostgroup_name   DMZ_switches
   notes          Swithes
   icon_image      cook/dmz_switch.png
   icon_image_alt   HP2824 DMZ Switch
   vrml_image      dmz_switch.png
   statusmap_image   cook/dmz_switch.gd2
}

define  hostextinfo{
        hostgroup_name     lan_switches
        notes                 LAN Swithes
        icon_image            satrapa/my_lanswitch.png
        icon_image_alt        HP2620 LAN Switch
        vrml_image            my_lanswitch.png
        statusmap_image    satrapa/my_lanswitch.gd2
}

define  hostextinfo{
        hostgroup_name     gateway
        notes                  Gateway
        icon_image            andrade/Cisco1720.png
        icon_image_alt        CISCO 1700
        vrml_image            Cisco1720.png
        statusmap_image    cook/firewall_router.gd2
}


hostgroup_name — имя группы наших хостов
notes — описание, заметка, которая будет отображаться в сплывающем окошке, при наведении в Status Map на объект, курсора мышки.
icon_image — картинка, которая будет присвоена хосту в Service Detail
icon_image_alt — надпись, которая будет появляться, когда вы в Service Detail наведете на иконку хоста.
vrml_image — я так понял относится к 3D Map, мне ее так и не удалось настроить.
status_image- иконка, которая будет отображена в status map
Иконки располагаются в каталоге  /usr/share/nagios/htdocs/images/logos/.

В Nagios так же можно присвоить иконки для каждого сервиса, делается это в файле serviceextinfo.cfg



define serviceextinfo{
   host_name      main.local.domain
   service_description   Active-Fax-Modem-Status
   icon_image      cook/modem.png      
   icon_image_alt   Fax-Modem-Status   
}

host_name — задает имя реального хоста на котором крутится сервис
service_description — сюда вписываем имя реального сервиса, существующего на вашем хосте и в конфигурационных файлах, помните ?
 
/etc/nagios3/conf.d/my_pdc.cfg
define service{
   use                 generic-service
   host_name              main.local.domain
   service_description   Active-Fax-Modem-Status
   check_command            check_tcp!25017
   }

icon_image — картинка для сервиса
icon_image_alt — надпись при наведении курсора на картинку.

Теперь настройте все остальное по данным примерам.

В Ubuntu, в Nagios, не смотря на готовый пакет, конечно же есть «недопилы», например, когда вы пытаетесь перепланировать следующую проверку сервиса, выдается предупреждение: Sorry, but Nagios is currently not checking for external commands, so your command will not be committed! Немного погуглив я увидел труд одного человека, к сожалению я не запомнил сайт и его имя, но остался ему очень благодарен за данный пример.
И так давайте устраним недоработку

nano /etc/nagios3/nagios.cfg

Находим там строчку и исправляем 0 на 1
check_external_commands=1

Далее создаем файл:
touch /var/lib/nagios3/rw/nagios.cmd

И далее поочереди вводим команды:

dpkg-statoverride --update --add nagios www-data 2710 /var/lib/nagios3/rw
dpkg-statoverride --update --add nagios nagios 751 /var/lib/nagios3
chown nagios:www-data /var/lib/nagios3/rw/nagios.cmd

Перезапускаем сервис Nagios
sudo service nagios3 restart

После этого шаманства, перепланировка сервиса пойдет как по маслу :)
В заключении давайте сделаем так, что бы обращение к Nagios через браузер имело человеческий вид , сейчас нам надо набирать server_name/nagios3.
Идем в /etc/apache2/site-aviable/ и создаем там файл для Nagios, у меня это nagios.my, далее редактируем его
#nano nagios.my
<VirtualHost *:80>
   ServerName nagios
   ServerAlias nagios.my www.nagios.my
   DocumentRoot /var/www/nagios.my/www/
</VirtualHost>
Мы только что создали виртуальный хост для Nagios, но это еще не все, сохраняемся, и создаем в /var/www , недостающие каталоги
# mkdir -p /var/www/nagios.my/www

А теперь давайте вернемся к каталогу, о котором мы говорили в самом начале /usr/share/nagios3/htdocs/ , давайте просто создадим символические ссылки на файлы в данном каталоге и поместим их в наш DocumentRoot каталог для Nagios.
# ln -s /usr/share/nagios3/htdocs/* /var/www/nagios.my/www/
Теперь нам необходимо, что бы наша система понимала куда нас надо послать, если мы наберем в строке браузера nagios.my, для like unix систем надо отредактировать /etc/hosts, внеся туда следующие строчки

ip_address_nagios_server   nagios.my   www.nagios.my

Правдо у меня по данному примеру удалось попадать только на nagios.my либо на www.nagios.my, пришлось извращаться и внести две строчки:

10.0.0.10www.nagios.my   www.nagios.my
10.0.0.10nagios.my             nagios.my
Для Windows хостов, это можно сделать двумя способами:
1)Внести запись в DNS
2)Пойти другим путем и внести запись в c:\Windows\system32\drivers\etc\hosts
следующее:
10.0.0.10nagios.my
10.0.0.10www.nagios.my
И не забываем про не использовать прокси сервер для локальных адресов :)

Оффлайн 24pm

  • Новичок
  • *
  • Сообщений: 35
    • Просмотр профиля
    • СисадминВики
Re: NAGIOS3 настройка
« Ответ #1 : 13 Октября 2010, 07:34:47 »
Пытаюсь подключить к nagios 3 свой коммутатор
# Monitor Port 1 status via SNMP

define service{
use generic-service ; Inherit values from a template
host_name at8624-abk1-trunks
service_description Port 1 Link Status
check_command check_snmp!-C public -o ifOperStatus.1 -r 1 -m RFC1213-MIB
}

Выдаёт ошибку:
Error: Service check command 'check_snmp' specified in service 'Port 1 Link Status' for host 'at8624-abk1-trunks' not defined anywhere!

хотя настройка взята из примера switch.cfg идущего в составе самого nagios.

Проверяю описана ли где эта команда (сервис) - действительно нигде её нет в том числе и в snmp.cfg, доустановил ещё nagios-snmp-plugins. Там много чего есть, но нет описания нужной команды.
Сам программа /usr/lib/nagios/plugins/check_snmp есть и используется в описании разных сервисов,

Подскажите, пожалуйста, что нужно доустановить, подправить, или хотя бы как правильно описать сервис для мониторинга портов коммутатора.

Оффлайн mazzo

  • Активист
  • *
  • Сообщений: 311
    • Просмотр профиля
Re: NAGIOS3 настройка
« Ответ #2 : 13 Октября 2010, 07:56:50 »
check command вроде как неправильно написан, там все аргументы нужно передавать через !...а какие будут аргументы - это в check_snmp.cfg описаны (/etc/nagios-plugins/config - это на debian, думаю на ubuntu там же)
статья полезная, вот бы прочитать ее когда сам настраивал nagios, меньше б гемора было бы...зачотно

Оффлайн 24pm

  • Новичок
  • *
  • Сообщений: 35
    • Просмотр профиля
    • СисадминВики
Re: NAGIOS3 настройка
« Ответ #3 : 13 Октября 2010, 12:59:19 »
С командой всё нормально, не было описания сервиса, т.к. устанавливал пакеты Ubuntu.
Проблему решил скачав исходники с оф. сайта и взяв оттуда нужные описания из файла /sample-config/template-object/commands.cfg.in вставил в /etc/nagios3/commands.cfg, а именно:

# 'check_snmp' command definition
define command{
        command_name    check_snmp
        command_line    $USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$
        }

# 'check_local_mrtgtraf' command definition
define command{
    command_name        check_local_mrtgtraf
    command_line        $USER1$/check_mrtgtraf -F $ARG1$ -a $ARG2$ -w $ARG3$ -c $ARG4$ -e $ARG5$
    }

Теперь осталось разобраться с mrtg.

Инструкция действительно хорошая, ещё бы её оформить не в виде поста на форуме, а в wiki - было бы вообще ценно! Там её и дополнить можно будет.
Полагаю, что раздел https://help.ubuntu.ru/wiki/администрирование будет самым подходящим.
Может автор найдёт время?!  ;)

Оффлайн NanoGlist

  • Автор темы
  • Активист
  • *
  • Сообщений: 283
  • Даешь наноглистинг!!!!
    • Просмотр профиля
Re: NAGIOS3 настройка
« Ответ #4 : 14 Октября 2010, 17:52:00 »
Мужики, извините, что не смог ответить сразу, так как не видел Ваших вопросов (понадеялся на то, что они мне прийдут на почту). Действительно, может в топе что то упустил по поводу command.cfg, так что не обессутьте.
Писал в основном для своей дырявой памяти. очень рад, что кому то помогло еще. Щас пока в голове каша, работа, времени нет нормально все оформить, но если кто нибудь сам возьмется за это дело и в основу возьмет данный топ, я буду не против, даже очень за. И не забывайте, что не важно где вы описываете сервисы хосты и все остальное, главное что бы потом вы вспомнили, что куда запихнули......Вы все это можете забить в один большой текстовый файл и нагиос сам с ним разберется.
« Последнее редактирование: 14 Октября 2010, 17:55:09 от SpongeBobSquarePants »

Оффлайн tagilchanin

  • Активист
  • *
  • Сообщений: 658
    • Просмотр профиля
Re: NAGIOS3 настройка
« Ответ #5 : 16 Декабря 2010, 15:41:39 »
Ребят помогите разобраться с мониторингом windows sever 2003. При снятии информации на использовнаие диска ругается на на неверный праметр -l пишет:
(Нажмите, чтобы показать/скрыть)
в чем может быть проблемы.
Файлы настройки:
(Нажмите, чтобы показать/скрыть)

(Нажмите, чтобы показать/скрыть)
Выбери профессию, которую ты любишь, - и тебе не придется работать ни дня в твоей жизни. (Конфуций)

Оффлайн Shtsh

  • Участник
  • *
  • Сообщений: 118
    • Просмотр профиля
Re: NAGIOS3 настройка
« Ответ #6 : 16 Декабря 2010, 15:54:55 »
Мониторишь через NSClient?

Оффлайн tagilchanin

  • Активист
  • *
  • Сообщений: 658
    • Просмотр профиля
Re: NAGIOS3 настройка
« Ответ #7 : 16 Декабря 2010, 16:01:10 »
Мониторишь через NSClient?
Совсем забыл сказать :) Да мониторю через него. Загрузку процессора и памяти,  версию NSCleint и время работы показывает нормально. А вот с дисками вот такая проблема :(
Выбери профессию, которую ты любишь, - и тебе не придется работать ни дня в твоей жизни. (Конфуций)

Оффлайн tagilchanin

  • Активист
  • *
  • Сообщений: 658
    • Просмотр профиля
Re: NAGIOS3 настройка
« Ответ #8 : 21 Декабря 2010, 13:35:49 »
Спасибо всем за участие :) справился сам. Не правильно написал переменные :)
Выбери профессию, которую ты любишь, - и тебе не придется работать ни дня в твоей жизни. (Конфуций)

Оффлайн Дмитрий Бо

  • Погонщик серверов
  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 3549
  • Я не техподдержка, я за порядком слежу
    • Просмотр профиля
Re: NAGIOS3 настройка
« Ответ #9 : 21 Декабря 2010, 16:59:47 »
Софтина, безусловно, ценная. И в wiki надо бы написать про неё, только стартовый пост надо очистить от однообразных кусков кода и вредных советов (всё-таки лучше всё раскидать по файлам, а часто используемые директивы уносить в шаблоны).

Для украшательства можно ещё подцепить графики.

Ну и ссылка:
http://nagios.sourceforge.net/docs/3_0/objectdefinitions.html

Оффлайн autokilla47

  • Любитель
  • *
  • Сообщений: 90
    • Просмотр профиля
Re: NAGIOS3 настройка
« Ответ #10 : 21 Ноября 2011, 15:06:17 »
ребят! в чем может быть проблема - не могу после установки зайти на web-интерфейс. ввожу пароль и пользователя созданного по команде:
htpasswd -c /usr/local/nagios/etc/htpasswd.users admin
и после ввода опять выбрасывает в окно ввода пароля-пользователя.
nagios (pid 1554) is running...
httpd (pid  1921) is running...
при установки создавал:
/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -G nagcmd apache
/usr/sbin/usermod -G nagcmd nagios
права на файл с паролем:
[root@test ~]# ls -l /usr/local/nagios/etc/htpasswd.user
-rwxr-xr-x. 1 root root 20 Ноя 21 08:46 /usr/local/nagios/etc/htpasswd.user

заранее спасибо всем откликнувшимся)

Предупредил по 2.5 — Дмитрий Бо
« Последнее редактирование: 21 Ноября 2011, 17:37:42 от Дмитрий Бо »

Оффлайн Дмитрий Бо

  • Погонщик серверов
  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 3549
  • Я не техподдержка, я за порядком слежу
    • Просмотр профиля
Re: NAGIOS3 настройка
« Ответ #11 : 21 Ноября 2011, 17:31:48 »
ввожу пароль и пользователя созданного по команде:
htpasswd -c /usr/local/nagios/etc/htpasswd.users admin
и после ввода опять выбрасывает в окно ввода пароля-пользователя.
Логин и пароль веб-сервер считает неправильными.
Строго говоря, до nagios дело ещё не дошло, аутентификация — это дело апача.

Оффлайн autokilla47

  • Любитель
  • *
  • Сообщений: 90
    • Просмотр профиля
Re: NAGIOS3 настройка
« Ответ #12 : 22 Ноября 2011, 09:14:47 »
ввожу пароль и пользователя созданного по команде:
htpasswd -c /usr/local/nagios/etc/htpasswd.users admin
и после ввода опять выбрасывает в окно ввода пароля-пользователя.
Логин и пароль веб-сервер считает неправильными.
Строго говоря, до nagios дело ещё не дошло, аутентификация — это дело апача.
Так по всем инструкциям достаточно только прописать пользоватля и указать пароль для входа на морду,так в чем же еще тогда могут быть загвоздки,где смотреть?

 

Страница сгенерирована за 0.068 секунд. Запросов: 25.