Управление агентом аналитики контейнеров
Контейнер Аналитика использует контейнерную версию агента Log Analytics для Linux. После первоначального развертывания может потребоваться выполнить рутинные или необязательные задачи в течение жизненного цикла. В этой статье объясняется, как вручную обновить агент и отключить коллекцию переменных среды из определенного контейнера.
Примечание.
Если вы уже развернули кластер AKS и включили мониторинг с помощью Azure CLI или шаблона Resource Manager, вы не можете использовать kubectl
для обновления, удаления, повторного развертывания или развертывания агента. Развертывание шаблона должно проходить в той же группе ресурсов, что и у кластера.
Обновление агента аналитики контейнеров
Контейнер Аналитика использует контейнерную версию агента Log Analytics для Linux. При выпуске новой версии агента агент автоматически обновляется в управляемых кластерах Kubernetes, размещенных в Служба Azure Kubernetes (AKS) и Kubernetes с поддержкой Azure Arc.
На случай сбоя обновления агента для кластера, размещенного в AKS, в этой статье также описывается процесс обновления агента вручную. Чтобы следовать выпускам версий, ознакомьтесь с объявлениями о выпуске агента.
Обновление агента в кластере AKS
Процесс обновления агента в кластере AKS состоит из двух шагов. Первым шагом является отключение мониторинга с помощью аналитики контейнеров с помощью Azure CLI. Выполните действия, описанные в статье об отключении аналитики контейнеров в кластере Kubernetes . С помощью Azure CLI агент можно удалить из узлов в кластере, не затрагивая решение и соответствующие данные, хранящиеся в рабочей области.
Примечание.
Хотя вы выполняете это действие обслуживания, узлы в кластере не перенаправляют собранные данные. Представления производительности не отображают данные между временем удаления агента и установкой новой версии.
Второй шаг — установить новую версию агента. Выполните действия, описанные в разделе "Включить мониторинг" с помощью Azure CLI , чтобы завершить этот процесс.
После повторного мониторинга может потребоваться около 15 минут, прежде чем просматривать обновленные метрики работоспособности кластера. Существует два метода проверки успешного обновления агента:
- Выполните команду
kubectl get pod <ama-logs-agent-pod-name> -n kube-system -o=jsonpath='{.spec.containers[0].image}'
. В возвращаемом состоянии запишите значение в разделе "Контейнеры" выходных данных в разделе "Образ для агента Azure Monitor". - На вкладке "Узлы" выберите узел кластера. В области "Свойства" справа обратите внимание на значение в теге изображения агента.
Указанная версия агента должна соответствовать последней версии, указанной на странице Журнал выпусков.
Обновление агента в гибридном кластере Kubernetes
Выполните следующие действия, чтобы обновить агент в кластере Kubernetes, на котором выполняется следующее:
- Самоуправляемые кластеры Kubernetes, размещенные в Azure, с помощью подсистемы AKS.
- Самоуправляемые кластеры Kubernetes, размещенные в Azure Stack или локально, с помощью подсистемы AKS.
Если рабочая область Log Analytics находится в коммерческой службе Azure, выполните следующую команду.
$ helm upgrade --set omsagent.secret.wsid=<your_workspace_id>,omsagent.secret.key=<your_workspace_key>,omsagent.env.clusterName=<my_prod_cluster> incubator/azuremonitor-containers
Если рабочая область Log Analytics находится в Microsoft Azure под управлением 21Vianet, выполните следующую команду:
$ helm upgrade --set omsagent.domain=opinsights.azure.cn,omsagent.secret.wsid=<your_workspace_id>,omsagent.secret.key=<your_workspace_key>,omsagent.env.clusterName=<your_cluster_name> incubator/azuremonitor-containers
Если рабочая область Log Analytics находится в Azure для государственных организаций США, выполните следующую команду.
$ helm upgrade --set omsagent.domain=opinsights.azure.us,omsagent.secret.wsid=<your_workspace_id>,omsagent.secret.key=<your_workspace_key>,omsagent.env.clusterName=<your_cluster_name> incubator/azuremonitor-containers
Отключение коллекции переменных среды в контейнере
Контейнер Аналитика собирает переменные среды из контейнеров, работающих в модуле pod, и представляет их в области свойств выбранного контейнера в представлении "Контейнеры". Это поведение можно контролировать, отключив коллекцию для определенного контейнера во время развертывания кластера Kubernetes или после установки переменной AZMON_COLLECT_ENV
среды. Эта функция доступна из версии агента ciprod11292018 и более поздних версий.
Чтобы отключить коллекцию переменных среды в новом или существующем контейнере, задайте переменную AZMON_COLLECT_ENV
со значением False
в файле конфигурации YAML развертывания Kubernetes.
- name: AZMON_COLLECT_ENV
value: "False"
Выполните следующую команду, чтобы применить изменение к кластерам Kubernetes, кроме Azure Red Hat OpenShift: kubectl apply -f <path to yaml file>
Чтобы изменить ConfigMap и применить это изменение для кластеров Azure Red Hat OpenShift, выполните следующую команду:
oc edit configmaps container-azm-ms-agentconfig -n openshift-azure-logging
Эта команда открывает текстовый редактор по умолчанию. После задания переменной сохраните файл в редакторе.
Чтобы убедиться, что изменение конфигурации вступило в силу, выберите контейнер в представлении "Контейнеры" в аналитике контейнеров. В области свойств разверните переменные среды. Раздел должен отображать только созданную ранее переменную.AZMON_COLLECT_ENV=FALSE
Для всех остальных контейнеров раздел "Переменные среды" должен содержать список всех обнаруженных переменных среды.
Чтобы повторно обнаружить переменные среды, примените тот же процесс, который использовался ранее, и измените значение на False
True
. Затем повторно выполните kubectl
команду, чтобы обновить контейнер.
- name: AZMON_COLLECT_ENV
value: "True"
Обновление семантической версии агента аналитики контейнеров
Аналитика контейнера переместил версию образа и соглашение об именовании в [формат semver] (https://semver.org/). SemVer помогает разработчикам отслеживать все изменения, внесенные в программное обеспечение на этапе разработки, и гарантирует, что управление версиями программного обеспечения является согласованным и значимым. Старая версия была в формате ciprod timestamp-commitId<> и win-ciprod<timestamp-commitId<>>>, наши первые версии образов с использованием формата Semver: 3.1.4 для Linux и win-3.1.4 для Windows.<
Semver — это универсальная схема управления версиями программного обеспечения, определенная в формате MAJOR. НЕЗНАЧИТЕЛЬНЫЕ. PATCH, который следует следующим ограничениям:
- Увеличьте версию MAJOR при внесении несовместимых изменений API.
- Добавим версию MINOR при добавлении функциональных возможностей обратной совместимости.
- Приращение версии PATCH при исправлении ошибок, совместимых с обратной совместимостью.
С ростом Kubernetes и экосистемы OSS контейнер Аналитика перенести образ semver после рекомендуемого стандарта K8s, в котором впервые появилась каждая дополнительная версия, все критические изменения необходимо было задокументировать с каждым новым выпуском Kubernetes.
Восстановление повторяющихся агентов
Если вы вручную включили контейнер Аналитика с помощью пользовательских методов до октября 2022 года, вы можете в конечном итоге использовать несколько версий агента, работающих вместе. Выполните приведенные ниже действия, чтобы очистить это дублирование.
Соберите сведения о любых пользовательских параметрах, таких как ограничения памяти и ЦП для контейнеров omsagent.
Просмотрите ограничения ресурсов по умолчанию для ama-logs и определите, соответствуют ли они вашим потребностям. В противном случае может потребоваться создать раздел поддержки для изучения и переключения ограничений памяти или ЦП. Это может помочь устранить проблемы с ограничениями масштабирования, которые некоторые клиенты столкнулись ранее, что привело к исключениям OOMKilled.
ОС Имя контроллера Ограничения по умолчанию Linux ds-cpu-limit-linux 500 м Linux ds-memory-limit-linux 750Mi Linux rs-cpu-limit 1 Linux rs-memory-limit 1.5Gi Windows ds-cpu-limit-windows 500 м Windows ds-memory-limit-windows 1Gi Очистка ресурсов из предыдущей подключения:
Если вы ранее подключены с помощью диаграммы helm:
Список всех выпусков в пространствах имен с помощью следующей команды:
helm list --all-namespaces
Очистка диаграммы, установленной для аналитики контейнеров, с помощью следующей команды:
helm uninstall <releaseName> --namespace <Namespace>
Если вы ранее подключены с помощью развертывания yaml:
Скачайте файл yaml предыдущего пользовательского развертывания с помощью следующей команды:
curl -LO raw.githubusercontent.com/microsoft/Docker-Provider/ci_dev/kubernetes/omsagent.yaml
Очистите старую диаграмму omsagent с помощью следующей команды:
kubectl delete -f omsagent.yaml
Отключение аналитики контейнеров для очистки всех связанных ресурсов с помощью руководства по отключению аналитики контейнеров в кластере Kubernetes
Повторное подключение к аналитике контейнеров с помощью руководства по включению аналитики контейнеров в кластере Kubernetes
Следующие шаги
Если при обновлении агента возникают проблемы, ознакомьтесь с руководством по устранению неполадок для поддержки.