Выполнение мониторинга всего решения

Завершено

В данном разделе мы рассмотрим возможности для мониторинга всего решения.

Введение

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

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

Служба Log Analytics

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

Журналы в Azure Monitor полезны для выявления первопричин проблем. Данные, собираемые журналами Azure Monitor, хранятся в одной или нескольких рабочих областях Log Analytics. Данные извлекаются из рабочей области Log Analytics с помощью запроса журнала, который является запросом только для чтения, предназначенным для обработки данных и возврата результатов. Запросы журналов записываются в язык запросов Kusto (KQL), который использует тот же язык запросов Azure Data Explorer.

Примечание.

Пример приложения Azure Spring Apps уже настроен в рабочей области Log Analytics. Дополнительные сведения о синтаксисе KQL см. в разделе итогов в конце этого курса.

Использование Log Analytics

Существует три способа доступа к журналам приложения: служба хранилища Azure, центр событий Azure и Log Analytics. Мы сосредоточимся на Log Analytics, так как это наиболее распространенный и интегрирован в Azure Spring Apps для мониторинга метрик.

Внимание

Время приема данных журнала в Azure Monitor может занять до 15 минут. Если данные не найдены в Log Analytics, может потребоваться дополнительное время для приема данных журнала Azure Spring Apps.

  1. Откройте портал Azure.

  2. Выберите Azure Spring Apps из списка служб Azure.

  3. Выберите экземпляр Azure Spring Apps.

  4. Затем в разделе "Мониторинг " выберите "Журналы".

  5. В поле Запрос введите следующее.

    Снимок экрана с запросом журналов Azure Spring Apps.

    • Чтобы просмотреть журналы, выполните запрос, например:

      AppPlatformLogsforSpring
      | limit 50
      
    • Чтобы просмотреть метрики, введите такой запрос, как:

      AzureMetrics
      | limit 50
      
    • Можно выполнить поиск в журналах конкретного приложения или экземпляра, задав условие фильтра.

      AppPlatformLogsforSpring
      | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName"
      | limit 50
      

Анализ журналов приложений

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

Отображение журналов приложений в Azure Spring Apps

  1. Откройте портал Azure.

  2. Выберите Azure Spring Apps из списка служб Azure.

  3. Выберите экземпляр Azure Spring Apps.

  4. Затем в разделе "Мониторинг " выберите "Журналы".

  5. В поле Запрос введите следующее.

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

      AppPlatformLogsforSpring
      | project TimeGenerated , ServiceName , AppName , InstanceName , Log
      | sort by TimeGenerated desc
      
    • Чтобы проверить несортированные записи журнала, в которых упоминается ошибка или исключение, выполните следующий запрос.

      AppPlatformLogsforSpring
      | project TimeGenerated , ServiceName , AppName , InstanceName , Log
      | where Log contains "error" or Log contains "exception"
      
    • Чтобы создать круговую диаграмму, отображающую количество ошибок и исключений, регистрируемых приложением, выполните следующий запрос.

      AppPlatformLogsforSpring
      | where TimeGenerated > ago(1h)
      | where Log contains "error" or Log contains "exception"
      | summarize count_per_app = count() by AppName
      | sort by count_per_app desc
      | render piechart
      

Мониторинг базы данных

Мониторинг данных о серверах помогает устранять неполадки и оптимизировать рабочую нагрузку. База данных Azure для MySQL предоставляет различные метрики, позволяющие понять действия сервера.

В базе данных Azure для MySQL пользователям доступен журнал медленных запросов. Доступ к журналам транзакций не поддерживается. Журнал медленных запросов можно использовать для выявления узких мест производительности для устранения неполадок.

В нашем примере приложения журналы медленных запросов направляются в журналы Azure Monitor с помощью журналов диагностики. После этого можно выполнить дальнейший анализ запросов. Ниже приведены примеры запросов, которые помогут вам приступить к работе/

Внимание

Время приема данных журнала MySQL в Azure Monitor может занять до 30 минут. Если данные не найдены в Log Analytics, может потребоваться дополнительное время для приема данных журнала MySQL.

  1. Войдите на портал Azure.

  2. Выберите сервер База данных Azure для MySQL, используемый для Azure Spring Apps.

  3. Затем в разделе "Мониторинг " выберите "Журналы".

    Снимок экрана: запросы для запросов длиннее одной секунды.

  4. В поле Запрос введите следующее.

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

      AzureDiagnostics
      | where Category == 'MySqlSlowLogs'
      | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s 
      
    • Чтобы получить список пяти самых длинных запросов, выполните следующий запрос:

      AzureDiagnostics
      | where Category == 'MySqlSlowLogs'
      | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s 
      | order by query_time_d desc
      | take 5
      
    • Чтобы суммировать медленные запросы по минимальному, максимальному, среднему и стандартному времени отклонения, выполните следующий запрос:

      AzureDiagnostics
      | where Category == 'MySqlSlowLogs'
      | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s 
      | summarize count(), min(query_time_d), max(query_time_d), avg(query_time_d), stdev(query_time_d), percentile(query_time_d, 95) by LogicalServerName_s
      
    • Чтобы графировать распределение медленных запросов на определенном сервере, выполните следующий запрос:

      AzureDiagnostics
      | where Category == 'MySqlSlowLogs'
      | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s 
      | summarize count() by LogicalServerName_s, bin(TimeGenerated, 5m)
      | render timechart
      
  5. Вы также можете использовать журнал аудита для отслеживания действий на уровне базы данных. Обычно используется для соответствия требованиям. Журналы аудита можно интегрировать с журналами диагностики Azure Monitor. В примере мы включили журналы аудита на сервере MySQL, чтобы выполнять дальнейший анализ событий аудита.

    • Ниже приведен пример запроса, который извлекает общий журнал MySQL:

      AzureDiagnostics
      | where Category == 'MySqlAuditLogs' and event_class_s == "general_log"
      | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s 
      | order by TimeGenerated desc
      

Мониторинг интерфейса

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

Application Insights можно использовать с любой веб-страницей; Вы просто добавите короткий фрагмент JavaScript. Для веб-службы Java вы можете использовать серверные пакеты SDK в сочетании с клиентским пакетом SDK для JavaScript, чтобы получить полное представление о работе приложения.

Примечание.

Дополнительные сведения о мониторинге интерфейса см. в разделе итогов в конце этого курса.