Выполнение мониторинга всего решения
В данном разделе мы рассмотрим возможности для мониторинга всего решения.
Введение
Для мониторинга в современных сложных вычислительных средах требуется сбор операционных данных с каждого уровня и компонента распределенной системы. Вам нужны подробные сведения об этих данных и их объединение с различными перспективами для поддержки множества заинтересованных лиц в вашей организации.
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.
Откройте портал Azure.
Выберите Azure Spring Apps из списка служб Azure.
Выберите экземпляр Azure Spring Apps.
Затем в разделе "Мониторинг " выберите "Журналы".
В поле Запрос введите следующее.
Чтобы просмотреть журналы, выполните запрос, например:
AppPlatformLogsforSpring | limit 50
Чтобы просмотреть метрики, введите такой запрос, как:
AzureMetrics | limit 50
Можно выполнить поиск в журналах конкретного приложения или экземпляра, задав условие фильтра.
AppPlatformLogsforSpring | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName" | limit 50
Анализ журналов приложений
Журналы приложений содержат важную информацию и подробные записи, относящиеся к работоспособности, производительности и многому другому. В следующем разделе мы предоставляем запросы, которые помогут вам понять текущие и прошлые состояния приложения.
Отображение журналов приложений в Azure Spring Apps
Откройте портал Azure.
Выберите Azure Spring Apps из списка служб Azure.
Выберите экземпляр Azure Spring Apps.
Затем в разделе "Мониторинг " выберите "Журналы".
В поле Запрос введите следующее.
Чтобы просмотреть список журналов приложений из 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.
Войдите на портал Azure.
Выберите сервер База данных Azure для MySQL, используемый для Azure Spring Apps.
Затем в разделе "Мониторинг " выберите "Журналы".
В поле Запрос введите следующее.
Чтобы получить все запросы дольше одной секунды, выполните следующий запрос:
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
Вы также можете использовать журнал аудита для отслеживания действий на уровне базы данных. Обычно используется для соответствия требованиям. Журналы аудита можно интегрировать с журналами диагностики 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, чтобы получить полное представление о работе приложения.
Примечание.
Дополнительные сведения о мониторинге интерфейса см. в разделе итогов в конце этого курса.