One place for hosting & domains

      Мониторинг

      Мониторинг объявлений и мероприятий по BGP при помощи BGPalerter в Ubuntu 18.04


      Автор выбрал COVID-19 Relief Fund для получения пожертвования в рамках программы Write for DOnations.

      Введение

      BGP (таблица пограничного межсетевого протокола) — один из ключевых протоколов, отвечающих за маршрутизацию пакетов через Интернет, поэтому когда он работает неправильно, могут возникать серьезные перебои с Интернетом. Например, в 2019 году небольшой интернет-провайдер создал неправильную конфигурацию BGP, которая, к сожалению, распространилась на более высокие уровни и вывела большие сегменты Cloudflare и AWS оффлайн более чем на час. Кроме того, годом ранее был осуществлен захват BGP, чтобы перехватить трафик к известному провайдеру криптовалютных кошельков и похитить средства ничего не подозревающих клиентов.

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

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

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

      Предварительные требования

      Для данного обучающего руководства вам потребуется следующее:

      • Сервер Ubuntu 18.04, настроенный согласно руководству по первоначальной настройке сервера с Ubuntu 18.04, включая пользователя non-root user с привилегиями sudo.

      • Одна или несколько сетей и устройств, которые вы хотите отслеживать, например:

        • Ваш сервер
        • Сеть вашей компании
        • Ваш локальный интернет-провайдер

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

      Подготовив все вышеперечисленное, войдите на сервер в качестве non-root user, чтобы начать подготовку.

      Шаг 1 — Определение сетей для мониторинга

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

      BGPalerter может выполнять мониторинг на основе отдельных IP-адресов или сетевых префиксов. Он также может отслеживать целые сети на основе номера автономной системы — уникального в глобальном масштабе идентификатора сети, принадлежащего конкретному административному объекту.

      Для нахождения этой информации вы можете использовать службу пооиска IP-to-ASN WHOIS, которую предоставляет служба разведки угроз Team Cymru. Это пользовательский сервер WHOIS, предназначенный для просмотра IP-адресов и информации о сетевой маршрутизации.

      Если у вас не установлен whois, вы можете сделать это с помощью следующих команд:

      • sudo apt update
      • sudo apt install whois

      Как только вы убедились, что whois установлен, начните с поиска IP-адресов вашего собственного сервера с помощью аргумента -h для указания настраиваемого сервера:

      • whois -h whois.cymru.com your-ip-address

      Это выведет примерно следующий результат, где указано имя и номер AS, в котором находится ваш сервер. Как правило, это будет AS вашего хостинг-провайдера — например, DigitalOcean.

      Output

      AS | IP | AS Name 14061 | your-ip-address | DIGITALOCEAN-ASN, US

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

      • whois -h whois.cymru.com " -p your-ip-address"

      Вывод будет очень похож на предыдущую команду, но теперь он будет показывать префикс IP-адреса, к которому относится IP-адрес вашего сервера:

      Output

      AS | IP | BGP Prefix | AS Name 14061 | your-ip-address | 157.230.80.0/20 | DIGITALOCEAN-ASN, US

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

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

      • whois -h whois.cymru.com " -v as14061"

      При этом будет показана дополнительная информация об AS:

      Output

      AS | CC | Registry | Allocated | AS Name 14061 | US | arin | 2012-09-25 | DIGITALOCEAN-ASN, US

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

      Шаг 2 — Создание непривилегированного пользователя для BGPalerter

      На этом шаге вы создадите новую учетную запись непривилегированного пользователя для BGPalerter, т.к. для работы этой программы не требуются права sudo/root.

      Сначала создайте нового пользователя с отключенным паролем:

      • sudo adduser --disabled-password bgpalerter

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

      Войдите под именем нового пользователя с помощью команды su:

      Вы вошли как новый пользователь:

      bgpalerter@droplet:/home/user$
      

      Используйте команду cd для перехода в домашнюю директорию нового пользователя:

      bgpalerter@droplet:/home/user$ cd
      bgpalerter@droplet:~$
      

      Вы создали нового непривилегированного пользователя для BGPalerter. Далее вы установите и настроите BGPalerter в своей системе.

      Шаг 3 — Установка и настройка BGPalerter

      На этом шаге вы установите и настроите BGPalerter. Убедитесь, что вы все еще в системе под именем своего нового непривилегированного пользователя.

      Сначала вам нужно определить последний выпуск BGPalerter, чтобы убедиться, что вы загружаете актуальную версию. Перейдите на страницу Выпуски BGPalerter и скопируйте ссылки на загрузку самой последней версии Linux x64.

      Теперь вы можете загрузить копию BGPalerter с помощью wget, если подставите правильную ссылку на загрузку:

      • wget https://github.com/nttgin/BGPalerter/releases/download/v1.24.0/bgpalerter-linux-x64

      Когда файл загрузится, отметьте его как исполняемый:

      • chmod +x bgpalerter-linux-x64

      Затем убедитесь, что BGPalerter загружен и успешно установлен, сверив номер версии:

      • ./bgpalerter-linux-x64 --version

      В результате будет выведен текущий номер версии:

      Output

      1.24.0

      Чтобы корректно запустить BGPalerter, необходимо сначала определить сети, которые вы хотите отслеживать в файле конфигурации. Создайте и откройте файл prefixes.yml в предпочитаемом текстовом редакторе:

      В этом файле конфигурации вы укажете каждый пользовательский IP-адрес, диапазоны IP-адресов и номера AS, которые вы хотите отслеживать.

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

      ~/prefixes.yml

      your-ip-address/32:
        description: My Server
        asn:
          - 14061
        ignoreMorespecifics: false
      
      157.230.80.0/20:
        description: IP range for my Server
        asn:
          - 14061
        ignoreMorespecifics: false
      
      options:
        monitorASns:
          '14061':
            group: default
      

      Вы можете отслеживать столько диапазонов IP-адресов или номеров AS, сколько захотите. Чтобы отслеживать отдельные IP-адреса, указывайте /32 для IPv4 и /128 для IPvv6.

      Значение ignoreMorespecifics используется, чтобы контролировать, должен ли BGPalerter игнорировать деятельность на маршрутах, более специфичных (меньших) по сравнению с тем, который вы отслеживаете. Например, если вы отслеживаете /20, и изменение маршрутизации обнаружено в нем для /24, то это считается более специфичным маршрутом. В большинстве случаев их не нужно игнорировать, но если вы отслеживаете большую сеть с несколькими префиксами делегированных пользователей, то это может снизить фоновый шум.

      Теперь вы можете запустить BGPalerter в первый раз, чтобы начать отслеживать свои сети:

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

      Output

      Impossible to load config.yml. A default configuration file has been generated. BGPalerter, version: 1.24.0 environment: production Loaded config: /home/bgpalerter/config.yml Monitoring 157.230.80.0/20 Monitoring your-ip-address/32 Monitoring AS 14061

      BGPalerter будет продолжать работать, пока вы не остановите его нажатием Ctrl+C.

      На следующем шаге вы перейдете к интерпретации некоторых предупреждений, которые может создавать BGPalerter.

      Шаг 4 — Интерпретация интерфейсов BGPalerter

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

      По умолчанию BGPalerter отслеживает и предупреждает о следующем:

      • Route hijacks: выдается в случае, когда AS объявляет запрещенный префикс, вызывая ошибочную маршрутизацию трафика. Это может быть либо преднамеренным нападением, либо случайной ошибки в конфигурации.

      • Потеря видимости маршрута: маршрут считается видимым, когда большинство маршрутизаторов BGP в Интернете может надежно создавать маршруты к нему. Потеря видимости указывает на потенциальную недоступность вашей сети — например, если ваш BGP peering прекращает работать.

      • Новые объявления субпрефиксов заключаются в том, что AS начинает объявлять префикс, который меньше ожидаемого. Это может свидетельствовать об изменении целевой конфигурации, случайной ошибочной конфигурации или, в некоторых случаях — о нападении.

      • Деятельность в рамках вашего AS: обычно используется для новых сообщений о маршрутах. Трафик считается «новым», если BGPalerter еще не знает о нем.

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

      Alert #1

      The prefix 203.0.113.0/24 is announced by AS64496 instead of AS65540
      

      Это предупреждение свидетельствует о захвате маршрута, т.к. AS64496 объявил 203.013.0/24, хотя ожидается, что этот маршрут будет объявлен AS65540. Это надежный показатель ошибочной конфигурации, приводящей к утечке маршрута, либо преднамеренного захвата злоумышленником.

      Alert #2

      The prefix 203.0.113.0/24 has been withdrawn. It is no longer visible from 6 peers
      

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

      Alert #3

      A new prefix 203.0.113.0/25 is announced by AS64496. It should be instead 203.0.113.0/24 announced by AS64496
      

      Это предупреждение показывает, что был объявлен более специфичный префикс там, где это не ожидалось — например, /25, когда ожидалось только /24. Скорее всего, это ошибочная конфигурация, но в некоторых случаях это может свидетельствовать о захвате маршрута.

      Alert #4

      AS64496 is announcing 192.0.2.0/24 but this prefix is not in the configured list of announced prefixes
      

      Помимо этого, данное предупреждение показывает, что AS64496 объявил префикс, который BGPalerter еще не знает. Это может быть связано с тем, что вы обоснованно объявляете новый префикс, или может говорить об ошибочной конфигурации, из-за которой вы случайно объявили чужой префикс.

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

      Шаг 5 — Запуск BGPalerter во время начальной загрузки

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

      Убедитесь, что вы все еще в системе под именем нового непривилегированного пользователя, затем откройте crontab:

      Добавьте следующую строку внизу файла crontab:

      crontab

      @reboot sleep 10; screen -dmS bgpalerter "./bgpalerter-linux-x64"
      

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

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

      Сначала нужно выйти из вашего пользователя BGPalerter:

      Затем перезагрузите систему, как обычно:

      После перезагрузки системы снова войдите на сервер и при помощи su еще раз получите доступ к вашему пользователю BGPalerter:

      Затем можно в любой момент присоединиться к сессии для просмотра вывода BGPalerter:

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

      Заключение

      В этой статье вы настроили BGPalerter и использовали его для отслеживания сетей с целью внесения изменений в маршрутизацию BGP.

      Если хотите сделать BGPalerter более удобным для пользователя, то можно настроить его для отправки предупреждений через канал Slack посредством веб-хука:

      Если хотите узнать больше о самой системе BGP, но у нас нет доступа к производственной среде BGP, то вам может пригодиться DN42 для экспериментов с BGP в безопасной изолированной среде:



      Source link

      Мониторинг состояния сервера с помощью Checkmk на Ubuntu 18.04


      Автор выбрал фонд Open Internet/Free Speech для получения пожертвования в рамках программы Write for DOnations.

      Введение

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

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

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

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

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

      Предварительные требования

      Шаг 1 — Установка Checkmk на Ubuntu

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

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

      Для просмотра пакетов можно перейти на сайт списка пакетов. Среди прочих можно выбрать Ubuntu 18.04 в меню страницы.

      Теперь загрузите пакет:

      • wget https://checkmk.com/support/1.6.0p8/check-mk-raw-1.6.0p8_0.bionic_amd64.deb

      Затем установите только что загруженный пакет:

      • sudo apt install -y ./check-mk-raw-1.6.0p8_0.bionic_amd64.deb

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

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

      Эта команда omd выведет следующее:

      Output

      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 может управлять всеми экземплярами Checkmk на нашем сервере. Она может запускать и останавливать все службы мониторинга одновременно, и мы можем использовать ее для создания нашего экземпляра Checkmk. Однако сначала нам нужно обновить настройки брандмауэра, чтобы разрешить внешний доступ к веб-портам по умолчанию.

      Шаг 2 — Изменение настроек брандмауэра

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

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

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

      Теперь проверьте изменения:

      Вы увидите, что Apache указан в списке разрешенных служб:

      Output

      Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)

      Это позволит нам получить доступ к веб-интерфейсу Checkmk.

      В следующем шаге мы создадим первый экземпляр мониторинга Checkmk.

      Шаг 3 — Создание экземпляра мониторинга Checkmk

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

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

      • sudo omd create monitoring

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

      Output

      Adding /opt/omd/sites/monitoring/tmp to /etc/fstab. Creating temporary filesystem /omd/sites/monitoring/tmp...OK Restarting Apache...OK Created new site monitoring with version 1.6.0p8.cre. The site can be started with omd start monitoring. The default web UI is available at http://your_ubuntu_server/monitoring/ The admin user for the web applications is cmkadmin with password: your-default-password (It can be changed with 'htpasswd -m ~/etc/htpasswd cmkadmin' as site user.) Please do a su - monitoring for administration of this site.

      В этом выводе выделены адрес URL, имя пользователя по умолчанию и пароль для доступа к нашему интерфейсу для мониторинга. Теперь экземпляр создан, но требуется его запуск. Для запуска экземпляра введите:

      • sudo omd start monitoring

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

      Output

      Starting mkeventd...OK Starting rrdcached...OK Starting npcd...OK Starting nagios...OK Starting apache...OK Initializing Crontab...OK

      Экземпляр готов и запущен.

      Для доступа к экземпляру Checkmk откройте http://your_ubuntu_server_ip/monitoring/ в браузере. Вам будет предложено ввести пароль. Используйте учетные данные по умолчанию, напечатанные ранее на экране, позже мы их изменим.

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

      Пустая информационная панель Checkmk

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

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

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

      Сначала откройте страницу Users в меню WATO — Configuration слева. В списке отобразятся все пользователи, у которых сейчас есть доступ к сайту Checkmk. Сразу после установки в нем будет только два пользователя. Первый — automation — предназначен для использования с автоматизированными инструментами, второй — cmkadmin — пользователь для выполнения входа на сайт.

      Список пользователей Checkmk

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

      Форма для редактирования пользователя-администратора Checkmk

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

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

      Еще раз откройте страницу Users​​​ в меню WATO — Configuration​​​ слева. Кнопка оранжевого цвета в верхнем левом углу, отмеченная как 1 Change, говорит о том, что выполнены изменения конфигурации Checkmk, которые требуется сохранить и активировать. Это будет происходить при каждом изменении конфигурации нашей системы мониторинга, а не только после изменения учетных данных пользователя. Для сохранения и активации ожидающих изменений необходимо нажать на эту кнопку и дать согласие на активацию указанных изменений с помощью опции Activate affected​​ на следующем экране.

      Список пользователей Checkmk после выполнения измененийЭкран подтверждения активации изменений конфигурацииУспешная активация изменений конфигурации

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

      Установка Checkmk теперь готова к использованию. В следующем шаге мы добавим первый хост в нашу систему мониторинга.

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

      Теперь мы готовы к мониторингу первого хоста. Для этого сначала установим check-mk-agent на сервер Ubuntu. Затем мы ограничим доступ к данным мониторинга с помощью xinetd.

      Компоненты, установленные с помощью Checkmk, отвечают за получение, хранение и представление информации мониторинга. Они не предоставляют информацию как таковую.

      Для сбора фактических данных мы будем использовать агент Checkmk​​​. Специально разработанный агент Checkmk способен выполнять мониторинг всех важных компонентов системы одновременно и отправлять отчет с этой информацией обратно в экземпляр Checkmk.

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

      Первый хост, который мы будем отслеживать, your_ubuntu_server, — это сервер, на котором мы установили непосредственно сам экземпляр Checkmk.

      Для начала необходимо установить агент Checkmk. Пакеты для всех основных дистрибутивов, включая Ubuntu, доступны прямо в веб-интерфейсе. Откройте страницу Monitoring Agents в меню WATO — Configuration слева. Вы увидите доступные для загрузки агенты с наиболее популярными пакетами в первом разделе, отмеченном Packaged agents​​​.

      Список доступных пакетов агентов для мониторинга

      Пакет check-mk-agent_1.6.0p8-1_all.deb предназначен для дистрибутивов на базе Debian, включая Ubuntu. Скопируйте ссылку загрузки для этого пакета из браузера и используйте этот адрес для загрузки пакета.

      • wget http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent_1.6.0p8-1_all.deb

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

      • apt install -y ./check-mk-agent_1.6.0p8-1_all.deb

      Теперь убедитесь в установке агента:

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

      Output

      <<<check_mk>>> Version: 1.6.0p8 AgentOS: linux . . . ["monitoring"] <<<job>>> <<<local>>>

      Именно вывод из этой команды использует Checkmk для сбора данных о статусе из отслеживаемых хостов. Теперь мы ограничим доступ к данным мониторинга с помощью xinetd.

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

      По умолчанию данные из check_mk_agent обрабатываются с помощью xinetd, механизма, который выводит данные в определенный сетевой порт после того, как их получит. Это значит, что мы можем получить доступ к check_mk_agent с помощью протокола telnet в порте 6556 (порт по умолчанию для Checkmk) из другого компьютера в Интернете, пока это не будет запрещено конфигурацией нашего брандмауэра.

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

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

      Для ограничения доступа к данным агента необходимо изменить файл конфигурации в /etc/xinetd.d/check_mk. Откройте файл конфигурации в предпочтительном редакторе. Для использования nano введите:

      • sudo nano /etc/xinetd.d/check_mk

      Найдите следующий раздел:

      /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-адресам. Поскольку мы сейчас работаем над мониторингом того же сервера, на котором работает Checkmk, нормальным будет разрешить подключение только к localhost​​​. Раскомментируйте и обновите настройку конфигурации до:

      /etc/xinetd.d/check_mk

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

      Сохраните и закройте файл.

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

      • sudo systemctl restart xinetd

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

      Конфигурация хоста в веб-интерфейсе Checkmk

      Сначала, чтобы добавить новый хост для мониторинга, необходимо перейти в меню Hosts в меню WATO — Configuration слева. Здесь нажмите Create new host. У нас запросят информацию о хосте.

      Создание нового хоста в Checkmk

      Hostname — это знакомое имя, которое Checkmk будет использовать для мониторинга. Это может быть полностью определенное доменное имя, но не обязательно. В данном примере мы назовем хост monitoring, как само название экземпляра Checkmk. Поскольку monitoring​​​ не разрешим для нашего IP-адреса, необходимо также предоставить IP-адрес нашего сервера. И поскольку мы отслеживаем локальный хост, IP-адрес будет просто 127.0.0.1. Отметьте поле IPv4 Address, чтобы включить ручной ввод IP, и введите значение в текстовом поле.

      Конфигурация по умолчанию раздела Data Sources​​​ полагается на агента Checkmk для предоставления данных мониторинга, что нормально. Настройка Networking Segment используется для обозначения хостов в удаленных сетях, которые характеризуются более длинной задержкой, что не является признаком ошибки. Поскольку это локальный хост, установка по умолчанию также подойдет.

      Для сохранения хоста и настройки серверов для мониторинга нажмите на кнопку Save & go to services.

      Список служб, доступных для мониторинга

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

      Для активации мониторинга всех обнаруженных служб необходимо нажать на кнопку Monitor​​​ в разделе Undecided services (currently not monitored)​​​. Это обновит страницу, но сейчас все службы будут указаны в разделе Monitored services​​​, это послужит индикацией того, что действительно выполняется их мониторинг.

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

      Теперь вы готовы работать с данными сервера. Посмотрите на главную информационную панель с помощью позиции меню Overview/Main Overview слева.

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

      Теперь посмотрим на главную информационную панель с помощью позиции меню Overview/Main Overview​​​ слева:

      Панель мониторинга, когда все службы исправны

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

      Список хостов со всеми исправными службами

      Здесь мы увидим, сколько служб находится в исправном состоянии (отображаются зеленым), сколько неисправных и сколько ожидают проверки. Нажав на имя хоста, мы сможем увидеть список всех служб, их полные статусы и их Perf-O-Meter. Perf-O-Meter показывает производительность отдельной службы относительно параметров исправного состояния, назначенных Checkmk.

      Подробнее о статусе службы хоста

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

      Графики отображения загрузки ЦП на сервере

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

      Информационная панель, когда на одном хосте имеются проблемы

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

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

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

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

      Мониторинг очень полезен при наличии нескольких хостов. Теперь мы добавим второй сервер в наш экземпляр Checkmk, в этот раз запустив CentOS 7.

      Как и в случае с нашим сервером Ubuntu, необходимо установить агент Checkmk для сбора данных мониторинга на CentOS. Однако в этот раз нам потребуется пакет rpm со страницы Monitoring Agents​​​ в веб-интерфейсе под названием check-mk-agent-1.6.0p8-1.noarch.rpm​​​.

      Однако сначала необходимо установить программу xinetd, которая недоступна по умолчанию при установке CentOS​​​. Xinetd, как мы помним, является демоном, отвечающим за доступность данных мониторинга, предоставленных check_mk_agent​​​​​​ в сети.

      На своем сервере CentOS сначала установите xinetd:

      • sudo yum install -y xinetd

      Теперь мы можем загрузить и установить пакет агента мониторинга, необходимый для нашего сервера CentOS:

      • sudo yum install -y http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent-1.6.0p8-1.noarch.rpm

      Как и ранее, мы можем проверить корректность работы агента, запустив check_mk_agent​​​:

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

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

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

      • sudo vi /etc/xinetd.d/check_mk

      Здесь вы увидите конфигурацию службы check_mk с указаниями, как можно получить доступ к агенту Checkmk с помощью демона xinetd. Найдите следующие две прокомментированные строки:

      /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
      . . .
      

      Теперь раскомментируйте вторую строку и замените локальные IP-адреса на your_ubuntu_server_ip​​​:

      /etc/xinetd.d/check_mk

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

      Сохраните и закройте файл, введя :x, а затем ENTER. Перезапустите службу xinetd с помощью:

      • sudo systemctl restart xinetd

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

      Конфигурация нового хоста в Checkmk

      Для добавления дополнительных хостов в Checkmk мы используем меню Hosts, как и ранее. В этот раз мы назовем хост centos, настроим его IP-адрес и выберем WAN (high-latency) в поле выбора Networking Segment, поскольку хост находится в другой сети. Если бы мы пропустили это и оставили локальный адрес, Checkmk вскоре бы предупредил нас, что хост неисправен, так как хост должен был отвечать на запросы агента гораздо быстрее, чем это возможно по сети Интернет.

      Создание экрана конфигурации второго хоста

      Нажмите Save & go to services, после чего отобразятся доступные службы для мониторинга на сервере CentOS. Список будет очень похож на список из первого хоста. И в этот раз необходимо нажать Monitor, а затем активировать изменения с помощью оранжевой кнопки в левом верхнем углу.

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

      Список хостов, когда выполняется мониторинг двух хостов

      Теперь вы выполняете мониторинг сервера Ubuntu и сервера CentOS с помощью Checkmk. Можно отслеживать и большее количество хостов. Фактически их количество зависит исключительно от мощности сервера, но и она не должна стать проблемой, если число хостов не измеряется сотнями. Более того, для других хостов процедура аналогична. Агенты Checkmk в пакетах deb и rpm работают на Ubuntu, CentOS и на большинстве других дистрибутивов Linux.

      Заключение

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

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

      Для получения дополнительной информации о Checkmk посетите официальную документацию.



      Source link