Icinga 2 установка и настройка ubuntu

Обновлено: 02.07.2024

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

Icinga была создана в 2009 году в качестве разветвления средства мониторинга Nagios. Но потом была заново переписана на С++ и стала одним из самых популярных инструментов мониторинга в интернете. Слово " Ицинга " - это Зулусское слово, означающее "оно ищет", или "оно обозревает", или "оно исследует".

В этом учебном пособии мы покажем вам, как установить и настроить инструмент мониторинга Icinga 2 на сервере LTS Ubuntu 20.04 . Мы установим Icinga 2 из официального репозитория, а затем настроим icingaweb2, облегченный и расширяемый веб-интерфейс для системы мониторинга icinga2.

ПРЕДПОСЫЛКИ

Для этого руководства мы установим icinga2 и icingaweb2, используя сервер Ubuntu 20.04 с 2 ГБ оперативной памяти. Но эти данные меняются в зависимости от размера вашей ИТ-инфраструктуры.

ЧТО МЫ БУДЕМ ДЕЛАТЬ?

  • Установка Icinga2 и Nagios Monitoring Plugins;
  • Установка и настройка базы данных MySQL;
  • Установка и настройка модуля Icinga MySQL;
  • Установка Apache2 и PHP-пакетов;
  • Установка и настройка Icingaweb2;
  • Установка Icinga2 Stack Post.

ШАГ 1 - УСТАНОВКА ICINGA2 И СИСТЕМЫ МОНИТОРИНГА NAGIOS

Сперва мы добавим репозиторий icinga2 для Ubuntu 20.04 и установим пакеты icinga2 и плагины мониторинга Nagios. Добавьте GPG ключ Icinga2 в вашу систему.

Вставьте следующую конфигурацию репозитория.

Нажмите сохранить и закройте. Затем обновите все доступные репозитории и установите подключаемые модули Icinga2 и Nagios Monitoring с помощью команды apt ниже.

Favorite

Добавить в избранное (1 оценок, среднее: 5,00 из 5)
I cinga 2 является открытой системой мониторинга сетевого трафика, который проверяет доступность сетевых ресурсов, уведомляет пользователей о отключений, и генерирует данные о производительности для создания отчетов.

Icinga 2 является масштабируемой и расширяемой и он может контролировать большие, сложные среды на нескольких местах.

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

Icinga 2 постоянно находится в процессе развития:

  • Качество кода
  • Взаимодействие с внешними интерфейсами
  • Масштабируемость
  • Четкие, объектно-ориентированной конфигурации
  • Интеллектуальные проверки и команды агентов на основе проверки
  • Динамические уведомления
  • Бизнес-процессы из коробки

Войдите на свой сервер через SSH

Вы можете проверить, есть ли у вас последняя установленная версия Ubuntu на сервере с помощью следующей команды:

Вы должны получить этот результат:

Обновите систему

Убедитесь, что ваш сервер полностью в актуальном состоянии с помощью:

Включить функцию добавления репозитория и добавить репозиторий для Icinga указанными ниже командами:

Обновление индекса пакетов:

Установка Icinga 2:

После завершения установки вы должны проверить, работает ли Icinga 2:

после чего вы должны получить выходные данные, показанные ниже:

Включить Icinga 2 для запуска при загрузке:

Icinga 2 имеет следующие особенности, включенные по умолчанию:

Кроме того, вы можете проверить включенные и выключенные функции:

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

Во время установки вам будет предложено, хотите ли вы базу данных для настройки. Это полностью зависит от вас, но ради избежания позже созданой базы данных для модуля, вы должны выбрать для dbconfig-common для настройки базы данных.

После завершения установки, включите модуль:

Затем перезапустите Icinga 2 для того, чтобы изменения вступили в силу.

Вы можете проверить учетные данные базы данных , установленные вами из файла ido-mysql.conf или в терминах команд:

ОК. Теперь мы установили Icinga 2 и включили некоторые модули. Теперь, спрашиваем: Есть ли у меня какой-то GUI / веб-доступ к Icinga 2?

Еще нет. Для того, чтобы включить, мы установим плагин web2. Это может быть сделано с помощью следующей команды:

После завершения установки войдите службу MySQL как root и создайте базу данных для веб-интерфейса:

Вас встретят на странице конфигурации, как показано, как на рисунке ниже:

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

Мастер довольно прост и ваш следующий шаг, чтобы создать маркер настройки. Как указано в инструкции, на сервере выполните следующую команду:

В следующем окне вы можете выбрать, какой модуль должен быть включен. Мониторинг включен по умолчанию, но другие нет. После того, как вы закончите нажмите Далее .

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

Последующее окно для конфигурации первого пользователя с правами администратора для Icinga Web 2. Введите имя пользователя и пароль и продолжите.

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

В следующем окне все настройки проверяются и, если все нормально, идти дальше.

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

Вы должны ввести учетные данные базы данных, настроенные ранее во время установки модуля IDO. Если вы не помните настройки, проверьте их в файле ido-mysql.conf:

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

Затем нажмите Далее из окна мониторинга безопасности.

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

После того, как вы нажмете на Далее, вы должны оказаться на странице готовой установки, как на картинке ниже:

PS. Если вам понравился этот пост, пожалуйста, поделитесь им с друзьями в социальных сетях с помощью кнопок соц сетей на левой стороне поста или просто оставьте комментарий ниже. Заранее благодарю.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.


Про icinga2 пишут почему-то на удивление мало и то, что пишут как-то не создаёт общего концепта. В одном месте пишут как написать скрипт, в другом как установить всё это дело, а что с этим делать потом не ясно.

Я сам использую icinga где-то с начала 2013 года, тогда ещё была только первая версия и сильно далеко от Nagios'a она не ушла.С выходом второй версии поменялось очень много и для меня выбор очевиден.

Дальше я хочу рассказать, как это всё быстро установить и, что более интересно, что дальше с этим делать.

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

Если первая версия работала на ядре от Nagios'a, то во второй версии всё было сделано по-новому, чтобы было быстро и красиво. Для этого команде от icinga пришлось переписать ядро и теперь без больших усилий можно сделать либо распределенную систему, либо то-же самое, но к этому добавить еще и кластер.

Но такое делается для больших сетей (over 10k в одном сегменте). Когда только выходила вторая версия, то я читал, что у них на тестах один сервер мог обрабатывать до 10к обращений в секунду, я столько серверов не держу, поэтому подтвердить не могу.

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

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

Активный режим

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

У активного способа есть два больших минуса, которые собственно всё и решили:

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

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

Пассивный режим

В этом случае открываем на стороне icinga2 сервера порт 5667 для NSCA или включаем Icinga2 APi (порт 5665) и просто ждём пока нам придёт состояние какой-либо системы, при этом icinga смотрит, когда статус обновился последний раз и если статус не обновляется какое-то определённое время, то icinga помечает его как неизвестный. Ну и конечно куда-же без ложки дёгтя — если надо проверять роутер или принтер или где-то опрашивать SNMP, то при пассивных опросах это сделать нельзя. Но тут можно написать костыль, один из серверов в этой же сети может опрашивать через SNMP и слать статус в icinga, но для этого надо писать скрипт.

NSCA это уже в какой-то мере устаревшее решение, но для виндовс систем, пока нету хорошей альтернативы(чтобы не пришлось много делать руками). В линуксе я уже написал некоторое количество скриптов и они обращаются к Icinga2 Api. Совсем недавно я так-же написал библиотеку для node.js (ссылка внизу).

Как уже было понятно выше, я хочу установить Icinga2 и настроить её в пассивном режиме.
Для Icinga2 я сделал контейнер (docker).

Что в контейнере:

1. Icinga Web 2 — веб интерфейс, где можно смотреть статус
2. Graphite — чтобы отображались красивые графики
3. Icinga2 Classic UI — тоже гуи, но с первой версии, чтобы можно было использовать старые программы типа Nagstamon (для виндовс) или adagios (для андроида)
4.= Интеграция с AD, но оказалось, что она нам не нужна, поэтому я её давно не проверял, может оказаться, что она не работает.
5. NSCA Server — нужен чтобы принимать метрики с винды или от тех кто использует nsca
6. Icinga2 API — api от icinga. Можно делать всё — устанавливать статус, добавлять/удалять хосты и сервисы итд.

Для тех кто никогда не пользовался докером, показываю как установить всё это на убунту (16.04). Сначала ставим докер ну и для удобсва можно ещё и docker-compose.


Потом стартуем контейнер с Icinga2 без Active Directory:

Немного описания для переменных и остального

“-h” — название хоста, отображается потом на странице
“-v /storage…” — хранятся конфиги и дб
“GRAPHITE_HOST” — это ip сервера где работает контейнер, через этот адрес icinga2 обращается к graphite
“APIUSER” — это ясно и так. Желательно поменять на что-то типа “0ilkasjdf09123malskdf”
“APIPASS” — это тоже ясно
“ICINGA_PASS” — пароль для пользователя “icingaadmin”
“MAILSERVER” — хост где у вас есть почтовый сервер, у меня стоит exchange в той же сети, поэтому он просто работает как relay
“EMAILADDR” — адрес который использует icinga2.
“NSCAPASS” и “NSCAPORT” я думаю понятно.

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

Доступен по адресу GRAPHITE_HOST:80

Так-же есть старая версия по GRAPHITE_HOST/icinga2-classicui. Эту версию можно использовать, чтобы подключить к примеру anag и смотреть статус через телефон. Или есть ещё nagstamon это для компьютера, он вроде бы уже может и через Icinga2 API обращаться, опция есть, но я сильно не смотрел.

Говорю сразу, что лучше использовать их, чем смотреть емайлы, потому что их будет очень много, либо это всё надо очень тонко настраивать.

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

Хост — passive-host.conf — можно назвать как хотите, но должен заканчиваться на .conf


Небольшое описание шаблонов

Ждёт пока статус придёт два раза, если оба показывают ошибку, то тогда статус меняется на ошибку.

enable_active_checks = true нужен, чтобы в случае неполучения статуса от сервера поменять его на «неизвестный».

Если два раза не правильный результат, то шлёт емайл. Кстати по опыту могу сказать, что письма сыпятся без перерыва и очень много, особенно в начале и по ним тоже не всегда ясно какой уже сервис снова заработал, а какой нет. Поэтому я советую использовать nagstamon или же всегда смотреть на станицу.

Я раньше помню некоторые письма слали сразу в OTRS, которая создавала тикет, тоже было удобно и клиент сразу всё видел.

Эти два файла надо поместить в папку “/storage/icinga2” и перезапустить контейнер, либо сервис icinga в нём.


Всё, шаблоны добавлены, теперь можно добавлять системы и всё что надо.

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

Для виндовс

Для винды есть готовый клинт — nsclient++. Он может работать в обоих вариантах (пассивный и активный) при пассивном он посылает данные через NSCA, в контейнере Icinga2 этот сервис активен и его можно использовать, обращатся надо через порт 5667. Дла виндовс это хороший вариант, так как тут уже есть всё готовое, можно проверять статус сервисов, смотреть eventlog'и, ну и такие вещи как диск, процессор или память. Так-же при желании можно выполнять произвольные скрипты (надо их сначала написать. Я например писал для lsi raid) вывод которых можно посылать через nsca.

Я уже писал выше, что мы хотели устанавливать icinga у клиентов, но писать конфиги для nsclient++ довольно утомительно и их надо писать для каждого сервера и к тому же на стороне icinga надо тоже писать конфиги.

Я всё это упростил и написал небольшую программку (тогда я мог только AutoIt), которая может генерировать эти два файла для хоста и icinga. Программа находится ТУТ (скачать можно в релизах), называется “Agen” (Alerts Generator).


interval — время проверки в минутах
address — dns или ip icinga cервера
password — NSCA пароль (который написали выше при создании контейнера)
htemplate — название шаблона для хоста (было уже выше)
stemplate — название шаблона для сервисов
hgroup — группа хостов, если к примеру вы их хотите поделить. К примеру Hosting, DataCenter2 итд или для разных клиентов, как было в моём случае. Можно кстати потом привязать пользователя к одной группе
sgroup — тоже, что и выше, только для сервисов

Теперь можно запустить Agen и выбрать папку, где находится source.txt и config.xml. Выглядит это так:


Часть информации берется из congig.xml, надо только добавить “Host Alias” и “Host Display Name” (будет отображаться на странице).

Информаци слева берётся из source.txt. Как пользоваться:

Слева выбираете, что у вас работает на этом сервере. К примеру выбираете “winExchange2013” и “eveExchange2013”, пишете Host Alias (без пробелов) и Host Display Name (можно с пробелами), если нужна к этому конфигурация для icinga, то ставите галочку. После этих манипуляций появятся два файла:

hostalias.conf — его надо скопировать в контейнер (/storage/icinga2) и перезагрузить icinga
nsclient.ini — скопировать в папку, где установлен nsclient++

Что есть в source.txt. Собственно весь Аgen крутится вокруг этого файла, всё делится на две части:
“win” — виндовс сервисы
“eve” — события из eventlog

То есть, если выбрать “winExchange2013”, то в конфиги добавятся все сервисы, которые относятся к Exchange 2013 и будут мониторится. Если к этому выбрать ещё и “EveID Exchange 2013”, то к этому добавятся ещё и события из eventlog’a.

То есть после того как вы это сделали и надавили окей у вас появятся два файла «nsclient.ini» и «SERVER.conf». После этого надо положить nsclient.ini в папку, где установлен nsclient++, а SERVER.conf добавить к контейнеру (как при сосздании passive-host.conf и passive-service.conf). А после этого надо всё перезагрузить — сервис «nsca» перезапустить, так-же надо перезапустить сервис icinga2.

Единственный момент, сервисы в source.txt нызываются по немецкий, так что их надо будет переименовать.

MSExchangeADTopology:Windows_Dienst_Ex_AD_Topology
MSExchangeADTopology — это часть везде одинаковая, независимо от языка системы, а вот вторая часть уже везде разная.

Собственно про видновс это всё.

Линукс

Тут всё несколько сложнее, так как клиента похожего на nsclient++ нету. Есть три способа, можно установить «send_nsca», потом написать скрипт и через «send_nsca» слать статус, скрипты будут выполняться каждые две минуты по крону.

Третий способ, это использовать готовые скрипты и всё таки настроить активные опросы. Но тут я не подскажу, так как стараюсь всё таки этого избегать.

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

Для докера я тоже сделал контейнер, который может видеть (через docker.sock) сколько есть контейнеров на хосте. Также он может создавать для каждого контейнера в icinga2 хост и его потом мониторить. То есть получается динамичный мониторинг. Если контейнер удаляют с докер хоста, то он также удаляется и из мониторинга.

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

Сама по себе icinga2 довольно проста в настройке и через некоторое время становится всё ясно. Для себя я сделал несколько несколько вещей (которые я выше описал), чтобы упростить использование. Также для тех кто может использовать nodejs может писать для себя скрипты, по ссылке ниже есть библиотека для этого.

Я особо сильно не люблю углубляться в технические части, всё банально гуглится и находится.

1. Icinga2 Docker — контейнер с образом icinga2 2.6
1а. Гит репозиторий, если кому-то нужны только скрипты установки icinga2.
2. Agen — генератор конфигураций для nsclient++
3. Nsclient++ — клиент для виндовс
4. dockerhost-monitoring — контейнер, чтобы мониторить состояния всех контейнеров на отдельном докер хосте.
5. Docker Container NSCA monitoring — старый вариант мониторинга контейнеров(через nsca)
6. Icinga2 API nodejs — модуль/библиотека для nodejs
7. aditosnmp — пример опроса snmp. Здесь как раз тот момент, когда приходится опрашивать статус через snmp, а потом слать статус. Надо смотреть «app.js»

И несколько не в тему, контейнер для бекапа контейнеров и не только — nodebackup. Жалко просто, что я его залил на гитхаб, а не кто не знает.


Установите Icinga на Ubuntu 20.04 LTS Focal Fossa

Шаг 1. Во-первых, убедитесь, что все ваши системные пакеты обновлены, выполнив следующие apt команды в терминале.

Шаг 2. Установите стек LAMP.

Требуется сервер Ubuntu 20.04 LAMP. Если у вас не установлена LAMP, вы можете следовать нашему руководству здесь .

Шаг 3. Установка Icinga на Ubuntu 20.04.

Теперь мы устанавливаем пакеты icinga2 и плагины Nagios Monitoring. Сначала добавьте GPG-ключ Icinga2 в вашу систему:

Добавьте следующую конфигурацию репозитория:

Затем запустите обновление списка пакетов и установите пакеты Icinga:

После завершения установки запустите службу Icinga2 и добавьте ее в загрузку системы:

Шаг 4. Настройте сервер базы данных.

Затем, чтобы заставить Icinga работать с новой версией MySQL / MariaDB, мы настроим пользователя MySQL icinga2 с собственной парольной аутентификацией MySQL:

После этого измените аутентификацию пользователя icinga2 @ localhost на собственный плагин аутентификации MySQL, используя следующий запрос:

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

Шаг 5. Установка Icinga Web.

Затем сгенерируйте токен icingaweb2 для установки:

Вы увидите аналогичный результат:

Затем войдите в оболочку MySQL, используя команду MySQL ниже:

Создайте новую базу данных и пользователя, используя следующие запросы:

Шаг 6. Доступ к веб-интерфейсу Icinga 2.

Поздравляю! Вы успешно установили Icinga . Благодарим за использование этого руководства для установки Icinga 2 в вашей системе Ubuntu 18.04 LTS. Для получения дополнительной помощи или полезной информации мы рекомендуем вам посетить официальный сайт Icinga .

Читайте также: