Учебники

Nagios — Краткое руководство

Nagios — Обзор

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

Что такое непрерывный мониторинг

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

Есть несколько преимуществ использования непрерывного мониторинга —

  • Он обнаруживает все проблемы с сервером и сетью.
  • Он находит основную причину сбоя.
  • Это помогает в снижении стоимости обслуживания.
  • Это помогает в устранении проблем с производительностью.
  • Это помогает в обновлении инфраструктуры, прежде чем она устареет.
  • Он может исправить проблемы автоматически при обнаружении.
  • Это гарантирует, что серверы, сервисы, приложения, сеть всегда в рабочем состоянии.
  • Он контролирует полную инфраструктуру каждую секунду.

Что такое Nagios

Nagios — это инструмент непрерывного мониторинга с открытым исходным кодом, который контролирует сеть, приложения и серверы. Он может находить и устранять проблемы, обнаруженные в инфраструктуре, и останавливать будущие проблемы, прежде чем они затронут конечных пользователей. Это дает полный статус вашей ИТ-инфраструктуры и ее производительность.

Почему Нагиос

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

  • Он может контролировать серверы баз данных, такие как SQL Server, Oracle, Mysql, Postgres
  • Он предоставляет информацию об уровне приложения (Apache, Postfix, LDAP, Citrix и т. Д.).
  • Обеспечивает активное развитие.
  • Имеет отличную поддержку от огромного активного сообщества.
  • Nagios работает на любой операционной системе.
  • Он может пинговать, чтобы увидеть, доступен ли хост.

Преимущества Nagios

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

  • Это помогает избавиться от периодического тестирования.
  • Он обнаруживает сбои доли секунды, когда ремешок на запястье все еще находится в «прерывистой» стадии.
  • Это снижает стоимость обслуживания без ущерба для производительности.
  • Обеспечивает своевременное оповещение руководства о контроле и поломках.

Nagios — Архитектура

В этой главе подробно рассказывается об архитектуре Nagios.

Nagios Architecture

Следующие пункты заслуживают внимания об архитектуре Nagios —

  • Nagios имеет архитектуру сервер-агент.

  • Сервер Nagios установлен на хосте, а плагины установлены на удаленных хостах / серверах, которые должны контролироваться.

  • Nagios посылает сигнал через планировщик процессов для запуска плагинов на локальных / удаленных хостах / серверах.

  • Плагины собирают данные (загрузка процессора, использование памяти и т. Д.) И отправляют их обратно в планировщик.

  • Затем графики процесса отправляют уведомления администраторам и обновляют графический интерфейс Nagios.

Nagios имеет архитектуру сервер-агент.

Сервер Nagios установлен на хосте, а плагины установлены на удаленных хостах / серверах, которые должны контролироваться.

Nagios посылает сигнал через планировщик процессов для запуска плагинов на локальных / удаленных хостах / серверах.

Плагины собирают данные (загрузка процессора, использование памяти и т. Д.) И отправляют их обратно в планировщик.

Затем графики процесса отправляют уведомления администраторам и обновляют графический интерфейс Nagios.

Nagios Architecture

На следующем рисунке подробно показана архитектура агента сервера Nagios —

Архитектура агента сервера

Nagios — Продукты

Nagios содержит различные продукты, как подробно описано ниже —

Нагиос XI

Он обеспечивает мониторинг всех компонентов ИТ-инфраструктуры, таких как приложения, сервисы, сеть, операционные системы и т. Д. Он дает полное представление о вашей инфраструктуре и бизнес-процессах. Графический интерфейс пользователя легко настраивается, обеспечивая гибкость использования. Стандартная версия этого инструмента стоит 1995 долларов, а корпоративная — 3495 долларов.

Nagios Core

Это ядро ​​мониторинга ИТ-инфраструктуры. Продукт Nagios XI также основывается на ядре Nagios. Всякий раз, когда возникает какая-либо проблема в инфраструктуре, он отправляет предупреждение / уведомление администратору, который может быстро предпринять действия для решения проблемы. Этот инструмент абсолютно бесплатный.

Nagios Log Server

Это делает поиск данных журнала очень простым и легким. Все данные журнала хранятся в одном месте с настройкой высокой доступности. Он может легко отправлять оповещения, если какая-либо проблема обнаружена в данных журнала. Он может масштабироваться до 1000 серверов, обеспечивая большую мощность, скорость, объем хранилища и надежность для вашей платформы анализа журналов. Цена этого инструмента зависит от количества экземпляров — 1 экземпляр 3995 долл. США, 2 экземпляра 4995 долл. США, 3 экземпляра 5995 долл. США, 4 экземпляра 6995 долл. США, 10 экземпляров 14995 долл. США.

Nagios Fusion

Этот продукт обеспечивает централизованное представление всей системы мониторинга. С помощью Nagios Fusion вы сканируете настройки отдельных серверов мониторинга для разных регионов. Его можно легко интегрировать с Nagios XI и ядром Nagios, чтобы обеспечить полную видимость инфраструктуры. Этот инструмент стоит $ 2495.

Nagios Network Analyzer

Он предоставляет полную информацию о сетевой инфраструктуре администратору с потенциальными угрозами в сети, чтобы администратор мог предпринять быстрые действия. Он делится очень подробными данными о сети после глубокого анализа сети. Этот инструмент стоит $ 1995.

Nagios — Установка

В этой главе подробно описаны шаги по настройке Nagios в Ubuntu.

Перед установкой Nagios в вашей системе Ubuntu должны присутствовать некоторые пакеты, такие как Apache, PHP, пакеты сборки и т. Д. Поэтому давайте сначала установим их.

Шаг 1 — Запустите следующую команду, чтобы установить предварительно необходимые пакеты —

sudo apt-get install wget build-essential apache2 php apache2-mod-php7.0 php-gd
libgd-dev sendmail unzip

Шаг 2 — Затем создайте пользователя и группу для Nagios и добавьте их в Apache www-data user.

sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios
sudo usermod -a -G nagios,nagcmd www-data

Шаг 3 — Загрузите последнюю версию пакета Nagios.

wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-
4.4.3.tar.gz

Шаг 4 — Извлеките файл tarball.

tar -xzf nagios-4.4.3.tar.gz
cd nagios-4.4.3/

Шаг 5 — Запустите следующую команду, чтобы скомпилировать Nagios из исходного кода.

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

Шаг 6 — Запустите следующую команду для создания файлов Nagios.

make all

Шаг 7 — Запустите команду, показанную ниже, чтобы установить все файлы Nagios.

sudo make install

Шаг 8 — Запустите следующие команды для установки файлов конфигурации init и external command.

sudo make install-commandmode
sudo make install-init
sudo make install-config
sudo /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sitesavailable/
nagios.conf

Шаг 9 — Теперь скопируйте каталог обработчика событий в каталог Nagios.

sudo cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/
sudo chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers

Шаг 10 — Загрузите и распакуйте плагины Nagios.

cd
wget https://nagios-plugins.org/download/nagiosplugins-
2.2.1.tar.gz
tar -xzf nagios-plugins*.tar.gz
cd nagios-plugins-2.2.1/

Шаг 11 — Установите плагины Nagios с помощью приведенной ниже команды.

./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl
make
sudo make install

Шаг 12 — Теперь отредактируйте файл конфигурации Nagios и раскомментируйте номер строки 51 → cfg_dir = / usr / local / nagios / etc / servers

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

Шаг 13 — Теперь создайте каталог сервера.

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

Шаг 14 — Редактируйте файл конфигурации контактов.

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

конфигурация контактов

Шаг 15 — Теперь включите модули Apache и настройте пользователя nagiosadmin.

sudo a2enmod rewrite
sudo a2enmod cgi
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
sudo ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/

Шаг 16 — Теперь перезапустите Apache и Nagios.

