Руководство. Мониторинг приложений Service Fabric с помощью ELK

Это руководство представляет собой четвертую часть цикла. В нем показано, как использовать стек ELK (Elasticsearch, Logstash и Kibana) для мониторинга приложений Service Fabric, работающих в Azure.

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

  • настройка сервера ELK в Azure;
  • настройка Logstash для получения журналов из Центров событий;
  • визуализация журналов платформы и приложений в Kibana.

Из этого цикла руководств вы узнаете, как выполнять следующие задачи:

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

Перед началом работы с этим руководством выполните следующие действия:

  • Если у вас еще нет подписки Azure, создайте бесплатную учетную запись.
  • Настройте приложение на передачу журналов в расположение, указанное во второй части цикла.
  • Выполните инструкции в третьей части цикла, чтобы настроить в запущенном кластере Service Fabric отправку журналов в Центры событий.
  • В Центрах событий требуется использовать политику с разрешениями на ожидание передачи данных и связанным первичным ключом из третьей части цикла.

Скачивание примера приложения для голосования

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

git clone https://github.com/Azure-Samples/service-fabric-java-quickstart

Создание сервера ELK в Azure

Для этого руководства можно использовать предварительно настроенную среду ELK. При наличии такой среды перейдите к разделу о настройке Logstash. Если у вас нет такой среды, выполните следующие действия, чтобы создать ее в Azure.

  1. Создайте ELK с сертификацией от Bitnami в Azure. Для этого руководства нет конкретных требований к созданию этого сервера.

  2. Перейдите к ресурсу на портале Azure и выберите вкладку Диагностика загрузки в разделе Поддержка и устранение неполадок. Затем щелкните вкладку Журнал последовательного вывода.

    Диагностика загрузки

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

    [   25.932766] bitnami[1496]: #########################################################################
    [   25.948656] bitnami[1496]: #                                                                       #
    [   25.962448] bitnami[1496]: #        Setting Bitnami application password to '[PASSWORD]'           #
    [   25.978137] bitnami[1496]: #        (the default application username is 'user')                   #
    [   26.004770] bitnami[1496]: #                                                                       #
    [   26.029413] bitnami[1496]: #########################################################################
    
  4. На странице обзора сервера на портале Azure нажмите кнопку "Подключиться", чтобы получить данные для входа.

    Подключение виртуальной машины

  5. Подключитесь к серверу по протоколу SSH, на котором хранится образ ELK, с помощью следующей команды.

    ssh [USERNAME]@[CONNECTION-IP-OF-SERVER]
    
    Example: ssh testaccount@104.40.63.157
    

Настройка ELK

  1. Сначала загрузите среду ELK.

    sudo /opt/bitnami/use_elk
    
  2. Если используется существующая среда, приостановите работу службы Logstash, выполнив следующую команду.

    sudo /opt/bitnami/ctlscript.sh stop logstash
    
  3. Чтобы установить подключаемый модуль Logstash для Центров событий, выполните следующую команду.

    logstash-plugin install logstash-input-azureeventhub
    
  4. Создайте файл конфигурации Logstash с приведенным ниже содержимым или измените содержимое существующего файла. Если вы создаете файл, сохраните его в каталоге /opt/bitnami/logstash/conf/access-log.conf при использовании образа ELK от Bitnami в Azure.

    input
    {
        azureeventhub
        {
            key => "[RECEIVER-POLICY-KEY-FOR-EVENT-HUB]"
            username => "[RECEIVER-POLICY-NAME]"
            namespace => "[EVENTHUB-NAMESPACENAME]"
            eventhub => "[EVENTHUB-NAME]"
            partitions => 4
        }
    }
    
    output {
         elasticsearch {
             hosts => [ "127.0.0.1:9200" ]
         }
     }
    
  5. Чтобы проверить конфигурацию, выполните следующую команду:

    /opt/bitnami/logstash/bin/logstash -f /opt/bitnami/logstash/conf/ --config.test_and_exit
    
  6. Запустите службу Logstash.

    sudo /opt/bitnami/ctlscript.sh start logstash
    
  7. Проверьте работу Elasticsearch, чтобы убедиться в том, что вы получаете данные.

    curl 'localhost:9200/_cat/indices?v'
    
  8. Перейдите на панель мониторинга Kibana по адресу http://SERVER-IP и введите имя пользователя и пароль для Kibana. Если вы использовали образ ELK в Azure, имя пользователя по умолчанию — user, а пароль такой же, как полученный на вкладке Диагностика загрузки.

    Снимок экрана: журналы платформы и приложений на панели мониторинга Kibana

Дальнейшие действия

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

  • запуск сервера ELK в Azure;
  • настройка сервера на получение диагностических данных из кластера Service Fabric.

Перейдите к следующему руководству: