Самоисцеление с помощью Apigee-monit

Apigee Edge для частного облака включает apigee-monit — инструмент, основанный на утилите monit с открытым исходным кодом. apigee-monit периодически опрашивает Edge-сервисы; если служба недоступна, apigee-monit пытается ее перезапустить.

Чтобы использовать apigee-monit , необходимо установить его вручную . Это не входит в стандартную установку.

По умолчанию apigee-monit проверяет состояние Edge-сервисов каждые 60 секунд.

Быстрый старт

В этом разделе показано, как быстро приступить к работе с apigee-monit .

Если вы используете Amazon Linux или Oracle-Linux-7.X, сначала установите monit через Fedora. В противном случае пропустите этот шаг.

sudo yum install -y https://kojipkgs.fedoraproject.org/packages/monit/5.25.1/1.el6/x86_64/monit-5.25.1-1.el6.x86_64.rpm

Чтобы установить apigee-monit , выполните следующие действия:

Установите apigee-monit
/opt/apigee/apigee-service/bin/apigee-service apigee-monit install
/opt/apigee/apigee-service/bin/apigee-service apigee-monit configure
/opt/apigee/apigee-service/bin/apigee-service apigee-monit start

При этом будет установлен apigee-monit и по умолчанию начнется мониторинг всех компонентов на узле.

Прекратить мониторинг компонентов
/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c component_name
/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all
Начать мониторинг компонентов
/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c component_name
/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c all
Получить сводную информацию о статусе
/opt/apigee/apigee-service/bin/apigee-service apigee-monit report
/opt/apigee/apigee-service/bin/apigee-service apigee-monit summary
Посмотрите файлы журналов apigee-monit
cat /opt/apigee/var/log/apigee-monit/apigee-monit.log

Каждая из этих и других тем подробно описана в последующих разделах.

Об апиджи-монит

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

  • Перезапуск отказавших служб
  • Отображение сводной информации
  • Регистрация статуса мониторинга
  • Отправка уведомлений
  • Мониторинг не-Edge сервисов

Apigee рекомендует отслеживать apigee-monit чтобы убедиться, что он работает. Дополнительные сведения см. в разделе Мониторинг apigee-monit .

Архитектура Apigee-Monit

Во время установки и настройки Apigee Edge для частного облака вы при необходимости устанавливаете отдельный экземпляр apigee-monit на каждом узле вашего кластера. Эти отдельные экземпляры apigee-monit работают независимо друг от друга: они не передают состояние своих компонентов другим узлам, а также не сообщают о сбоях самой утилиты мониторинга какой-либо центральной службе.

На следующем изображении показана архитектура apigee-monit в кластере из 5 узлов:

Архитектура Apigee monit в кластере из 5 узлов
Рисунок 1. Отдельный экземпляр apigee-monit работает изолированно на каждом узле кластера.

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

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

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

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

Компонент Местоположение конфигурации Что контролируется
Сервер управления /opt/apigee/edge-management-server/monit/default.conf apigee-monit проверяет:
  • Указанные порты открыты и принимают запросы.
  • Указанные протоколы поддерживаются
  • Статус ответа

Кроме того, для этих компонентов apigee-monit :

  • Прежде чем принять меры, требуется несколько сбоев в течение заданного количества циклов.
  • Устанавливает собственный путь запроса
Процессор сообщений /opt/apigee/edge-message-processor/monit/default.conf
Постгрес-сервер /opt/apigee/edge-postgres-server/monit/default.conf
Qpid-сервер /opt/apigee/edge-qpid-server/monit/default.conf
Маршрутизатор /opt/apigee/edge-router/monit/default.conf
Кассандра
Пограничный интерфейс
OpenLDAP
Постгрес
Qpid
смотритель зоопарка
/opt/apigee/data/apigee-monit/monit.conf apigee-monit проверяет:
  • Служба работает

В следующем примере показана конфигурация компонента по умолчанию для компонента edge-router :

check host edge-router with address localhost
  restart program = "/opt/apigee/apigee-service/bin/apigee-service edge-router monitrestart"
  if failed host 10.1.1.0 port 8081 and protocol http
    and request "/v1/servers/self/uuid"
    with timeout 15 seconds
    for 2 times within 3 cycles
  then restart

  if failed port 15999 and protocol http
    and request "/v1/servers/self"
    and status < 600
    with timeout 15 seconds
    for 2 times within 3 cycles
  then restart