service apache2 restart
service nagios start
cd /etc/init.d/
sudo cp /etc/init.d/skeleton /etc/init.d/Nagios

Шаг 17 — Редактируйте файл Nagios.

sudo gedit /etc/init.d/Nagios
DESC = "Nagios"
NAME = nagios
DAEMON = /usr/local/nagios/bin/$NAME
DAEMON_ARGS = "-d /usr/local/nagios/etc/nagios.cfg"
PIDFILE = /usr/local/nagios/var/$NAME.lock

Шаг 18 — Сделайте файл Nagios исполняемым и запустите Nagios.

sudo chmod +x /etc/init.d/nagios
service apache2 restart
service nagios start

Шаг 19 — Теперь перейдите в ваш браузер и откройте URL → http: // localhost / nagios . Теперь войдите в Nagios с именем пользователя nagiosadmin и используйте пароль, который вы установили ранее. Экран входа в систему Nagios показан на снимке экрана ниже.

скриншот контактов

Если вы выполнили все шаги правильно, появится веб-интерфейс Nagios. Вы можете найти приборную панель Nagios, как показано ниже —

Приборная панель Nagios

Nagios — Конфигурация

В предыдущей главе мы видели установку Nagios. В этой главе давайте разберемся с его конфигурацией в деталях.

Файлы конфигурации Nagios находятся в / usr / local / nagios / etc. Эти файлы показаны на скриншоте ниже.

Конфигурация Nagios

Давайте поймем важность каждого файла сейчас —

nagios.cfg

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

cgi.cfg

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

resource.cfg

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

Они также удобны для указания пути к плагинам и обработчикам событий — если вы решите переместить плагины или обработчики событий в другой каталог в будущем, вы можете просто обновить один или два макроса $ USERx $ вместо изменения большого количества определения команд. Файлы ресурсов также могут использоваться для хранения директив конфигурации для внешних источников данных, таких как MySQL.

Ресурс

внешние источники данных

Файлы конфигурации внутри каталога объектов используются для определения команд, контактов, хостов, сервисов и т. Д.

commands.cfg

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

пример

define command {
   command_name check_local_disk
   command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
}

define command {
   command_name check_local_load
   command_line $USER1$/check_load -w $ARG1$ -c $ARG2$
}

define command {
   command_name check_local_procs
   command_line $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
}

contacts.cfg

Этот файл содержит информацию о контактах и ​​группах Nagios. По умолчанию в одном контакте уже присутствует администратор Nagios.

пример

define contact {
   contact_name nagiosadmin
   use generic-contact
   alias Nagios Admin
   email avi.dunken1991@gmail.com
}

define contactgroup {
   contactgroup_name admins
   alias Nagios Administrators
   members nagiosadmin
}

templates.cfg

Этот файл конфигурации содержит некоторые примеры шаблонов определений объектов, на которые ссылаются другие определения хоста, службы, контакта и т. Д. В других файлах конфигурации.

timeperiods.cfg

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

Nagios — Особенности

Nagios — это инструмент мониторинга со множеством функций, как указано ниже —

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

  • Мощный механизм мониторинга, который может масштабировать и управлять тысячами хостов и серверов.

  • Комплексная веб-панель мониторинга, позволяющая увидеть все компоненты сети и данные мониторинга.

  • Он имеет мультитенантные возможности, когда несколько пользователей имеют доступ к панели мониторинга Nagios.

  • Он имеет расширяемую архитектуру, которая может легко интегрироваться со сторонними приложениями с несколькими API.

  • Nagios имеет очень активное и большое сообщество с более чем 1 миллионом пользователей по всему миру.

  • Система быстрого оповещения, отправляет оповещения администраторам сразу после выявления любой проблемы.

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

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

  • Функция упреждающего планирования помогает узнать, когда пришло время обновить инфраструктуру.

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

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

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

Он имеет мультитенантные возможности, когда несколько пользователей имеют доступ к панели мониторинга Nagios.

