Как использовать Open Monitoring Distribution с Check_MK в Ubuntu 14.04

Вступление

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

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

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

  • Open Monitoring Distribution * (OMD) - это автономный пакет, включающий * Nagios * вместе с надстройками для сбора, мониторинга и отображения данных. Он поставляется в комплекте с * Check_MK Multisite *, всеобъемлющим инструментом, который устраняет многие недостатки * Nagios *. Он предоставляет веб-интерфейс для простого администрирования и настройки, удобную панель инструментов, надежную систему уведомлений и простые в установке агенты мониторинга для многих дистрибутивов Linux. Если бы не * Check_MK Multisite *, нам пришлось бы использовать разные представления для разных задач, и было бы невозможно настроить все параметры, не прибегая к работе с файлами конфигурации.

  • Open Monitoring Distribution * с * Check_MK * позволяет легко и доступно каждому настроить собственную систему мониторинга. В этом тексте мы покажем, как установить и настроить необходимые инструменты для мониторинга двух капель. Вот ваши предпосылки:

  • Одна капля с * Ubuntu 14.04 *

  • Одна капля с * CentOS 7 *

  • root-доступ к вашим каплям

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

Настройка экземпляра OMD для капли Ubuntu

Для начала установки * OMD * нам понадобится работающая * Ubuntu 14.04 * Droplet с привилегиями root. Все инструкции ниже были написаны с использованием чистой * Ubuntu 14.04 * Droplet без дополнительного программного обеспечения. Вы также можете добавить мониторинг в Droplet, например, с уже запущенным веб-сервером.

Рекомендуется обновить системные пакеты до последней версии перед установкой нового программного обеспечения. Для этого запустите:

apt-get update
apt-get upgrade

Проект * OMD * предоставляет готовые пакеты для * Ubuntu * на веб-сайте проекта.

Чтобы просмотреть пакеты, мы можем перейти на the сайт списка пакетов. Для * Ubuntu 14.04 x64 *, последней версии на момент написания этого текста, правильным пакетом является + omd-1.20.trusty.amd64.deb +.

Чтобы скачать пакет, выполните:

wget http://files.omdistro.org/releases/debian_ubuntu/omd-1.20.trusty.amd64.deb

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

100%[=================================================================>] 78,969,558  24.6MB/s   in 3.1s

2014-08-30 06:23:21 (24.6 MB/s) - "omd-1.20.trusty.amd64.deb" saved [78969558/78969558]

Чтобы установить недавно загруженный пакет, введите:

dpkg -i omd-1.20.trusty.amd64.deb

Это не удастся с первой попытки, поскольку пакет * OMD * имеет несколько зависимостей. Все в порядке. После попытки установить пакет, мы увидим сообщение об ошибке:

root@omdmaster:~# dpkg -i omd-1.20.trusty.amd64.deb
Selecting previously unselected package omd-1.20.
(Reading database ... 86590 files and directories currently installed.)
Preparing to unpack omd-1.20.trusty.amd64.deb ...
Unpacking omd-1.20 (0.trusty) ...
dpkg: dependency problems prevent configuration of omd-1.20:
omd-1.20 depends on libsnmp-python; however:
 Package libsnmp-python is not installed.
omd-1.20 depends on dialog; however:
 Package dialog is not installed.
omd-1.20 depends on fping; however:
 Package fping is not installed.
omd-1.20 depends on graphviz; however:
 Package graphviz is not installed.
omd-1.20 depends on libapache2-mod-fcgid; however:
 Package libapache2-mod-fcgid is not installed.
omd-1.20 depends on libapache2-mod-proxy-html; however:
 Package libapache2-mod-proxy-html is not installed.
omd-1.20 depends on apache2-mpm-prefork; however:
 Package apache2-mpm-prefork is not installed.
omd-1.20 depends on apache2-utils; however:
 Package apache2-utils is not installed.
omd-1.20 depends on libboost-program-options1.54.0; however:
 Package libboost-program-options1.54.0 is not installed.
omd-1.20 depends on libboost-system1.54.0; however:
 Package libboost-system1.54.0 is not installed.