В следующем примере показана конфигурация по умолчанию для компонента Classic UI ( edge-ui ):

check process edge-ui
 with pidfile /opt/apigee/var/run/edge-ui/edge-ui.pid
 start program = "/opt/apigee/apigee-service/bin/apigee-service edge-ui start" with timeout 55 seconds
 stop program = "/opt/apigee/apigee-service/bin/apigee-service edge-ui stop"

Это относится к классическому пользовательскому интерфейсу, а не к новому пользовательскому интерфейсу Edge, имя компонента которого — edge-management-ui .

Вы не можете изменить конфигурации компонентов по умолчанию для любого компонента Apigee Edge for Private Cloud. Однако вы можете добавить свои собственные конфигурации компонентов для внешних служб, таких как целевая конечная точка или служба httpd . Дополнительную информацию см. в разделе Конфигурации компонентов, отличных от Apigee .

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

Установите apigee-monit

apigee-monit не установлен по умолчанию; вы можете установить его вручную после обновления или установки версии 4.19.01 или более поздней версии Apigee Edge для частного облака.

В этом разделе описывается, как установить apigee-monit .

Информацию об удалении apigee-monit см. в разделе Удаление apigee-monit .

Установите apigee-monit

В этом разделе описывается, как установить apigee-monit .

Чтобы установить apigee-monit :

  1. Установите apigee-monit с помощью следующей команды:
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit install
  2. Настройте apigee-monit с помощью следующей команды:
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit configure
  3. Запустите apigee-monit с помощью следующей команды:
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit start
  4. Повторите эту процедуру на каждом узле вашего кластера.

Остановка и запуск компонентов мониторинга

Когда служба по какой-либо причине останавливается, apigee-monit пытается перезапустить службу.

Это может вызвать проблемы, если вы хотите целенаправленно остановить компонент. Например, вам может потребоваться остановить компонент, когда вам нужно создать его резервную копию или обновить. Если apigee-monit перезапустит службу во время резервного копирования или обновления, ваша процедура обслуживания может быть нарушена, что может привести к ее сбою.

В следующих разделах показаны варианты остановки мониторинга компонентов.

Остановить компонент и отключить его мониторинг

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

/opt/apigee/apigee-service/bin/apigee-service apigee-monit stop-component -c component_name
component_name может быть одним из следующих:
  • apigee-cassandra (Кассандра)
  • apigee-openldap (OpenLDAP)
  • apigee-postgresql (база данных PostgreSQL)
  • apigee-qpidd (Qpidd)
  • apigee-sso (Edge SSO)
  • apigee-zookeeper (ZooKeeper)
  • edge-management-server (Сервер управления)
  • edge-management-ui (новый пользовательский интерфейс Edge)
  • edge-message-processor (процессор сообщений)
  • edge-postgres-server (сервер Postgres)
  • edge-qpid-server (сервер Qpid)
  • edge-router (Edge Router)
  • edge-ui (классический пользовательский интерфейс)

Обратите внимание, что «все» не является допустимым параметром для stop-component . Вы можете остановить и отключить мониторинг только одного компонента за раз с помощью stop-component .

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

/opt/apigee/apigee-service/bin/apigee-service apigee-monit start-component -c component_name

Обратите внимание, что «все» не является допустимым вариантом для start-component .

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

Отменить мониторинг компонента (но не останавливать его)

Чтобы отключить мониторинг компонента (но не останавливать его), выполните следующую команду:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c component_name
component_name может быть одним из следующих:
  • apigee-cassandra (Кассандра)
  • apigee-openldap (OpenLDAP)
  • apigee-postgresql (база данных PostgreSQL)
  • apigee-qpidd (Qpidd)
  • apigee-sso (Edge SSO)
  • apigee-zookeeper (ZooKeeper)
  • edge-management-server (Сервер управления)
  • edge-management-ui (новый пользовательский интерфейс Edge)
  • edge-message-processor (процессор сообщений)
  • edge-postgres-server (сервер Postgres)
  • edge-qpid-server (сервер Qpid)
  • edge-router (Edge Router)
  • edge-ui (классический пользовательский интерфейс)

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

/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c component_name

Отменить мониторинг всех компонентов (но не останавливать их)

