Поиск по сайту:

Как установить Nagios 4 и контролировать свои серверы на CentOS 7


Введение

В этом руководстве мы рассмотрим установку Nagios 4, очень популярной системы мониторинга с открытым исходным кодом, на CentOS 7 или RHEL 7. Мы рассмотрим некоторые базовые настройки, чтобы вы могли отслеживать ресурсы хоста через веб-интерфейс. Мы также будем использовать Nagios Remote Plugin Executor (NRPE), который будет установлен в качестве агента на удаленных хостах для мониторинга их локальных ресурсов.

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

Предпосылки

Чтобы следовать этому руководству, у вас должны быть права суперпользователя на сервере CentOS 7, на котором будет работать Nagios. В идеале вы будете использовать пользователя без полномочий root с привилегиями суперпользователя. Если вам нужна помощь в настройке, выполните шаги с 1 по 3 в этом руководстве: Initial Server Setup with CentOS 7.

Также требуется стек LAMP. Следуйте этому руководству, если вам нужно это настроить: Как установить стек LAMP в CentOS 7.

В этом руководстве предполагается, что на вашем сервере включена частная сеть. Если это не так, просто замените все ссылки на частные IP-адреса общедоступными IP-адресами.

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

Установите Нагиос 4

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

Установить зависимости сборки

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

Сначала установите необходимые пакеты:

sudo yum install gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel xinetd unzip

Создайте пользователя и группу Nagios

Мы должны создать пользователя и группу, которые будут запускать процесс Nagios. Создайте пользователя \nagios и группу \nagcmd, затем добавьте пользователя в группу с помощью следующих команд:

sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios

Давайте установим Nagios сейчас.

Установите ядро Nagios

Загрузите исходный код последней стабильной версии Nagios Core. Перейдите на страницу загрузок Nagios и нажмите ссылку «Пропустить для загрузки» под формой. Скопируйте адрес ссылки на последнюю стабильную версию, чтобы вы могли загрузить ее на свой сервер Nagios.

На момент написания этой статьи последней стабильной версией является Nagios 4.1.1. Загрузите его в свой домашний каталог с помощью curl:

cd ~
curl -L -O https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.1.tar.gz

Извлеките архив Nagios с помощью этой команды:

tar xvf nagios-*.tar.gz

Затем перейдите в извлеченный каталог:

cd nagios-*

Перед сборкой Nagios мы должны настроить его с помощью этой команды:

./configure --with-command-group=nagcmd 

Теперь скомпилируйте Nagios с помощью этой команды:

make all

Теперь мы можем запустить эти команды make для установки Nagios, сценариев инициализации и примеров файлов конфигурации:

sudo make install
sudo make install-commandmode
sudo make install-init
sudo make install-config
sudo make install-webconf

Чтобы отдавать внешние команды через веб-интерфейс Nagios, мы должны добавить пользователя веб-сервера apache в группу nagcmd:

  1. sudo usermod -G nagcmd apache

Установите плагины Nagios

Найдите последнюю версию подключаемых модулей Nagios здесь: Загрузка подключаемых модулей Nagios. Скопируйте адрес ссылки для последней версии и скопируйте адрес ссылки, чтобы вы могли загрузить его на свой сервер Nagios.

На момент написания этой статьи последней версией является Nagios Plugins 2.1.1. Загрузите его в свой домашний каталог с помощью curl:

cd ~
curl -L -O http://nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz

Извлеките архив плагинов Nagios с помощью этой команды:

tar xvf nagios-plugins-*.tar.gz

Затем перейдите в извлеченный каталог:

cd nagios-plugins-*

Прежде чем создавать плагины Nagios, мы должны его настроить. Используйте эту команду:

./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl

Теперь скомпилируйте плагины Nagios с помощью этой команды:

make

Затем установите его с помощью этой команды:

sudo make install

Установить NRPE

Найдите исходный код последней стабильной версии NRPE на странице загрузок NRPE. Загрузите последнюю версию на свой сервер Nagios.

На момент написания этой статьи последняя версия — 2.15. Загрузите его в свой домашний каталог с помощью curl:

  1. cd ~
  2. curl -L -O http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz

Извлеките архив NRPE с помощью этой команды:

  1. tar xvf nrpe-*.tar.gz

Затем перейдите в извлеченный каталог:

  1. cd nrpe-*

Настройте NRPE с помощью следующих команд:

  1. ./configure --enable-command-args --with-nagios-user=nagios --with-nagios-group=nagios --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu

Теперь создайте и установите NRPE и его сценарий запуска xinetd с помощью следующих команд:

  1. make all
  2. sudo make install
  3. sudo make install-xinetd
  4. sudo make install-daemon-config

Откройте сценарий запуска xinetd в редакторе:

  1. sudo vi /etc/xinetd.d/nrpe

Измените строку only_from, добавив в конец частный IP-адрес вашего сервера Nagios (замените фактический IP-адрес вашего сервера):

only_from = 127.0.0.1 10.132.224.168

Сохранить и выйти. Только серверу Nagios будет разрешено взаимодействовать с NRPE.

Перезапустите службу xinetd, чтобы запустить NRPE:

  1. sudo service xinetd restart

Теперь, когда Nagios 4 установлен, нам нужно его настроить.

Настроить Nagios

Теперь давайте выполним первоначальную настройку Nagios. Вам нужно выполнить этот раздел только один раз на вашем сервере Nagios.

Организация конфигурации Nagios

Откройте основной файл конфигурации Nagios в вашем любимом текстовом редакторе. Мы будем использовать vi для редактирования файла:

sudo vi /usr/local/nagios/etc/nagios.cfg

Теперь найдите раскомментировать эту строку, удалив #:

#cfg_dir=/usr/local/nagios/etc/servers

Сохранить и выйти.

Теперь создайте каталог, в котором будет храниться файл конфигурации для каждого сервера, за которым вы будете следить:

sudo mkdir /usr/local/nagios/etc/servers

Настройка контактов Nagios

Откройте конфигурацию контактов Nagios в своем любимом текстовом редакторе. Мы будем использовать vi для редактирования файла:

sudo vi /usr/local/nagios/etc/objects/contacts.cfg

Найдите директиву электронной почты и замените ее значение (выделенную часть) своим собственным адресом электронной почты:

email                           nagios@localhost        ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******

Сохранить и выйти.

Настройка команды check_nrpe

Давайте добавим новую команду в нашу конфигурацию Nagios:

  1. sudo vi /usr/local/nagios/etc/objects/commands.cfg

Добавьте следующее в конец файла:

define command{
        command_name check_nrpe
        command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

Сохранить и выйти. Это позволяет использовать команду check_nrpe в определениях службы Nagios.

Настроить Apache

Используйте htpasswd для создания пользователя-администратора с именем \nagiosadmin, который может получить доступ к веб-интерфейсу Nagios:

sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Введите пароль в командной строке. Запомните этот логин, так как он понадобится вам для доступа к веб-интерфейсу Nagios.

Примечание. Если вы создаете пользователя без имени \nagiosadmin, вам нужно будет отредактировать /usr/local/nagios/etc/cgi.cfg и изменить все ссылки \nagiosadmin на созданный вами пользователь.

Nagios готов к запуску. Давайте сделаем это и перезапустим Apache:

sudo systemctl daemon-reload
sudo systemctl start nagios.service
sudo systemctl restart httpd.service

Чтобы Nagios мог запускаться при загрузке сервера, выполните следующую команду:

sudo chkconfig nagios on

Необязательно: ограничить доступ по IP-адресу

Если вы хотите ограничить IP-адреса, которые могут получить доступ к веб-интерфейсу Nagios, вам нужно отредактировать файл конфигурации Apache:

sudo vi /etc/httpd/conf.d/nagios.conf

Найдите и прокомментируйте следующие две строки, добавив перед ними символы #:

Order allow,deny
Allow from all

Затем раскомментируйте следующие строки, удалив символы #, и добавьте IP-адреса или диапазоны (разделенные пробелами), которые вы хотите разрешить, в строке Разрешить от:

#  Order deny,allow
#  Deny from all
#  Allow from 127.0.0.1

Поскольку эти строки появятся в файле конфигурации дважды, вам нужно будет выполнить эти шаги еще раз.

Сохранить и выйти.

Теперь запустите Nagios и перезапустите Apache, чтобы изменения вступили в силу:

sudo systemctl restart nagios.service
sudo systemctl restart httpd.service

Теперь Nagios запущен, поэтому давайте попробуем войти в систему.

Доступ к веб-интерфейсу Nagios

Откройте свой любимый веб-браузер и перейдите на свой сервер Nagios (замените IP-адрес или имя хоста выделенной частью):

http://nagios_server_public_ip/nagios

Поскольку мы настроили Apache для использования htpasswd, вы должны ввести учетные данные для входа, которые вы создали ранее. Мы использовали «nagiosadmin» в качестве имени пользователя:

После аутентификации вы увидите домашнюю страницу Nagios по умолчанию. Нажмите на ссылку Hosts на левой панели навигации, чтобы увидеть, какие хосты отслеживает Nagios:

Как видите, Nagios отслеживает только «localhost» или самого себя.

Давайте проследим за другим хостом с помощью Nagios!

Мониторинг хоста CentOS 7 с помощью NRPE

В этом разделе мы покажем вам, как добавить новый хост в Nagios, чтобы он находился под наблюдением. Повторите этот раздел для каждого сервера CentOS или RHEL, который вы хотите отслеживать.

Примечание. Если вы хотите отслеживать сервер Ubuntu или Debian, следуйте инструкциям по этой ссылке: Мониторинг хоста Ubuntu с помощью NRPE.

На сервере, который вы хотите отслеживать, установите репозиторий EPEL:

sudo yum install epel-release

Теперь установите плагины Nagios и NRPE:

sudo yum install nrpe nagios-plugins-all

Теперь давайте обновим файл конфигурации NRPE. Откройте его в своем любимом редакторе (мы используем vi):

sudo vi /etc/nagios/nrpe.cfg

Найдите директиву allowed_hosts и добавьте частный IP-адрес вашего сервера Nagios в список с разделителями-запятыми (подставьте его вместо выделенного примера):

allowed_hosts=127.0.0.1,10.132.224.168

Сохранить и выйти. Это настраивает NRPE для приема запросов от вашего сервера Nagios через его частный IP-адрес.

Перезапустите NRPE, чтобы изменения вступили в силу:

sudo systemctl start nrpe.service
sudo systemctl enable nrpe.service

После того, как вы закончите установку и настройку NRPE на хостах, которые вы хотите отслеживать, вам нужно будет добавить эти хосты в конфигурацию вашего сервера Nagios, прежде чем он начнет их отслеживать.

Добавить хост в конфигурацию Nagios

На сервере Nagios создайте новый файл конфигурации для каждого удаленного хоста, который вы хотите отслеживать, в /usr/local/nagios/etc/servers/. Замените выделенное слово \yourhost именем вашего хоста:

sudo vi /usr/local/nagios/etc/servers/yourhost.cfg

Добавьте следующее определение хоста, заменив значение host_name на ваше удаленное имя хоста (в примере \web-1), а значение alias на описание хоста. и значение address с частным IP-адресом удаленного хоста:

define host {
        use                             linux-server
        host_name                       yourhost
        alias                           My first Apache server
        address                         10.132.234.52
        max_check_attempts              5
        check_period                    24x7
        notification_interval           30
        notification_period             24x7
}

С приведенным выше файлом конфигурации Nagios будет отслеживать только то, работает ли хост или нет. Если вам этого достаточно, сохраните и выйдите, а затем перезапустите Nagios. Если вы хотите отслеживать определенные службы, читайте дальше.

Добавьте любой из этих служебных блоков для служб, которые вы хотите отслеживать. Обратите внимание, что значение check_command определяет, что будет отслеживаться, включая пороговые значения состояния. Вот несколько примеров, которые вы можете добавить в файл конфигурации вашего хоста:

Пинг:

define service {
        use                             generic-service
        host_name                       yourhost
        service_description             PING
        check_command                   check_ping!100.0,20%!500.0,60%
}

SSH (notifications_enabled, установленный на 0, отключает уведомления для службы):

define service {
        use                             generic-service
        host_name                       yourhost
        service_description             SSH
        check_command                   check_ssh
        notifications_enabled           0
}

Если вы не уверены, что означает use generic-service, это просто наследование значений шаблона сервиса под названием \generic-service, который определен по умолчанию.

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

sudo systemctl reload nagios.service

После того, как вы закончите настройку Nagios для мониторинга всех ваших удаленных хостов, вы должны быть настроены. Обязательно войдите в веб-интерфейс Nagios и зайдите на страницу «Службы», чтобы увидеть все отслеживаемые хосты и службы:

Заключение

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

Удачи!