omd-1.20 depends on libdbi1; howeve
dpkg: error processing package omd-1.20 (--install):
dependency problems - leaving unconfigured
Processing triggers for ureadahead (0.100.0-16) ...
Processing triggers for man-db (2.6.7.1-1) ...
Errors were encountered while processing:
omd-1.20

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

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

apt-get -f install

Мы увидим, что + apt-get + хочет установить много новых пакетов, включая + apache2 + и + mysql +. Это ожидаемо, поскольку * OMD * использует веб-интерфейс пользователя и сохраняет некоторые данные в базе данных MySQL.

Запустите эту команду:

apt-get -f install

Теперь установка должна успешно завершиться:

Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
 apache2 apache2-bin apache2-data (...)
0 upgraded, 147 newly installed, 0 to remove and 3 not upgraded.
1 not fully installed or removed.
Need to get 53.9 MB of archives.
After this operation, 275 MB of additional disk space will be used.
Do you want to continue? [Y/n]

После согласия на установку всех зависимостей (нажмите * y *), нам будет предложено установить пароль root для базы данных MySQL.

изображение: https: //assets.digitalocean.com/articles/OpenMonitoring/1.jpg [пароль root MySQL]

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

После ввода пароля установка продолжится без подсказок. Пакет * OMD *, который мы пытались установить заранее, также будет автоматически установлен во время процесса. После завершения установки должна быть возможность доступа к команде + omd + следующим образом:

omd

Выход:

Usage (called as root):

omd help                        Show general help
(...)

General Options:
-V <version>                    set specific version, useful in combination with update/create
omd COMMAND -h, --help          show available options of COMMAND

Команда + omd + - это основная команда, используемая для управления экземплярами * OMD * на сервере. Он используется для одновременного запуска и остановки всех служб мониторинга, и мы будем использовать его для создания первого экземпляра * OMD *.

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

Перед тем, как создать экземпляр * OMD *, нам нужно будет выбрать имя, по которому будет идентифицирован экземпляр. Он используется в дальнейшем при настройке, но также определяет веб-адрес, по которому будет доступен сайт мониторинга. Для простоты мы будем использовать + Monitoring + по всему тексту. Чтобы создать экземпляр, введите:

omd create monitoring

Инструмент + omd + настроит для нас все автоматически. Вывод команды должен выглядеть примерно так, как показано ниже:

Adding /omd/sites/monitoring/tmp to /etc/fstab.
Restarting Apache...AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
OK
Creating temporary filesystem /omd/sites/monitoring/tmp...OK
Created new site monitoring with version 1.20.

 The site can be started with omd start monitoring.
 The default web UI is available at http://omdmaster/monitoring/
 The admin user for the web applications is omdadmin with password omd.
 Please do a su - monitoring for administration of this site.

Экземпляр теперь создан, но все еще должен быть запущен. Чтобы запустить экземпляр, введите:

omd start monitoring

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

Starting rrdcached...OK
Starting npcd...OK
Starting nagios...OK
Starting dedicated Apache for site monitoring...OK
Initializing Crontab...OK

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

Чтобы получить доступ к экземпляру * OMD *, откройте ссылку: [http: // yourdropletip / мониторинг /] в веб-браузере. Нам будет предложено ввести пароль. По умолчанию это + omdadmin + для имени пользователя и + omd + для пароля, и мы изменим эти значения по умолчанию позже.

После входа в систему мы должны увидеть веб-страницу, подобную приведенной ниже:

изображение: https: //assets.digitalocean.com/articles/OpenMonitoring/2.jpg [домашняя страница OMD по умолчанию]

Это веб-страница * OMD * по умолчанию, предоставляющая доступ ко всем установленным инструментам и приложениям. Однако мы будем использовать только инструмент * Check_MK Multisite *. Это прекрасный инструмент, который не только предоставляет нам удобный способ настройки практически всех аспектов * OMD * и его инструментов, но также собирает графики, предупреждения и настройки в одной панели. Теперь мы будем ссылаться на * Check_MK Multisite * как просто * Check_MK *.

По умолчанию открывается экран * Check_MK * с приборной панелью, которая показывает все сервисы и статусы серверов в списках и использует практические графики, напоминающие Землю. Сразу после установки он пуст, но вскоре мы заставим его отображать статусы наших сервисов и систем.

изображение: https: //assets.digitalocean.com/articles/OpenMonitoring/3.jpg [Пустая контрольная панель Check_MK]

Изменение административного пароля

Имя пользователя и пароль по умолчанию + omdadmin / omd + легко запоминаются, но совсем не защищены, тем более что они предоставляются по умолчанию для каждой установки * OMD *. К счастью, это очень легко изменить.

Сначала откройте панель * Users * в меню WATO Configuration слева. В списке будут показаны все пользователи, которые в настоящее время имеют доступ к сайту * OMD *, по умолчанию перечисляя только + omdadmin +.

Изображение: HTTPS: //assets.digitalocean.com/articles/OpenMonitoring/4.jpg [ОМД]

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

Изображение: HTTPS: //assets.digitalocean.com/articles/OpenMonitoring/5.jpg [изображение]

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

Сразу после сохранения изменений нам будет предложено войти снова, используя наши новые учетные данные. Используйте ваш * новый пароль * здесь.

Изображение: HTTPS: //assets.digitalocean.com/articles/OpenMonitoring/6.jpg [изображение]

Теперь нам нужно сохранить изменения в файлах конфигурации. Это обозначается оранжевой кнопкой * 1 Changes *, которая говорит нам о том, что мы внесли некоторые изменения в конфигурацию * Check_MK *, которые необходимо сохранить и активировать. Это будет происходить каждый раз, когда мы меняем конфигурацию нашей системы мониторинга, а не только после редактирования учетных данных пользователя. Чтобы сохранить и активировать ожидающие изменения, мы должны нажать на эту кнопку и согласиться активировать перечисленные изменения.

image: https: //assets.digitalocean.com/articles/OpenMonitoring/7.jpg [image] + image: https: //assets.digitalocean.com/articles/OpenMonitoring/8.jpg [image] + image: https: //assets.digitalocean.com/articles/OpenMonitoring/9.jpg[image]

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

Мониторинг первого хоста

Компоненты, установленные с * OMD *, отвечают за сбор, хранение и представление информации мониторинга. Они не предоставляют саму информацию.

Для сбора фактических данных мы будем использовать * Check_MK Agent *, инструмент, разработанный специально для * Check_MK *, способный одновременно отслеживать все важные компоненты системы.

Установка агента

Первым хостом, за которым мы будем следить, будет сама * OMD * Droplet.

Чтобы начать мониторинг, мы должны сначала установить * Check_MK Agent *. Пакеты для всех основных дистрибутивов, включая * Ubuntu *, доступны на Check_MK сайте проекта. Чтобы загрузить пакет, необходимый для нашей * Ubuntu 14.04 * Droplet, введите:

wget http://mathias-kettner.de/download/check-mk-agent_1.2.4p5-2_all.deb

После загрузки установите пакет, используя:

dpkg -i check-mk-agent_1.2.4p5-2_all.deb

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

check_mk_agent

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

Ограничение доступа к данным мониторинга

По умолчанию данные из + check_mk_agent + обслуживаются с помощью + xinetd +, механизма, который выводит данные на определенный сетевой порт при обращении к нему. Это означает, что мы можем получить доступ к + check_mk_agent +, используя telnet для порта 6556 (порт по умолчанию для * Check_MK *) с любого другого компьютера в Интернете. Вот доказательство (запустите эти команды с вашего локального компьютера или другого удаленного хоста и замените приведенный ниже IP-адрес на IP-адрес вашего Droplet):

[root@otherhost ~]$ telnet  6556

Выход:

Trying 178.62.42.115...
Connected to 178.62.42.115.
Escape character is '^]'.
<<<check_mk>>>
Version: 1.2.4p5
AgentOS: linux
PluginsDirectory: /usr/lib/check_mk_agent/plugins
LocalDirectory: /usr/lib/check_mk_agent/local
SpoolDirectory: /etc/check_mk/spool
AgentDirectory: /etc/check_mk
(...)

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

Чтобы ограничить доступ к данным агента, мы должны отредактировать файл конфигурации в + / etc / xinetd.d / check_mk +. Тип:

nano /etc/xinetd.d/check_mk

Найдите этот раздел:

# configure the IP address(es) of your Nagios server here:
#only_from      = 127.0.0.1 10.0.20.1 10.0.20.2

Параметр + only_from + отвечает за ограничение доступа к определенным IP-адресам. Поскольку мы сейчас работаем над мониторингом того же дроплета, на котором включен * OMD *, можно разрешить подключение только локальному хосту. Раскомментируйте и обновите параметр конфигурации:

# configure the IP address(es) of your Nagios server here:
only_from      = 127.0.0.1

Сохраните и выйдите из файла.

Сервис + xinetd + должен быть перезапущен, чтобы изменения вступили в силу. Для этого мы должны выполнить:

service xinetd restart

Теперь агент запущен и работает и может принимать только локальные соединения. Чтобы проверить это, попробуйте команду + telnet + снова из удаленного местоположения:

telnet  6556

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

Настройка хоста в Check_MK

Чтобы добавить новый хост для мониторинга, мы должны перейти в меню * Hosts * в меню WATO Administration слева и нажать * Create new host *. Нас попросят предоставить некоторую информацию о хосте.

Изображение: HTTPS: //assets.digitalocean.com/articles/OpenMonitoring/10.jpg [изображение]

  • Hostname * - это знакомое имя, которое будет использоваться для мониторинга. Это может быть полное доменное имя, но это не обязательно. В этом примере мы назовем хост monitoring, так же как и имя самого экземпляра * OMD *. Поскольку monitoring не может быть преобразован в IP-адрес, мы также должны предоставить IP-адрес нашей капли. Так как мы контролируем локальный хост, IP будет просто * 127.0.0.1 *. Установите флажок, чтобы включить настройку IP.

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

Чтобы сохранить хост и настроить, какие службы будут отслеживаться, нажмите кнопку * Сохранить и перейти к службам *.

Изображение: HTTPS: //assets.digitalocean.com/articles/OpenMonitoring/11.jpg [изображение]

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

Изображение: HTTPS: //assets.digitalocean.com/articles/OpenMonitoring/12.jpg [изображение]

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

Работа с данными мониторинга

Теперь давайте взглянем на основную панель инструментов с помощью пункта меню * Dashboards / Main Overview * слева.

Изображение: HTTPS: //assets.digitalocean.com/articles/OpenMonitoring/13.jpg [изображение]

Сфера Земли теперь будет полностью зеленой, и таблица скажет, что у одного хозяина нет проблем. Мы можем увидеть полный список хостов, теперь состоящий из одного хоста, в представлении * Hosts / All hosts * (используя меню слева).

Изображение: HTTPS: //assets.digitalocean.com/articles/OpenMonitoring/14.jpg [изображение]

Там мы увидим, сколько служб находятся в хорошем состоянии (показано зеленым), сколько не работает, а сколько еще ожидает проверки. После нажатия на имя хоста мы сможем увидеть список всех сервисов с их полными статусами и их * Perf-O-Meters *. * Perf-O-Meter * показывает производительность отдельного сервиса относительно того, что * Check_MK * считает хорошим здоровьем.

Изображение: HTTPS: //assets.digitalocean.com/articles/OpenMonitoring/15.jpg [изображение]

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

Изображение: HTTPS: //assets.digitalocean.com/articles/OpenMonitoring/16.jpg [изображение]

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

Изображение: HTTPS: //assets.digitalocean.com/articles/OpenMonitoring/17.jpg [изображение]

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

Изображение: HTTPS: //assets.digitalocean.com/articles/OpenMonitoring/18.jpg [изображение]

Мониторинг второго хоста CentOS

Мониторинг становится действительно полезным, когда у вас несколько хостов. Мы добавим вторую каплю к нашему экземпляру * OMD *, работающему с * CentOS 7.0 x64 *.

Установка агента

Как и с нашей * Ubuntu * Droplet, установка * Check_MK Agent * необходима для сбора данных мониторинга. На этот раз нам понадобится пакет + rpm + с сайта проекта Check_MK. Чтобы загрузить пакет, необходимый для нашей * CentOS * Droplet, введите:

wget http://mathias-kettner.de/download/check_mk-agent-1.2.4p5-1.noarch.rpm

После загрузки установите пакет, используя:

yum install check_mk-agent-1.2.4p5-1.noarch.rpm

В * CentOS * + xinetd + не устанавливается по умолчанию, поэтому + yum + попросит установить зависимость. Согласитесь, и пакет будет установлен. Как и раньше, мы можем проверить, что агент работает правильно, выполнив + check_mk_agent + - результат будет аналогичен выводу из первой капли.

Ограничение доступа

На этот раз мы не будем отслеживать локальный хост, поэтому + xinetd + должен позволить дроплету с * OMD * собирать данные. Для этого начните редактирование файла конфигурации с:

nano /etc/xinetd.d/check_mk

и заменить

   # configure the IP address(es) of your Nagios server here:
   #only_from      = 127.0.0.1 10.0.20.1 10.0.20.2

with

   # configure the IP address(es) of your Nagios server here:
   only_from      =

Сохраните и выйдите из файла. Перезапустите сервис + xinetd +, используя:

service xinetd restart

Теперь мы можем перейти к настройке * Check_MK * для мониторинга нашего хоста CentOS 7.

Настройка нового хоста в Check_MK

Чтобы добавить дополнительные хосты в * Check_MK *, мы используем меню * Hosts *, как и раньше. На этот раз мы назовем хост + centos +, настроим его IP-адрес и выберем * WAN (высокая задержка) *, поскольку хост находится в другой сети. Используйте флажки для включения настроек IP и сети. Если мы пропустим это и оставим это как локальное, * Check_MK * скоро предупредит нас, что хост не работает, так как он будет ожидать, что он будет отвечать на запросы агента намного быстрее, чем это возможно через Интернет.

Изображение: HTTPS: //assets.digitalocean.com/articles/OpenMonitoring/19.jpg [изображение]

Нажмите * Сохранить и перейдите к Службам *, чтобы отобразить службы, доступные для мониторинга на * CentOS * Droplet. Список будет очень похож на первый с хоста. На этот раз мы также должны * Сохранить ручную проверку конфигурации * и активировать изменения, используя оранжевую кнопку в левом верхнем углу.

После активации изменений мы можем проверить, что хост контролируется, перейдя на страницу * All hosts *. Теперь должны быть видны два хоста + monitor + и + centos +.

Изображение: HTTPS: //assets.digitalocean.com/articles/OpenMonitoring/20.jpg [изображение]

Оповещения о сбоях и восстановлении сервисов по-прежнему будут отображаться на главной панели мониторинга для обоих хостов.

Добавление большего количества хостов

Можно добавить несколько хостов для мониторинга в * Check_MK *. Не существует верхнего предела, кроме производительности сервера, что не должно быть проблемой, пока мы не говорим о сотнях. Процедура такая же для любого другого хоста. Агенты * Check_MK * в пакетах + deb + и + rpm + работают не только в * Ubuntu * и * CentOS *, но и в других дистрибутивах Linux.

Резюме и дальнейшее чтение

  • Open Monitoring Distribution * позволяет легко настроить систему мониторинга на основе * Check_MK *, которая объединяет всю тяжелую работу в простой в использовании веб-интерфейс, полный опций и функций конфигурации. С помощью этих инструментов можно отслеживать несколько хостов, настраивать уведомления по электронной почте о проблемах, настраивать дополнительные проверки для большего количества сервисов, отслеживать доступность и производительность и многое, многое другое.

Http://mathias-kettner.de/checkmk.html[documentation for Check_MK] доступен на английском языке и представляет собой всеобъемлющий ресурс для пользователей и администраторов Check_MK.

Related