Руководство. Мониторинг контейнеров Windows в Service Fabric с помощью журналов Azure Monitor
Это третья часть руководства, в которой описывается настройка журналов Azure Monitor для мониторинга контейнеров Windows, управляемых в Service Fabric.
В этом руководстве описано следующее:
- настройка журналов Azure Monitor для кластера Service Fabric;
- использование рабочей области Log Analytics для просмотра и запроса журналов из контейнеров и узлов;
- настройка агента Log Analytics для сбора метрик контейнеров и узлов.
Необходимые компоненты
Для работы с этим руководством вам потребуется:
- использовать имеющийся кластер в Azure или создать новый с помощью данного руководства;
- развернуть в нем контейнерное приложение.
Настройка журналов Azure Monitor для кластера в шаблоне Resource Manager
В случае, если вы использовали шаблон, предоставленный в первой части этого руководства, он должен содержать указанные ниже дополнения к универсальному шаблону Azure Resource Manager для Service Fabric. Если у вас есть собственный кластер, который вы хотите настроить для мониторинга контейнеров с помощью журналов Azure Monitor:
- Внесите приведенные ниже изменения в шаблон Resource Manager.
- Разверните этот шаблон с помощью PowerShell, чтобы обновить кластер. Azure Resource Manager определит, что ресурс уже существует, поэтому обновит его.
Добавление журналов Azure Monitor в шаблон кластера
Внесите следующие изменения в файл template.json.
Добавьте расположение рабочей области Log Analytics и имя раздела parameters:
"omsWorkspacename": { "type": "string", "defaultValue": "[toLower(concat('sf',uniqueString(resourceGroup().id)))]", "metadata": { "description": "Name of your Log Analytics Workspace" } }, "omsRegion": { "type": "string", "defaultValue": "East US", "allowedValues": [ "West Europe", "East US", "Southeast Asia" ], "metadata": { "description": "Specify the Azure Region for your Log Analytics workspace" } }
Чтобы изменить значение какого-либо параметра, добавьте такой же параметр в свой файл template.parameters.json и измените его значение.
Добавьте имя решения и решение в раздел variables.
"omsSolutionName": "[Concat('ServiceFabric', '(', parameters('omsWorkspacename'), ')')]", "omsSolution": "ServiceFabric"
Добавьте Microsoft Monitoring Agent в качестве расширения виртуальной машины. Найдите ресурс масштабируемых наборов виртуальных машин: resources>"apiVersion": "[переменные('vmssApiVersion')]". В раздел properties>virtualMachineProfile>extensionProfile>extensions добавьте следующее описание расширения под расширением ServiceFabricNode.
{ "name": "[concat(variables('vmNodeType0Name'),'OMS')]", "properties": { "publisher": "Microsoft.EnterpriseCloud.Monitoring", "type": "MicrosoftMonitoringAgent", "typeHandlerVersion": "1.0", "autoUpgradeMinorVersion": true, "settings": { "workspaceId": "[reference(resourceId('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename')), '2015-11-01-preview').customerId]" }, "protectedSettings": { "workspaceKey": "[listKeys(resourceId('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename')),'2015-11-01-preview').primarySharedKey]" } } },
Добавьте рабочую область Log Analytics в качестве отдельного ресурса. Добавьте приведенный ниже код в раздел resources после ресурса масштабируемых наборов виртуальных машин.
{ "apiVersion": "2015-11-01-preview", "location": "[parameters('omsRegion')]", "name": "[parameters('omsWorkspacename')]", "type": "Microsoft.OperationalInsights/workspaces", "properties": { "sku": { "name": "Free" } }, "resources": [ { "apiVersion": "2015-11-01-preview", "name": "[concat(variables('applicationDiagnosticsStorageAccountName'),parameters('omsWorkspacename'))]", "type": "storageinsightconfigs", "dependsOn": [ "[concat('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename'))]", "[concat('Microsoft.Storage/storageAccounts/', variables('applicationDiagnosticsStorageAccountName'))]" ], "properties": { "containers": [ ], "tables": [ "WADServiceFabric*EventTable", "WADWindowsEventLogsTable", "WADETWEventTable" ], "storageAccount": { "id": "[resourceId('Microsoft.Storage/storageaccounts/', variables('applicationDiagnosticsStorageAccountName'))]", "key": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('applicationDiagnosticsStorageAccountName')),'2015-06-15').key1]" } } }, { "apiVersion": "2015-11-01-preview", "name": "System", "type": "datasources", "dependsOn": [ "[concat('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename'))]" ], "kind": "WindowsEvent", "properties": { "eventLogName": "System", "eventTypes": [ { "eventType": "Error" }, { "eventType": "Warning" }, { "eventType": "Information" } ] } } ] }, { "apiVersion": "2015-11-01-preview", "location": "[parameters('omsRegion')]", "name": "[variables('omsSolutionName')]", "type": "Microsoft.OperationsManagement/solutions", "dependsOn": [ "[concat('Microsoft.OperationalInsights/workspaces/', parameters('OMSWorkspacename'))]" ], "properties": { "workspaceResourceId": "[resourceId('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename'))]" }, "plan": { "name": "[variables('omsSolutionName')]", "publisher": "Microsoft", "product": "[Concat('OMSGallery/', variables('omsSolution'))]", "promotionCode": "" } },
Здесь доступен пример шаблона (из в первой части данного руководства) со всеми этими изменениями, который можно использовать для справки, если потребуется. Эти изменения добавляют рабочую область Log Analytics в группу ресурсов. Рабочая область настроена для сбора событий платформы Service Fabric из таблиц хранилища, настроенных с помощью агента Windows Диагностика Azure. Агент Log Analytics (Microsoft Monitoring Agent) также был добавлен на каждый узел кластера как расширение виртуальной машины. Это означает, что при масштабировании кластера агент автоматически настраивается на каждом компьютере и привязывается к той же рабочей области.
Разверните шаблон с новыми изменениями, чтобы обновить текущий кластер. После этого ресурсы Log Analytics должны отобразиться в вашей группе ресурсов. Когда кластер будет готов к работе, разверните в нем свое контейнерное приложение. На следующем шаге мы настроим мониторинг контейнеров.
Добавление решения для мониторинга контейнеров в рабочую область Log Analytics
Чтобы настроить решение для мониторинга контейнеров в рабочей области, найдите решение для мониторинга контейнеров и создайте ресурс контейнеров (в категории "Мониторинг и управление").
При появлении запроса о рабочей области Log Analytics выберите рабочую область, которая была создана в вашей группе ресурсов, и нажмите кнопку Создать. Решение для мониторинга контейнеров будет добавлено в вашу рабочую область, инициируя агент Log Analytics, развернутый с помощью шаблона, чтобы начать сбор журналов и статистики Docker.
Вернитесь к своей группе ресурсов, в которой должно появиться добавленное решение для мониторинга. Если выбрать его, должна отобразиться целевая страница с информацией о числе выполняемых образов контейнеров.
Обратите внимание на то, что у нас выполняются пять экземпляров контейнера fabrikam из второй части руководства
При выборе решения монитора контейнеров вы перейдете на более подробную панель мониторинга, которая позволяет прокручивать несколько панелей, а также выполнять запросы в журналах Azure Monitor.
Так как агент собирает журналы Docker, по умолчанию он отображает stdout и stderr. При горизонтальной прокрутке вы увидите список образов контейнеров, состояние, метрики и примеры запросов, которые можно запустить, чтобы получить более полезные данные.
При выборе любой из этих панелей вы перейдете к запросу Kusto, который создает отображаемое значение. Измените запрос на *, чтобы просмотреть различные виды журналов, сбор которых выполняется. Здесь можно выполнить запрос или применить фильтр по производительности контейнеров или журналам. Можно также просмотреть события платформы Service Fabric. Агенты также постоянно передают пульс с каждого узла, который можно просмотреть, чтобы в случае изменения конфигурации кластера проверить, собираются по-прежнему ли данные со всех компьютеров.
Настройка агента Log Analytics для сбора счетчиков производительности
Еще одним преимуществом агента Log Analytics является то, что он дает возможность изменить собираемые счетчики производительности, воспользовавшись пользовательским интерфейсом Log Analytics. Вам не придется настраивать агент системы диагностики Azure и каждый раз выполнять обновление с помощью шаблона Resource Manager. Чтобы сделать это, на целевой странице решения мониторинга контейнеров (или Service Fabric) выберите Рабочая область OMS.
При этом вы перейдете в рабочую область Log Analytics, где можно просматривать решения, создавать пользовательские панели мониторинга, а также настраивать агент Log Analytics.
- Чтобы открыть меню дополнительных параметров, выберите Дополнительные параметры;
- выберите Подключенные источники>Серверы с Windows, чтобы убедиться в наличии 5 подключенных компьютеров Windows;
- выберите Данные>Счетчики производительности Windows, чтобы найти и добавить новые счетчики производительности. Здесь вы увидите список рекомендаций из журналов Azure Monitor для счетчиков производительности, которые можно собрать, а также вариант поиска других счетчиков. Убедитесь, что собираются данные со счетчиков Процессор(_всего)% Загруженность процессора и Память(*)\Доступно мегабайт.
Обновите решение мониторинга контейнеров через несколько минут, и вы должны начать просматривать данные о производительности компьютера. Это помогает понять, как используются ресурсы. Кроме того, эти метрики можно использовать для принятия правильных решений о масштабировании кластера или для проверки соответствия балансировки нагрузки кластера ожидаемым показателям.
Примечание. Убедитесь, что фильтры времени правильно настроены для использования этих метрик.
Следующие шаги
Из этого руководства вы узнали, как:
- настройка журналов Azure Monitor для кластера Service Fabric;
- использование рабочей области Log Analytics для просмотра и запроса журналов из контейнеров и узлов;
- настройка агента Log Analytics для сбора метрик контейнеров и узлов.
Теперь, когда вы настроили мониторинг для контейнерного приложения, попробуйте выполнить следующее:
- настройте журналы Azure Monitor для кластера Linux, выполнив действия, аналогичные приведенным выше. Используйте в качестве образца этот шаблон, чтобы внести изменения в шаблон Resource Manager.
- В журналах Azure Monitor настройте автоматические оповещения, которые помогут выполнять обнаружение и диагностику.
- Просмотрите список рекомендуемых счетчиков производительности Service Fabric, которые можно настроить для кластеров.
- Ознакомьтесь с функциями поиска по журналам и запросов к журналам, которые являются частью журналов Azure Monitor.