Nagios — помощник в мониторинге сервисов и хостов

    Существуют различные бесплатные системы мониторинга состояния систем и сети такие как: Munin, Zabbix и т.д. Я же хочу поделиться с IT сообществом примером настройки системы мониторинга Nagios на операционную систему Arch Linux.

    Приведенный ниже пример установки Nagios производился на дистрибутив Arch linux x64, но так же данный материал можно использовать для Arch i686.


    1. Убедитесь что ваша система обновлена!

    pacman -Syu

    2. Установка LAMP.

    Для установки LAMP можно воспользоваться руководством пользователя на русском языке.

    3. Предварительные настройки.

    Для успешной сборки пакетов необходимы установленные: freetype2, gd, glib2, libtool.

    pacman -S freetype2 gd glib2 libtool

    4. Установка Nagios.

    На компьютере с установленным ArchLinux создаем каталог ~/build и перейдем в него, здесь мы будем собирать наши пакеты.

    mkdir ~/build cd ~/build

    Nagios можно найти в AUR репозитории. Поэтому делаем следующие:

    — Переходим на страницу поиска по AUR репозиторию http://aur.archlinux.org/

    — В строке поиска (Search Critetia), вводим nagios и жмем [GO]
    — Выбираем пакет nagios и загружаем его в каталог ~/build:

    wget -c downloads.sourceforge.net/nagios/nagios-3.2.0.tar.gz

    -распакуем:

    tar -xvzf nagios-3.2.0.tar.gz

    -перейдем в распакованый каталог и загрузим в него необходимы файлы(которые лежат на странице загруки nagios):

    cd ~/build/nagios
    wget -c aur.archlinux.org/packages/nagios/nagios/PKGBUILD
    wget -c aur.archlinux.org/packages/nagios/nagios/nagios.install
    wget -c aur.archlinux.org/packages/nagios/nagios/rc.nagios


    -теперь необходимо сгенерировать пакет, для этого выполним команду:

    makepkg

    (может поругаться если вы делаете из под рута, тогда если Вы уверены в надежности пакеты используйте makepkg --asroot — это не безопасно!).
    Когда пакет будет собран выполним команду:

    pacman -U "имя собранного пакета"

    это установит пакет в систему.

    Аналогичные операции(начиная от поиска по AUR репозиторию) произведем с пакетом nagios-plugin:

    cd ~/build
    wget -c downloads.sourceforge.net/nagiosplug/nagios-plugins-1.4.14.tar.gz
    tar -xvzf nagios-plugins-1.4.14.tar.gz cd nagios-plugins
    wget -c aur.archlinux.org/packages/nagios-plugins/nagios-plugins/PKGBUILD
    makepkg
    pacman -U nagios-plugins-1.4.14-1-x86_64.pkg.tar.gz

    5. Настройка Nagios

    Скопируем конфигурационные файлы с примерами на место «боевых»:
    # cp /etc/nagios/cgi.cfg.sample /etc/nagios/cgi.cfg
    # cp /etc/nagios/resource.cfg.sample /etc/nagios/resource.cfg
    # cp /etc/nagios/nagios.cfg.sample /etc/nagios/nagios.cfg
    # cp /etc/nagios/objects/commands.cfg.sample /etc/nagios/objects/commands.cfg
    # cp /etc/nagios/objects/contacts.cfg.sample /etc/nagios/objects/contacts.cfg
    # cp /etc/nagios/objects/localhost.cfg.sample /etc/nagios/objects/localhost.cfg

    # cp /etc/nagios/objects/templates.cfg.sample /etc/nagios/objects/templates.cfg
    # cp /etc/nagios/objects/timeperiods.cfg.sample /etc/nagios/objects/timeperiods.cfg


    Выставим права на доступ к каталогу /etc/nagios:

    chown -R nagios:nagios /etc/nagios

    Создадим и файл который будет использоваться для web авторизации панели nagios:

    # htpasswd -c /etc/nagios/htpasswd.users nagiosadmin

    (у меня не смотря на правильный путь в файле nagios.conf конфигурации httpd не срабатывала авторизация при использовании файла htpasswd.users поэтому я сделал htpasswd -c /etc/nagios/users nagiosadmin и исправил соответствующую строку в /etc/httpd/conf/extra/nagios.conf)

    Выставим права на каталог с файлами nagios:

    # chown -R nagios:nagios /usr/share/nagios

    На этом конфигурация Nagios закончена, теперь надо настроить Apache.

    6. Настройка Apache.

    Отредактируем файл /etc/httpd/conf/httpd.conf, добавим строку:

    Include /etc/httpd/conf/extra/nagios.conf

    и выполним:

    # usermod -G nagios -a http

    7. Конфигурация PHP.

    Подключем в файле /etc/php/php.ini Nagios, open_basedir, для этого в строке open_basedir допишем :/usr/share/nagios:

    open_basedir = /srv/http/:/usr/share/nagios

    Все настройки закончены, теперь необходимо перезапустить httpd и nagios:

    /etc/rc.d/nagios restart
    /etc/rc.d/httpd restart


    Теперь перейдя по ссылке localhost/nagios
    (либо Ip адресс сервера на котором всё настраивали вместо localhost) вы увидите окно авторизации в котором необходимо ввести имя пользователя nagiosadmin и пароль который вы ему присвоили.

    Настройка контроля за сервисами и хостами.

    Добавляем UNIX хосты.

    в директории /etc/nagios/ созданим каталог servers в котором будут храниться все файлы конфигурации:

    mkdir /etc/nagios/servers

    После чего обязательно раскоментируйте строку cfg_dir=/etc/nagios/servers в файле /etc/nagios/nagios.cfg

    Создами в каталоге /etc/nagios/servers файл unix-servers.cfg отвечающий за группу unix хостов следующего содержания:

    define hostgroup{
    hostgroup_name unix ;
    alias UNIX Servers ;
    members srv_www, srv_mail;
    }


    hostgroup_name — описываем группу хостов

    alias — отображение группы в панели мониторинга
    members — хосты в составе группы(записываем через запятую)

    Теперь создадим файлы конфигурации хостов
    srv_www — это сервер на котором работает веб сайт(nagios в том числе) и прокси сервер на порту 3128:
    # HOST
    define host{
    use linux-server
    host_name srv_www ; имя сервера

    icon_image linux.png
    statusmap_image linux.gd2
    address 10.1.1.7 ; Ip адрес сервера
    }
    # SERVICE
    # проверяем доступность сервера
    define service{

    use local-service
    host_name srv_www
    service_description PING
    check_command check_ping!100.0,20%!500.0,60%
    }
    # Проверяем доступность ssh

    define service{
    use local-service
    host_name srv_www
    service_description SSH
    check_command check_ssh
    }

    # Проверяем доступность tcp соединения на 3128 порту
    define service{
    use local-service
    host_name srv_www
    service_description tcp
    check_command check_tcp!3128
    }

    # Проверяем доступность http (по умолчанию 80 порт)
    define service{
    use local-service
    host_name srv_www ;
    service_description HTTP
    check_command check_http
    }


    Добавляем Windows хосты.

    Для мониторинга windows хостов используем программу NSClient. Установим ёё с настройками по умолчанию на windows хост и составим конфигурацию для nagios.
    Группу windows хостов, /etc/nagios/servers/windows-servers.cfg:define hostgroup{
    hostgroup_name windows ;
    alias Windows Servers ;

    members srv_host06;
    }


    и /etc/nagios/servers/win-srv_host06.cfg:

    # HOST
    define host{
    use win-servers

    host_name srv_host06
    icon_image windows_server.png
    statusmap_image windows_server.gd2
    address 10.1.1.212
    }
    ######

    # SERVICE
    define service{
    use local-service
    host_name srv_host06 ;
    service_description PING
    check_command check_ping!100.0,20%!500.0,60%
    }

    #Загрузку процессора (при 80% - warning, при 90% critical)
    define service{
    use generic-service
    host_name srv_host06 ;
    service_description CPU Load
    check_command check_nt!CPULOAD!-l 1,80,90
    }

    # Мониторим свободное место на диске
    define service{
    use generic-service
    host_name srv_host06 ;
    service_description DISK space
    check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
    }


    icon_image и statusmap_image можно найти на сайте exchange.nagios.org/directory/Images-and-Logos/ поместить в каталог /usr/share/nagios/share/images/logos/

    После написания файлов конфигурации хостов нужно перезапустить nagios:

    /etc/rc.d/nagios restart

    Теперь мы контролируем состояние серверов и сервисов на данных узлах. Всё это выглядит таким образом:

    http://xackep.livejournal.com http://xackep.livejournal.com
    http://xackep.livejournal.com http://xackep.livejournal.com

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

    Статья написана моим хорошим другом! Все лавры собственно ему)
    К сожалению у меня не хватает кармы для инвайта, поэтому я прошу вас, дорогие хабражители, угостить товарища инвайтиком — yarofrost@gmail.com

    Комментарии 1

      +3
      Зтатья хорошая, но скажите, зачем половину статьи посвящать тому, как вы собираете пакет под Arch linux? Я уверен, что если человеку нужна такая(сложная) система, он в состоянии собрать ее на своем дистрибутиве(который в большинстве случаев не Arch). Если Вам так интересен этот аспект, то и статья должна называться 'Nagious в Arch Linux — ...'

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

      Самое читаемое