Вступление
Если вы системный администратор, вы должны знать текущее состояние вашей инфраструктуры и служб. Нет ничего хуже, чем слишком поздно замечать, что ваши диски выходят из строя, или получать уведомления о простоях обслуживания ваших пользователей вместо того, чтобы замечать их раньше.
Вот где мониторинг вступает в игру. Программное обеспечение, которое отслеживает состояние оборудования, время работы и сервисы ваших серверов, а также выдает предупреждения, когда что-то идет не так, может сэкономить много головной боли. В очень простом сценарии система мониторинга будет предупреждать вас, если какие-либо службы будут недоступны В более надежном уведомления будут приходить вскоре после появления любых подозрительных признаков, таких как увеличение использования памяти или ненормальное количество соединений 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.