Как установить 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
:
- 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:
- cd ~
- curl -L -O http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz
Извлеките архив NRPE с помощью этой команды:
- tar xvf nrpe-*.tar.gz
Затем перейдите в извлеченный каталог:
- cd nrpe-*
Настройте NRPE с помощью следующих команд:
- ./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 с помощью следующих команд:
- make all
- sudo make install
- sudo make install-xinetd
- sudo make install-daemon-config
Откройте сценарий запуска xinetd в редакторе:
- 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:
- 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:
- 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 и зайдите на страницу «Службы», чтобы увидеть все отслеживаемые хосты и службы:
Заключение
Теперь, когда вы отслеживаете свои хосты и некоторые из их служб, вы можете потратить некоторое время на то, чтобы выяснить, какие службы имеют для вас решающее значение, чтобы вы могли начать их мониторинг. Вы также можете настроить уведомления, чтобы, например, вы получали электронное письмо, когда использование вашего диска достигает предупреждения или критического порога, или ваш основной веб-сайт не работает, чтобы вы могли решить ситуацию быстро или даже до того, как проблема возникнет.
Удачи!