Чтобы отключить мониторинг всех компонентов (но не останавливать их), выполните следующую команду:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all

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

/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c all

Остановите все компоненты и отключите их мониторинг.

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

/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all
/opt/apigee/apigee-service/bin/apigee-all stop

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

/opt/apigee/apigee-service/bin/apigee-all start
/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c all

Чтобы прекратить мониторинг всех компонентов, вы также можете отключить apigee-monit , как описано в разделе «Остановка, запуск и отключение apigee-monit» .

Остановить, запустить и отключить apigee-monit

Как и в случае с любой службой, вы можете остановить и запустить apigee-monit с помощью команды apigee-service . Кроме того, apigee-monit поддерживает команду unmonitor , которая позволяет временно прекратить мониторинг компонентов.

Остановить apigee-monit

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

/opt/apigee/apigee-service/bin/apigee-service apigee-monit stop

Запустить apigee-monit

Чтобы запустить apigee-monit , используйте следующую команду:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit start

Отключить apigee-monit

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

/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all

Альтернативно вы можете навсегда отключить apigee-monit удалив его с узла, как описано в разделе Удаление apigee-monit .

Удалить apigee-monit

Чтобы удалить apigee-monit :

    conf_monit_httpd_port Порт демона httpd . apigee-monit использует httpd для своего приложения информационной панели и для включения отчетов/сводок. Значение по умолчанию — 2812. conf_monit_httpd_allow Ограничения на запросы к демону httpd . apigee-monit использует httpd для запуска приложения информационной панели и включения отчетов/сводок. Это значение должно указывать на локальный хост (хост, на котором запущен httpd .

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

    conf_monit_httpd_allow=allow username:"password"\nallow 127.0.0.1

    При добавлении имени пользователя и пароля вставьте «\n» между каждым ограничением. Не вставляйте в значение фактические символы новой строки или возврата каретки.

    conf_monit_monit_datadir Каталог, в котором хранятся сведения о событии. conf_monit_monit_delay_time Время ожидания apigee-monit после первой загрузки в память перед запуском. Это влияет только на первую проверку процесса apigee-monit . conf_monit_monit_logdir Местоположение файла журнала apigee-monit . conf_monit_monit_retry_time Частота, с которой apigee-monit пытается проверить каждый процесс; значение по умолчанию — 60 секунд. conf_monit_monit_rundir Расположение файлов PID и состояния, которые apigee-monit использует для проверки процессов.

    Чтобы настроить параметры управления apigee-monit по умолчанию:

    1. Отредактируйте следующий файл:
      /opt/apigee/customer/application/monit.properties

      Если файл не существует, создайте его и установите владельцем пользователя «apigee»:

      chown apigee:apigee /opt/apigee/customer/application/monit.properties

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

    2. Установите или замените значения свойств новыми значениями.

      Например, чтобы изменить расположение файла журнала на /tmp , добавьте или отредактируйте следующее свойство:

      conf_monit_monit_logdir=/tmp/apigee-monit.log
    3. Сохраните изменения в файле monit.properties .
    4. Перезагрузите apigee-monit с помощью следующей команды:
      /opt/apigee/apigee-service/bin/apigee-service apigee-monit reload

      Если apigee-monit не перезапускается, проверьте файл журнала на наличие ошибок, как описано в разделе Доступ к файлам журнала apigee-monit .

    5. Повторите эту процедуру для каждого узла вашего кластера.

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

    Доступ к файлам журналов apigee-monit

    apigee-monit регистрирует всю активность, включая события, перезапуски, изменения конфигурации и оповещения, в файле журнала.

    Местоположение файла журнала по умолчанию:

    /opt/apigee/var/log/apigee-monit/apigee-monit.log

    Вы можете изменить местоположение по умолчанию, настроив параметры управления apigee-monit .

    Записи файла журнала имеют следующий вид:

    'edge-message-processor' trying to restart
    [UTC Dec 14 16:20:42] info     : 'edge-message-processor' trying to restart
    'edge-message-processor' restart: '/opt/apigee/apigee-service/bin/apigee-service edge-message-processor monitrestart'

    Вы не можете настроить формат записей файла журнала apigee-monit .

    Просмотр совокупного статуса с помощью apigee-monit

    apigee-monit включает следующие команды, которые предоставляют вам совокупную информацию о состоянии компонентов на узле:

    Команда Использование
    report
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit report
    summary
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit summary

    Каждая из этих команд объясняется более подробно в следующих разделах.

    отчет

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

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit report

    В следующем примере показаны выходные данные report для конфигурации AIO (все в одном):

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit report
    up:            11 (100.0%)
    down:           0 (0.0%)
    initialising:   0 (0.0%)
    unmonitored:    1 (8.3%)
    total:         12 services

    В этом примере apigee-monit сообщает, что 11 из 12 служб работают. Одна служба в настоящее время не отслеживается.

    Вы можете получить сообщение об ошибке Connection refused при первом выполнении команды report . В этом случае подождите, пока продлится свойство conf_monit_monit_delay_time , а затем повторите попытку.

    краткое содержание

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

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit summary

    В следующем примере показан summary вывод конфигурации AIO (все в одном):

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit summary
    Monit 5.25.1 uptime: 4h 20m
     Service Name                     Status                      Type
     host_name                        OK                          System
     apigee-zookeeper                 OK                          Process
     apigee-cassandra                 OK                          Process
     apigee-openldap                  OK                          Process
     apigee-qpidd                     OK                          Process
     apigee-postgresql                OK                          Process
     edge-ui                          OK                          Process
     edge-qpid-server                 OK                          Remote Host
     edge-postgres-server             OK                          Remote Host
     edge-management-server           OK                          Remote Host
     edge-router                      OK                          Remote Host
     edge-message-processor           OK                          Remote Host

    Если при первом выполнении summary команды вы получаете сообщение Connection refused , попробуйте подождать, пока будет действовать свойство conf_monit_monit_delay_time , а затем повторите попытку.

    Монитор apigee-monit

    Рекомендуется регулярно проверять, работает ли apigee-monit на каждом узле.

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

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit

    Apigee рекомендует периодически выполнять эту команду на каждом узле, на котором работает apigee-monit . Один из способов сделать это — использовать такую ​​утилиту, как cron , которая выполняет запланированные задачи через заранее определенные интервалы.

    Чтобы использовать cron для мониторинга apigee-monit :

    1. Добавьте поддержку cron , скопировав каталог apigee-monit.cron в каталог /etc/cron.d , как показано в следующем примере:
      cp /opt/apigee/apigee-monit/cron/apigee-monit.cron /etc/cron.d/
    2. Откройте файл apigee-monit.cron чтобы отредактировать его.

      Файл apigee-monit.cron определяет выполняемое задание cron , а также частоту выполнения этого задания. В следующем примере показаны значения по умолчанию:

      # Cron entry to check if monit process is running. If not start it
      */2 * * * * root /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit

      В этом файле используется следующий синтаксис, в котором первые пять полей определяют время, в которое apigee-monit выполняет свое действие:

      min hour day_of_month month day_of_week task_to_execute

      Например, время выполнения по умолчанию — */2 * * * * , что указывает cron проверять процесс apigee-monit каждые 2 минуты.

      Вы не можете выполнять задание cron чаще, чем раз в минуту.

      Дополнительную информацию об использовании cron см. в документации ОС вашего сервера или на страницах руководства.

    3. Измените настройки cron в соответствии с политиками вашей организации. Например, чтобы изменить частоту выполнения на каждые 5 минут, установите определение задания следующим образом:
      */5 * * * * root /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit
    4. Сохраните файл apigee-monit.cron .
    5. Повторите эту процедуру для каждого узла вашего кластера.

    Если cron не начинает просмотр apigee-monit , проверьте следующее:

    • После определения задания cron есть пустая строка.
    • В файле определено только одно задание cron . (Комментированные строки не учитываются.)

    Если вы хотите остановить или временно отключить apigee-monit , вы также должны отключить это задание cron , иначе cron перезапустит apigee-monit .

    Чтобы отключить cron , выполните одно из следующих действий:

    • Удалите файл /etc/cron.d/apigee-monit.cron :
      sudo rm /etc/cron.d/apigee-monit.cron

      Вам придется скопировать его повторно, если позже вы захотите снова включить cron для просмотра apigee-monit .

      ИЛИ

    • Отредактируйте файл /etc/cron.d/apigee-monit.cron и закомментируйте определение задания, добавив «#» в начало строки; например:
      # 10 * * * * root /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit