Самоисцеление с помощью 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

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

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

Apigee рекомендует отслеживать работу apigee-monit . Подробнее см. в разделе «Мониторинг apigee-monit» .

архитектура apigee-monit

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

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

Архитектура монитора Apigee в кластере из 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
Сервер Postgres /opt/apigee/edge-postgres-server/monit/default.conf
Qpid-сервер /opt/apigee/edge-qpid-server/monit/default.conf
Маршрутизатор /opt/apigee/edge-router/monit/default.conf
Кассандра
Edge UI
SymasLDAP
Постгрес
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 UI, имя компонента которого — edge-management-ui .

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

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

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

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

В этом разделе описывается, как установить 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 (классический пользовательский интерфейс)

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

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

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

Обратите внимание, что «all» не является допустимым параметром для 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 служб работают. Одна служба в настоящее время не отслеживается.

    При первом выполнении команды report может возникнуть ошибка « Connection refused . В этом случае дождитесь окончания действия свойства 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