Управление агентом аналитики контейнеров

Контейнер Аналитика использует контейнерную версию агента 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 Для всех остальных контейнеров раздел "Переменные среды" должен содержать список всех обнаруженных переменных среды.

Чтобы повторно обнаружить переменные среды, примените тот же процесс, который использовался ранее, и измените значение на FalseTrue. Затем повторно выполните 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, который следует следующим ограничениям:

  1. Увеличьте версию MAJOR при внесении несовместимых изменений API.
  2. Добавим версию MINOR при добавлении функциональных возможностей обратной совместимости.
  3. Приращение версии PATCH при исправлении ошибок, совместимых с обратной совместимостью.

С ростом Kubernetes и экосистемы OSS контейнер Аналитика перенести образ semver после рекомендуемого стандарта K8s, в котором впервые появилась каждая дополнительная версия, все критические изменения необходимо было задокументировать с каждым новым выпуском Kubernetes.

Восстановление повторяющихся агентов

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

  1. Соберите сведения о любых пользовательских параметрах, таких как ограничения памяти и ЦП для контейнеров omsagent.

  2. Просмотрите ограничения ресурсов по умолчанию для 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
  3. Очистка ресурсов из предыдущей подключения:

    Если вы ранее подключены с помощью диаграммы 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
    
  4. Отключение аналитики контейнеров для очистки всех связанных ресурсов с помощью руководства по отключению аналитики контейнеров в кластере Kubernetes

  5. Повторное подключение к аналитике контейнеров с помощью руководства по включению аналитики контейнеров в кластере Kubernetes

Следующие шаги

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