Он имеет расширяемую архитектуру, которая может легко интегрироваться со сторонними приложениями с несколькими API.

Nagios имеет очень активное и большое сообщество с более чем 1 миллионом пользователей по всему миру.

Система быстрого оповещения, отправляет оповещения администраторам сразу после выявления любой проблемы.

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

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

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

Nagios — Приложения

Nagios может применяться для широкого спектра применений. Они даны здесь —

  • Мониторинг ресурсов узла, таких как дисковое пространство, системные журналы и т. Д.

  • Мониторинг сетевых ресурсов — http, ftp, smtp, ssh и т. Д.

  • Мониторинг файлов журналов непрерывно, чтобы идентифицировать инфра-проблему.

  • Мониторинг Windows / Linux / Unix / веб-приложений и его состояние.

  • Удаленный плагин Nagios (NRPE) может осуществлять удаленный мониторинг сервисов.

  • Запустите сервисные проверки параллельно.

  • Туннели SSH или SSL также можно использовать для удаленного мониторинга.

  • Отправлять оповещения / уведомления

  • по электронной почте, смс, пейджер любой проблемы по инфраструктуре

  • Рекомендации по обновлению ИТ-инфраструктуры.

Мониторинг ресурсов узла, таких как дисковое пространство, системные журналы и т. Д.

Мониторинг сетевых ресурсов — http, ftp, smtp, ssh и т. Д.

Мониторинг файлов журналов непрерывно, чтобы идентифицировать инфра-проблему.

Мониторинг Windows / Linux / Unix / веб-приложений и его состояние.

Удаленный плагин Nagios (NRPE) может осуществлять удаленный мониторинг сервисов.

Запустите сервисные проверки параллельно.

Туннели SSH или SSL также можно использовать для удаленного мониторинга.

Отправлять оповещения / уведомления

по электронной почте, смс, пейджер любой проблемы по инфраструктуре

Рекомендации по обновлению ИТ-инфраструктуры.

Nagios — Хосты и Услуги

Nagios — это самый популярный инструмент, который используется для мониторинга хостов и сервисов, работающих в вашей ИТ-инфраструктуре. Хосты и сервисные конфигурации являются строительными блоками Nagios Core.

  • Хост — это как компьютер; это может быть физическое устройство или виртуальное.

  • Службы — это те, которые используются Nagios для проверки информации о хосте.

Хост — это как компьютер; это может быть физическое устройство или виртуальное.

Службы — это те, которые используются Nagios для проверки информации о хосте.

Вы можете создать файл хоста в каталоге сервера Nagios и упомянуть определения хоста и сервиса. Например —

sudo gedit /usr/local/nagios/etc/servers/ubuntu_host.cfg

# Файл конфигурации Ubuntu Host

define host {
   use linux-server
   host_name ubuntu_host
   alias Ubuntu Host
   address 192.168.1.10
   register 1
}
define service {
   host_name ubuntu_host
   service_description PING
   check_command check_ping!100.0,20%!500.0,60%
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

Приведенные выше определения добавляют хост с именем ubuntu_host и определяют сервисы, которые будут работать на этом хосте. После перезапуска Nagios этот хост начнет отслеживаться Nagios, и указанные службы будут запущены.

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

Nagios — Команды

Определение команды определяет команду. Команды включают проверки служб, уведомления служб, обработчики событий служб, проверки узлов, уведомления узлов и обработчики событий узлов. Определения команд для Nagios определены в файле commands.cfg.

Ниже приведен формат для определения команды:

define command {
   command_name command_name
   command_line command_line
}

Имя команды — эта директива используется для идентификации команды. На определения контакта, хоста и службы ссылается имя команды.

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

пример

define command{
   command_name check_ssh
   command_line /usr/lib/nagios/plugins/check_ssh $HOSTADDRESS$
}

Эта команда выполнит плагин — / usr / libl / nagios / plugins / check_ssh с 1 параметром: ‘$ HOSTADDRESS $’

Очень короткое определение хоста, которое будет использовать эту команду проверки, может быть похоже на показанное здесь —

define host{
   host_name host_tutorial
   address 10.0.0.1
   check_command check_ssh
}

Определения команд рассказывают, как выполнять проверки хоста / службы. Также определяется, как генерировать уведомления, если обнаружена какая-либо проблема, и обрабатывать любое событие. Существует несколько команд для выполнения проверок, таких как команды для проверки правильности работы SSH, команда для проверки работоспособности базы данных, команда для проверки работоспособности хоста и многие другие.

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

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

define command {
   command_name check-host-alive-limits
   command_line $USER5$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
}

Определение хоста для вышеуказанной команды —

define host {
   host_name system2
   address 10.0.15.1
   check_command check-host-alive-limits!1000.0,70%!5000.0,100%
}

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

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

[time] command_id;command_arguments

Вы также можете ознакомиться со списком всех внешних команд, которые можно использовать в Nagios здесь — https://assets.nagios.com/downloads/nagioscore/docs/externalcmds/

Нагиос — Чеки и штаты

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

Учтите, что вы поместили определения хоста в файл host1.cfg в каталог / usr / local / nagios / etc / objects.

cd /usr/local/nagios/etc/objects
gedit host1.cfg

Вот как выглядят ваши определения хостов в настоящее время —

define host {
   host_name host1
   address 10.0.0.1
}

Теперь давайте добавим директиву check_interval. Эта директива используется для выполнения запланированных проверок хостов для установленного вами номера; по умолчанию это в минутах. Используя приведенное ниже определение, проверки хоста будут выполняться через каждые 3 минуты.

define host {
   host_name host1
   address 10.0.0.1
   check_interval 3
}

В Nagios 2 типа проверок выполняются на хостах и ​​сервисах —

  • Активные проверки
  • Пассивные проверки

Активные проверки

Активные проверки инициируются процессом Nagios, а затем выполняются на регулярной основе. Логика проверки внутри процесса Nagios запускает активную проверку. Для мониторинга хостов и сервисов, работающих на удаленных машинах, Nagios запускает плагины и сообщает, какую информацию собирать. Затем плагин запускается на удаленной машине, где собирает необходимую информацию и отправляет ее обратно демону Nagios. В зависимости от статуса, полученного на хостах и ​​сервисах, предпринимаются соответствующие действия.

На приведенном ниже рисунке показана активная проверка —

Активная проверка

Они выполняются через равные промежутки времени, как определено в check_interval и retry_interval.

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

Пассивные проверки работают как объяснено здесь —

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

На рисунке ниже показана пассивная проверка —

Пассивная проверка

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

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

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

Есть два типа состояний —

  • Мягкое состояние
  • Тяжелое состояние

Мягкое состояние

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

Сложное состояние

Когда выполняется max_check_attempts и состояние хоста или службы все еще не в порядке, используется жесткое состояние. Nagios выполняет обработчики событий для обработки сложных состояний.

На следующем рисунке показаны мягкие состояния и жесткие состояния.

мягкие жесткие состояния

Nagios — Порты и протоколы

Эта глава дает представление о портах и ​​протоколах, которые включает в себя Nagios.

протоколы

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

  • http (s), порты 80 и 443. — Интерфейсы продукта на веб-сайте Nagios. Агенты Nagios могут использовать http для перемещения данных.

  • snmp, порты 161 и 162 — snmp является важной частью мониторинга сети. Порт 161 используется для отправки запросов узлам, а сообщение 162 используется для получения результатов.

  • ssh, порт 22 — Nagios изначально работает на CentOS или RHEL Linux. Администратор может войти в Nagios через SSH, когда он захочет, и выполнить проверки.

http (s), порты 80 и 443. — Интерфейсы продукта на веб-сайте Nagios. Агенты Nagios могут использовать http для перемещения данных.

snmp, порты 161 и 162 — snmp является важной частью мониторинга сети. Порт 161 используется для отправки запросов узлам, а сообщение 162 используется для получения результатов.

ssh, порт 22 — Nagios изначально работает на CentOS или RHEL Linux. Администратор может войти в Nagios через SSH, когда он захочет, и выполнить проверки.

Порты

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

  • Butcheck_nt (nsclient ++) 12489
  • NRPE 5666
  • NSCA 5667
  • NCPA 5693
  • MSSQL 1433
  • MySQL 3306
  • PostgreSQL 5432
  • MongoDB 27017, 27018
  • OracleDB 1521
  • Электронная почта (SMTP) 25, 465, 587
  • WMI 135, 445 / дополнительные динамически назначенные порты в диапазоне 1024-1034

Nagios — Дополнения / Плагины

Плагины помогают контролировать базы данных, операционные системы, приложения, сетевое оборудование, протоколы с Nagios. Плагины — это скомпилированные исполняемые файлы или сценарии (Perl или не-Perl), которые расширяют функциональность Nagios для мониторинга серверов и хостов. Nagios запустит плагин для проверки статуса службы или хоста. Nagios может быть скомпилирован с поддержкой встроенного интерпретатора Perl для выполнения плагинов Perl. Без этого Nagios выполняет плагины Perl и не-Perl, разветвляясь и выполняя плагины как внешнюю команду.

Типы плагинов Nagios

В Nagios есть следующие плагины:

Официальные плагины Nagios — Есть 50 официальных плагинов Nagios. Официальные плагины Nagios разрабатываются и поддерживаются официальной командой плагинов Nagios.

Плагины сообщества. Существует более 3000 сторонних плагинов Nagios, разработанных сотнями членов сообщества Nagios.

Пользовательские плагины — Вы также можете написать свои собственные пользовательские плагины. Существуют определенные рекомендации, которые необходимо соблюдать при написании пользовательских плагинов.

Руководство по написанию пользовательских плагинов Nagios

При написании собственного плагина в Nagios вы должны следовать приведенным ниже рекомендациям —

  • Плагины должны предоставлять параметр командной строки «-V» (проверьте изменения конфигурации)
  • Распечатать только одну строку текста
  • Распечатать диагностическую и только часть справочного сообщения
  • Сетевые плагины используют DEFAULT_SOCKET_TIMEOUT для тайм-аута
  • «-v» или «—verbose» относится к уровню многословия
  • «-t» или «—timeout» (время ожидания плагина);
  • «-w» или «—warning» (порог предупреждения);
  • «-c» или «—critical» (критический порог);
  • «-H» или «—hostname» (имя хоста для проверки)

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

Код выхода Статус Описание
0 Хорошо Работает нормально
1 ПРЕДУПРЕЖДЕНИЕ Работает нормально, но требует внимания
2 КРИТИЧЕСКИЕ Не работает правильно
3 НЕИЗВЕСТНЫЙ Когда плагин не может определить статус хоста / сервиса

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

Sr.No Вариант и описание
1

-h, —help

Это обеспечивает помощь

2

-V, — версия

Это печатает точную версию плагина

3

-v, —verbose

Это заставляет плагин давать более подробную информацию о том, что он делает

4

-t, —timeout

Это обеспечивает время ожидания (в секундах); по истечении этого времени плагин сообщит о КРИТИЧЕСКОМ статусе

5

-w, — предупреждение

Это обеспечивает специфичные для плагина ограничения для статуса WARNING.

6

-с, —критический

Это обеспечивает специфичные для плагина ограничения для КРИТИЧЕСКОГО статуса

7

-H, —hostname

Это обеспечивает имя хоста, IP-адрес или сокет Unix для связи с

8

-4, —use-ipv4

Это позволяет вам использовать IPv4 для подключения к сети

9

-6, —use-ipv6

Это позволяет вам использовать IPv6 для подключения к сети

10

-p, —port

Используется для подключения к порту TCP или UDP.

11

-с, — отправить

Это обеспечивает строку, которая будет отправлена ​​на сервер

12

-e, —expect

Это обеспечивает строку, которая должна быть отправлена ​​обратно с сервера

13

-q, —quit

Это обеспечивает строку для отправки на сервер, чтобы закрыть соединение

-h, —help

Это обеспечивает помощь

-V, — версия

Это печатает точную версию плагина

-v, —verbose

Это заставляет плагин давать более подробную информацию о том, что он делает

-t, —timeout

Это обеспечивает время ожидания (в секундах); по истечении этого времени плагин сообщит о КРИТИЧЕСКОМ статусе

-w, — предупреждение

Это обеспечивает специфичные для плагина ограничения для статуса WARNING.

-с, —критический

Это обеспечивает специфичные для плагина ограничения для КРИТИЧЕСКОГО статуса

-H, —hostname

Это обеспечивает имя хоста, IP-адрес или сокет Unix для связи с

-4, —use-ipv4

Это позволяет вам использовать IPv4 для подключения к сети

-6, —use-ipv6

Это позволяет вам использовать IPv6 для подключения к сети

-p, —port

Используется для подключения к порту TCP или UDP.

-с, — отправить

Это обеспечивает строку, которая будет отправлена ​​на сервер

-e, —expect

Это обеспечивает строку, которая должна быть отправлена ​​обратно с сервера

-q, —quit

Это обеспечивает строку для отправки на сервер, чтобы закрыть соединение

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

SMTP — это протокол, который используется для отправки электронных писем. Стандартные плагины Nagios содержат команды для проверки SMTP. Определение команды для SMTP —

define command {
   command_name check_smtp
   command_line $USER2$/check_smtp -H $HOSTADDRESS$
}

Давайте использовать плагин Nagios для мониторинга MySQL. Nagios предлагает 2 плагина для мониторинга MySQL. Первый плагин проверяет, работает ли соединение MySQL или нет, а второй плагин используется для расчета времени, необходимого для выполнения запроса SQL.

Определения команд для обоих следующие:

define command {
   command_name check_mysql
   command_line $USER1$/check_mysql –H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -d
   $ARG3$ -S –w 10 –c 30
}

define command {
   command_name check_mysql_query
   command_line $USER1$/check_mysql_query –H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -d
   $ARG3$ -q $ARG4$ –w $ARG5$ -c $ARG6$
}

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

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

define command {
   command_name check_partition
   command_line $USER1$/check_disk –p $ARG1$ –w $ARG2$ -c $ARG3$
}

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

Nagios — NRPE

Демон Nagios, который запускает проверки на удаленных машинах в NRPE (Nagios Remote Plugin Executor). Это позволяет удаленно запускать плагины Nagios на других машинах. Вы можете отслеживать показатели удаленных компьютеров, такие как использование диска, загрузка процессора и т. Д. Он также может проверять показатели удаленных машин Windows через некоторые дополнения агента Windows.

Плагин Executor

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

Шаг 1 — Запустите приведенную ниже команду, чтобы установить NRPE на удаленной машине Linux, которая будет отслеживаться.

sudo apt-get install nagios-nrpe-server nagios-plugins

Шаг 2 — Теперь создайте файл хоста в каталоге сервера и поместите все необходимые определения для хоста.

sudo gedit /usr/local/nagios/etc/servers/ubuntu_host.cfg
# Ubuntu Host configuration file

define host {
   use linux-server
   host_name ubuntu_host
   alias Ubuntu Host
   address 192.168.1.10
   register 1
}

define service {
   host_name ubuntu_host
   service_description PING
   check_command check_ping!100.0,20%!500.0,60%
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Check Users
   check_command check_local_users!20!50
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Local Disk
   check_command check_local_disk!20%!10%!/
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Check SSH
   check_command check_ssh
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Total Process
   check_command check_local_procs!250!400!RSZDT
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

Шаг 3 — Запустите приведенную ниже команду для проверки файла конфигурации.

sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

проверка конфигурации

Шаг 4 — Перезапустите NRPE, Apache и Nagios, если нет ошибок.

service nagios-nrpe-server restart
service apache2 restart
service nagios restart

Шаг 5 — Откройте браузер и перейдите в веб-интерфейс Nagios. Вы можете видеть, что хост, который необходимо отслеживать, был добавлен к основной службе Nagios. Точно так же вы можете добавить больше хостов для мониторинга Nagios.

Веб-интерфейс Nagios

Nagios — V Shell

V-Shell — это легкий веб-интерфейс для Nagios Core, написанный на PHP. Он прост в установке и использовании и является альтернативой выходу Nagios. Интерфейс VShell находится на AngularJs, поэтому дизайн отзывчивый и современный. Он обеспечивает функциональность Quicksearch и RESTful API на основе CodeIgniter.

Nagios VShell совместим с Nagios XI и Nagios Core 3.x. Требуется php 5.3 или выше, php-cli и apache, установленные в системе. Давайте посмотрим, как установить Nagios VShell.

Шаг 1 — Перейдите в каталог tmp и загрузите tar-файл vshell.

cd /tmp
wget http://assets.nagios.com/downloads/exchange/nagiosvshell/vshell.tar.gz

файл tar

Шаг 2 — Извлеките файл tar.

tar zxf vshell.tar.gz

Шаг 3 — Перейдите в каталог vshell и дайте исполняемому разрешению файл install.php. Наконец, запустите скрипт установки.

cd vshell
chmod +x install.php
./install.php

установить скрипт

Шаг 4 — Теперь перейдите к https://192.168.56.101/vshell в вашем браузере, войдите в систему с помощью nagiosadmin, и ваш Vshell появится.

nagios admin

Nagios — тематическое исследование

В этой главе давайте рассмотрим тематические исследования двух организаций, которые успешно внедрили Nagios.

Битнетикс с Нагиос

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

Bitnetix работал с клиентом, который занимался почтовым маркетингом. Они использовали для мониторинга серверов AWS, которые были динамически распределены и отвечали за доставку тысяч электронных писем клиентам. Ранее они использовали ядро ​​Nagios, но хотели перейти на новый Nagios XI и интегрироваться с шеф-поваром без простоев. Были проблемы с переносом конфигурации текущего состояния ядра Nagios на соответствующие проверки в Nagios XI. Но с Nagios они смогли настроить файл конфигурации Nagios XI с интегрированным chef. Они смогли перевести всех клиентов из ядра Nagios в Nagios XI с нулевым временем простоя. Nagios XI также смог интегрироваться с PagerDuty для отправки мгновенных уведомлений.

EverWatch.gobal с Nagios

EverWatch.global — организация, занимающаяся управлением и консалтингом в области ИТ, которая помогает некоммерческим и малым / средним организациям. Штаб-квартира находится в Рочестере, Нью-Йорк. Они получили множество наград за свою работу с Nagios.

EverWatch.global работал с розничным клиентом электронной коммерции с годовым доходом в миллиард долларов. Они отвечали за постоянное поддержание работоспособности веб-сайта, мониторинг функциональности корзины и оформления заказа, отправку уведомлений необходимому персоналу в случае клеветы. Проблема заключалась в том, что серверы их клиентов находились в 500 милях от его штаб-квартиры в Нью-Йорке. Для мониторинга производства, постановки, обеспечения качества и разработки на одной и той же платформе конфигурации должны были быть уникальными и одинаковыми для обеих областей.

С помощью Nagios им удалось создать правила брандмауэра SSH для оборудования и Центра сетевых операций. Они также могли выполнять проверки на наличие случаев клеветы и снижение ложных срабатываний. Конфигурируя обработчики событий в Nagios, количество уведомлений резко сократилось. Nagios помог им, поддерживая работоспособность веб-сайта своего клиента до 98% в год с 85% в год, что имело огромный успех.

«В реальном долларовом выражении компания смогла получить почти 125 000 000 дополнительных продаж в результате», — сказал Эрик Лойд, генеральный директор EverWatch Global.