Skip to main content
Cloud Insights
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

Kubernetes Monitoring Operator 설치 및 구성

기여자

Cloud Insights는 Kubernetes 컬렉션을 위한 * NetApp Kubernetes Monitoring Operator * (NKMO)를 제공합니다. 데이터 수집기 추가 시 "Kubernetes" 타일을 선택하면 됩니다.

참고 Cloud Insights Federal Edition을 사용하는 경우 설치 및 구성 지침이 이 페이지의 지침과 다를 수 있습니다. Cloud Insights의 지침에 따라 NetApp Kubernetes 모니터링 운영자를 설치합니다.

Kubernetes Data Collector 타일

Cloud Insights Docker 레지스트리에서 Kubernetes Operator 및 데이터 수집기를 다운로드할 수 있습니다. 그런 다음 운영자는 이 수집기의 수명 주기 관리를 포함하여 데이터를 획득하기 위해 Kubernetes 클러스터 노드에 배포된 운영자 호환 수집기를 관리합니다. 이 체인에 이어 수집기에서 데이터를 획득하여 Cloud Insights로 전송합니다.

NetApp Kubernetes Monitoring Operator를 설치하기 전에

중요함 를 읽습니다 "설치 또는 업그레이드 전" NetApp Kubernetes 모니터링 운영자를 설치 또는 업그레이드하기 전에 사전 설명서를 제공해야 합니다.

NetApp Kubernetes Monitoring Operator 설치


Kubernetes에 NetApp Kubernetes Monitoring Operator Agent를 설치하는 단계:
  1. 고유한 클러스터 이름 및 네임스페이스를 입력합니다. 있는 경우 업그레이드 중 이전 Kubernetes Operator에서 동일한 클러스터 이름과 네임스페이스를 사용합니다.

  2. 이러한 내용을 입력하면 다운로드 명령 스니펫을 클립보드에 복사할 수 있습니다.

  3. 스니펫을 _bash_window에 붙여 넣고 실행합니다. 오퍼레이터 설치 파일이 다운로드됩니다. 스니펫에는 고유한 키가 있으며 24시간 동안 유효합니다.

  4. 사용자 지정 또는 개인 리포지토리가 있는 경우 선택적 이미지 풀 스니펫을 복사하여 _bash_shell에 붙여 넣고 실행합니다. 이미지를 가져온 후 개인 저장소에 복사합니다. 동일한 태그 및 폴더 구조를 유지해야 합니다. operator-deployment.YAML_의 경로와 _operator-config.YAML_의 Docker 리포지토리 설정을 업데이트합니다.

  5. 필요한 경우 프록시 또는 개인 리포지토리 설정과 같은 사용 가능한 구성 옵션을 검토합니다. 에 대해 자세히 알아볼 수 있습니다 "구성 옵션".

  6. 준비가 되면 kubeck Apply 스니펫을 복사하고 다운로드한 다음 실행하여 Operator 를 배포합니다.

  7. 설치가 자동으로 진행됩니다. 완료되면 Next 단추를 클릭합니다.

  8. 설치가 완료되면 Next 단추를 클릭합니다. 또한 _operator-비밀.YAML_파일을 삭제하거나 안전하게 보관하십시오.

에 대해 자세히 알아보십시오 프록시를 구성하는 중입니다.

에 대해 자세히 알아보십시오 사용자 지정/프라이빗 Docker 저장소 사용.

NetApp Kubernetes Monitoring Operator를 설치할 때 Kubernetes EMS 로그 수집이 기본적으로 활성화됩니다. 설치 후 이 컬렉션을 비활성화하려면 Kubernetes 클러스터 세부 정보 페이지 상단의 * Modify Deployment * 버튼을 클릭하고 "Log collection"을 선택 취소합니다.

"로그 수집" 확인란을 표시하는 배포 화면 수정

이 화면에는 현재 로그 수집 상태도 표시됩니다. 가능한 상태는 다음과 같습니다.

  • 사용 안 함

  • 활성화됨

  • Enabled - 설치가 진행 중입니다

  • 사용 - 오프라인

  • 활성화됨 - 온라인

  • 오류 - API 키에 권한이 부족합니다

업그레이드 중

최신 NetApp Kubernetes 모니터링 사업자로 업그레이드

기존 운영자와 함께 AgentConfiguration이 존재하는지 확인합니다(네임스페이스가 DEFAULT_NetApp-MONITORING_이 아닌 경우 해당 네임스페이스를 대체합니다).

 kubectl -n netapp-monitoring get agentconfiguration netapp-monitoring-configuration
AgentConfiguration이 있는 경우:

AgentConfiguration이 없는 경우:

  • Cloud Insights에서 인식하는 클러스터 이름을 기록합니다(네임스페이스가 기본 NetApp 모니터링이 아닌 경우 해당 네임스페이스를 대체).

     kubectl -n netapp-monitoring get agent -o jsonpath='{.items[0].spec.cluster-name}'
    * 기존 운영자의 백업을 생성합니다(네임스페이스가 기본 NetApp 모니터링이 아닌 경우 적절한 네임스페이스를 대체).
     kubectl -n netapp-monitoring get agent -o yaml > agent_backup.yaml
    * <<to-remove-the-netapp-kubernetes-monitoring-operator,설치 제거>> 기존 연산자.
    * <<installing-the-netapp-kubernetes-monitoring-operator,설치합니다>> 최신 운영자.
    • 동일한 클러스터 이름을 사용합니다.

    • 최신 운영자 YAML 파일을 다운로드한 후 배포하기 전에 agent_backup.YAML에서 발견된 모든 사용자 정의를 다운로드한 operator-config.YAML에 이식하십시오.

    • 항상 확인하십시오 최신 컨테이너 이미지를 가져오는 중입니다 사용자 지정 리포지토리를 사용하는 경우

NetApp Kubernetes Monitoring Operator를 중지하고 시작합니다

NetApp Kubernetes Monitoring Operator를 중지하려면 다음을 수행합니다.

 kubectl -n netapp-monitoring scale deploy monitoring-operator --replicas=0
NetApp Kubernetes Monitoring Operator를 시작하려면 다음을 수행합니다.
kubectl -n netapp-monitoring scale deploy monitoring-operator --replicas=1

제거 중

NetApp Kubernetes Monitoring Operator를 제거하려면 다음을 수행합니다

NetApp Kubernetes Monitoring Operator의 기본 네임스페이스는 "NetApp 모니터링"입니다. 고유한 네임스페이스를 설정한 경우 이러한 네임스페이스 및 모든 후속 명령 및 파일로 대체합니다.

다음 명령을 사용하여 모니터링 연산자의 최신 버전을 제거할 수 있습니다.

kubectl -n <NAMESPACE> delete agent -l installed-by=nkmo-<NAMESPACE>
kubectl -n <NAMESPACE> delete clusterrole,clusterrolebinding,crd,svc,deploy,role,rolebinding,secret,sa -l installed-by=nkmo-<NAMESPACE>

모니터링 운영자가 자체 전용 네임스페이스에 배포된 경우 네임스페이스를 삭제합니다.

 kubectl delete ns <NAMESPACE>
첫 번째 명령이 "리소스를 찾을 수 없음"을 반환하면 다음 지침에 따라 모니터링 연산자의 이전 버전을 제거합니다.

다음 명령을 순서대로 실행합니다. 현재 설치에 따라 이러한 명령 중 일부는 '개체를 찾을 수 없음' 메시지를 반환할 수 있습니다. 이러한 메시지는 무시해도 됩니다.

kubectl -n <NAMESPACE> delete agent agent-monitoring-netapp
kubectl delete crd agents.monitoring.netapp.com
kubectl -n <NAMESPACE> delete role agent-leader-election-role
kubectl delete clusterrole agent-manager-role agent-proxy-role agent-metrics-reader <NAMESPACE>-agent-manager-role <NAMESPACE>-agent-proxy-role <NAMESPACE>-cluster-role-privileged
kubectl delete clusterrolebinding agent-manager-rolebinding agent-proxy-rolebinding agent-cluster-admin-rolebinding <NAMESPACE>-agent-manager-rolebinding <NAMESPACE>-agent-proxy-rolebinding <NAMESPACE>-cluster-role-binding-privileged
kubectl delete <NAMESPACE>-psp-nkmo
kubectl delete ns <NAMESPACE>

보안 컨텍스트 제약 조건이 이전에 생성된 경우:

kubectl delete scc telegraf-hostaccess

Kube-state-metrics 정보

NetApp Kubernetes Monitoring Operator가 자동으로 Kudbe-state-metrics를 설치하므로 사용자 개입이 필요하지 않습니다.

Kudbe-state-Metrics 카운터

다음 링크를 사용하여 이러한 kubbe 상태 메트릭 카운터에 대한 정보에 액세스할 수 있습니다.


 == Configuring the Operator
새로운 버전의 연산자에서는 가장 일반적으로 수정된 설정을 _AgentConfiguration_custom 리소스에서 구성할 수 있습니다. 운용자를 배포하기 전에 _operator-config.YAML_file을 편집하여 이 리소스를 편집할 수 있습니다. 이 파일에는 일부 설정의 주석 처리된 예제가 포함되어 있습니다. 의 목록을 참조하십시오 link:telegraf_agent_k8s_config_options.html["사용 가능한 설정"] 를 참조하십시오.

다음 명령을 사용하여 연산자를 배포한 후에도 이 리소스를 편집할 수 있습니다.

 kubectl -n netapp-monitoring edit AgentConfiguration
배포된 버전의 운영자가 AgentConfiguration을 지원하는지 확인하려면 다음 명령을 실행합니다.
 kubectl get crd agentconfigurations.monitoring.netapp.com
"서버에서 오류 발생(NotFound)" 메시지가 표시되는 경우 AgentConfiguration을 사용하려면 먼저 연산자를 업그레이드해야 합니다.

프록시 지원을 구성하는 중입니다

NetApp Kubernetes Monitoring Operator를 설치하기 위해 사용자 환경에서 프록시를 사용할 수 있는 두 가지 위치가 있습니다. 이러한 시스템은 동일하거나 별도의 프록시 시스템일 수 있습니다.

  • 설치 코드 조각을 실행하는 동안("curl" 사용) 프록시가 있어야 스니펫이 실행되는 시스템을 Cloud Insights 환경에 연결할 수 있습니다

  • 대상 Kubernetes 클러스터에서 Cloud Insights 환경과 통신하는 데 프록시가 필요합니다

이 중 하나 또는 둘 모두에 대해 프록시를 사용하는 경우 NetApp Kubernetes 운영 모니터를 설치하려면 먼저 프록시가 Cloud Insights 환경에 대한 올바른 통신을 허용하도록 구성되어 있는지 확인해야 합니다. 프록시가 있고 운영자를 설치하려는 서버/VM에서 Cloud Insights에 액세스할 수 있는 경우 프록시가 제대로 구성되었을 수 있습니다.

NetApp Kubernetes 운영 모니터를 설치하는 데 사용되는 프록시에 대해 Operator를 설치하기 전에 _http_proxy/https_proxy_environment 변수를 설정하십시오. 일부 프록시 환경에서는 _no_proxy 환경_변수를 설정해야 할 수도 있습니다.

변수를 설정하려면 * NetApp Kubernetes Monitoring Operator를 설치하기 전에 * 시스템에서 다음 단계를 수행하십시오.

  1. 현재 사용자에 대한 _https_proxy_and/or_http_proxy_environment 변수를 설정합니다.

    1. 설정 중인 프록시에 인증(사용자 이름/암호)이 없으면 다음 명령을 실행합니다.

       export https_proxy=<proxy_server>:<proxy_port>
      .. 설정 중인 프록시에 인증(사용자 이름/암호)이 있는 경우 다음 명령을 실행합니다.
      export http_proxy=<proxy_username>:<proxy_password>@<proxy_server>:<proxy_port>

Kubernetes 클러스터가 Cloud Insights 환경과 통신하는 데 사용되는 프록시의 경우 이러한 지침을 모두 읽은 후 NetApp Kubernetes 모니터링 운영자를 설치하십시오.

NetApp Kubernetes Monitoring Operator를 구축하기 전에 operator-config.yAML에서 AgentConfiguration의 프록시 섹션을 구성하십시오.

agent:
  ...
  proxy:
    server: <server for proxy>
    port: <port for proxy>
    username: <username for proxy>
    password: <password for proxy>

    # In the noproxy section, enter a comma-separated list of
    # IP addresses and/or resolvable hostnames that should bypass
    # the proxy
    noproxy: <comma separated list>

    isTelegrafProxyEnabled: true
    isFluentbitProxyEnabled: <true or false> # true if Events Log enabled
    isCollectorsProxyEnabled: <true or false> # true if Network Performance and Map enabled
    isAuProxyEnabled: <true or false> # true if AU enabled
  ...
...

사용자 지정 또는 프라이빗 Docker 저장소 사용

기본적으로 NetApp Kubernetes 모니터링 운영자는 Cloud Insights 저장소에서 컨테이너 이미지를 가져옵니다. 모니터링을 위한 타겟으로 사용되는 Kubernetes 클러스터가 있고 해당 클러스터가 사용자 지정 또는 프라이빗 Docker 저장소 또는 컨테이너 레지스트리에서만 컨테이너 이미지를 풀도록 구성된 경우 NetApp Kubernetes Monitoring Operator가 필요로 하는 컨테이너에 대한 액세스를 구성해야 합니다.

NetApp 모니터링 오퍼레이터 설치 타일에서 "이미지 풀 스니펫"을 실행합니다. 이 명령은 Cloud Insights 리포지토리에 로그인하고 오퍼레이터의 모든 이미지 종속성을 풀한 다음 Cloud Insights 리포지토리에서 로그아웃합니다. 메시지가 표시되면 제공된 리포지토리 임시 암호를 입력합니다. 이 명령은 옵션 기능을 포함하여 오퍼레이터가 사용하는 모든 이미지를 다운로드합니다. 이러한 이미지가 사용되는 기능은 아래를 참조하십시오.

핵심 운영자 기능 및 Kubernetes 모니터링

  • NetApp - 모니터링

  • ci-kube-RBAC-프록시

  • CI - KSM을 참조하십시오

  • CI - 텔레그라프

  • distroless-root-user.(거리 없는 루트 사용자

이벤트 로그

  • CI 플루언트 비트

  • ci-cubernetes-event-exporter를 의미합니다

네트워크 성능 및 맵

  • CI-NET-관찰자

회사 정책에 따라 운영 Docker 이미지를 프라이빗/로컬/엔터프라이즈 Docker 저장소로 밀어 넣습니다. 리포지토리에서 이러한 이미지에 대한 이미지 태그 및 디렉터리 경로가 Cloud Insights 리포지토리의 이미지 태그 및 디렉터리 경로와 일치하는지 확인합니다.

운영자 배포에서 모니터링 - 운영자 배포를 편집합니다. YAML을 편집하고 모든 이미지 참조를 수정하여 개인 Docker 저장소를 사용하십시오.

image: <docker repo of the enterprise/corp docker repo>/kube-rbac-proxy:<ci-kube-rbac-proxy version>
image: <docker repo of the enterprise/corp docker repo>/netapp-monitoring:<version>

operator-config.yAML에서 AgentConfiguration을 편집하여 새로운 Docker 저장소 위치를 반영하십시오. 개인 리포지토리에 대한 새 imagePullSecret을 만듭니다. 자세한 내용은 https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ 참조하십시오

agent:
  ...
  # An optional docker registry where you want docker images to be pulled from as compared to CI's docker registry
  # Please see documentation link here: https://docs.netapp.com/us-en/cloudinsights/task_config_telegraf_agent_k8s.html#using-a-custom-or-private-docker-repository
  dockerRepo: your.docker.repo/long/path/to/test
  # Optional: A docker image pull secret that maybe needed for your private docker registry
  dockerImagePullSecret: docker-secret-name

OpenShift 지침

OpenShift 4.6 이상에서 실행 중인 경우 _operator-config.yAML_에서 AgentConfiguration을 편집하여 _Privileged_setting을 활성화해야 합니다.

# Set runPrivileged to true SELinux is enabled on your kubernetes nodes
runPrivileged: true

OpenShift는 일부 Kubernetes 구성 요소에 대한 액세스를 차단할 수 있는 수준 높은 보안을 구현할 수 있습니다.

비밀에 대한 참고 사항

NetApp Kubernetes 모니터링 운영자가 클러스터 전체의 비밀을 볼 수 있는 권한을 제거하려면 설치하기 전에 _operator-setup.yaml_file 에서 다음 리소스를 삭제하십시오.

 ClusterRole/netapp-ci-<namespace>-agent-secret-clusterrole
 ClusterRoleBinding/netapp-ci-<namespace>-agent-secret-clusterrolebinding

업그레이드인 경우 클러스터에서 리소스도 삭제합니다.

 kubectl delete ClusterRole/netapp-ci-<namespace>-agent-secret-clusterrole
 kubectl delete ClusterRoleBinding/netapp-ci-<namespace>-agent-secret-clusterrolebinding

변경 분석이 활성화된 경우 _AgentConfiguration_or_operator-config.yaml_를 수정하여 변경 관리 섹션의 주석을 해제하고 변경 관리 섹션 아래에 _kindsToIgnoreFromWatch: '"비밀"'_를 포함시킵니다. 이 줄에서 작은따옴표와 큰따옴표의 존재 및 위치를 확인합니다.

# change-management:
  ...
  # # A comma separated list of kinds to ignore from watching from the default set of kinds watched by the collector
  # # Each kind will have to be prefixed by its apigroup
  # # Example: '"networking.k8s.io.networkpolicies,batch.jobs", "authorization.k8s.io.subjectaccessreviews"'
  kindsToIgnoreFromWatch: '"secrets"'
  ...

Kubernetes 체크섬 확인 중

Cloud Insights 에이전트 설치 프로그램은 무결성 검사를 수행하지만 일부 사용자는 다운로드한 아티팩트를 설치하거나 적용하기 전에 자체 검증을 수행하려고 할 수 있습니다. 기본 다운로드 및 설치 대신 다운로드 전용 작업을 수행하기 위해 이러한 사용자는 UI에서 가져온 에이전트 설치 명령을 편집하고 뒤에 오는 "설치" 옵션을 제거할 수 있습니다.

다음 단계를 수행하십시오.

  1. 지시에 따라 Agent Installer 스니펫을 복사합니다.

  2. 코드 조각을 명령 창에 붙여 넣는 대신 텍스트 편집기에 붙여 넣습니다.

  3. 명령에서 뒤에 오는 "--install"을 제거합니다.

  4. 텍스트 편집기에서 전체 명령을 복사합니다.

  5. 이제 명령 창(작업 디렉토리)에 붙여넣고 실행합니다.

    • 다운로드 및 설치(기본값):

       installerName=cloudinsights-rhel_centos.sh … && sudo -E -H ./$installerName --download –-install
      ** 다운로드 전용:
      installerName=cloudinsights-rhel_centos.sh … && sudo -E -H ./$installerName --download

download-only 명령은 필요한 모든 아티팩트를 Cloud Insights에서 작업 디렉토리로 다운로드합니다. 아티팩트에는 다음이 포함되지만 이에 국한되지는 않습니다.

  • 설치 스크립트

  • 환경 파일입니다

  • YAML 파일

  • 서명된 체크섬 파일(SHA256.signed)

  • 서명 확인을 위한 PEM 파일(NetApp_cert.pem

육안 검사를 통해 설치 스크립트, 환경 파일 및 YAML 파일을 확인할 수 있습니다.

PEM 파일의 지문이 다음과 같은 것인지 확인하여 PEM 파일을 확인할 수 있습니다.

 1A918038E8E127BB5C87A202DF173B97A05B4996
보다 구체적으로,
 openssl x509 -fingerprint -sha1 -noout -inform pem -in netapp_cert.pem
서명된 체크섬 파일은 PEM 파일을 사용하여 확인할 수 있습니다.
 openssl smime -verify -in sha256.signed -CAfile netapp_cert.pem -purpose any
모든 아티팩트가 만족스럽게 확인되면 다음을 실행하여 에이전트 설치를 시작할 수 있습니다.
sudo -E -H ./<installation_script_name> --install

문제 해결

NetApp Kubernetes Monitoring Operator 설정 시 문제가 발생할 경우 다음과 같은 사항을 고려해야 합니다.

문제: 다음을 시도해 보십시오.

Kubernetes 영구 볼륨과 해당 백엔드 스토리지 장치 간의 하이퍼링크/연결이 표시되지 않습니다. 내 Kubernetes 영구 볼륨은 스토리지 서버의 호스트 이름을 사용하여 구성됩니다.

기존 Telegraf 에이전트를 제거한 다음 최신 Telegraf 에이전트를 다시 설치하는 단계를 따릅니다. Telegraf 버전 2.0 이상을 사용해야 하며 Kubernetes 클러스터 스토리지를 Cloud Insights에서 능동적으로 모니터링해야 합니다.

로그에 다음과 같은 메시지가 표시됩니다.

E0901 15:21:39.962145 1 reflector.go:178] k8s.io/kube-state-metrics/internal/store/builder.go:352: * v1.mutatingWebhookConfiguration: 서버에서 요청한 리소스를 찾을 수 없습니다
E0901 15:21:43.168161 반사판. go:178] k8s.io/kube-state-metrics/internal/store/builder.go:352: 목록*v1. 임대: 서버가 요청된 리소스를 찾을 수 없습니다(Get leases.coordination.k8s.io).

이러한 메시지는 Kubernetes 버전이 1.20 미만인 경우 kube-state-metrics 버전 2.0.0 이상을 실행하는 경우에 발생할 수 있습니다.


Kubernetes 버전 가져오기:

kubectl 버전 _

kube-state-metrics 버전을 얻으려면:

_kubectl get deploy/kube-state-metrics -o jsonpath='{..image}'


이러한 메시지가 발생하지 않도록 하기 위해 사용자는 kube-state-metrics 배포를 수정하여 다음 임대 서비스를 비활성화할 수 있습니다.

mutatingwebhookconfiguration
validingwebhookconfiguration
_volumeAttachments 리소스 _

보다 구체적으로 다음과 같은 CLI 인수를 사용할 수 있습니다.

리소스 = certificatesigningrequests, configmap, cronjobs, demonset, 배포, 엔드포인트, 수평적 podautoscalers, ingresses, 작업, 제한 범위, 네임스페이스, 네트워크 정책, 노드, 영구 볼륨권, podrightiondecudies, 포드, 자원 컨트롤러, 리플리케이션, 풀 소스, 서비스

기본 리소스 목록은 다음과 같습니다.

"인증 요청, 구성 맵, cronjobs, demonset, 배포, 엔드포인트, 수평 포드오토칼러, ingresses, 작업, 임대, 제한 범위, mutatingwebhookconfiguration, 네임스페이스, 네트워크 정책, 노드, 지속형, 지속형, 지속형, 볼륨, 볼륨 구성, 복제, 웹후크구성, 볼륨 첨부 파일 확인"

Telegraf에서 다음과 유사한 오류 메시지가 표시되지만 Telegraf가 시작되고 실행됩니다.

10월 11일 14:23:41 IP-172-31-39-47 systemd [1]: 인플루엔자 DB에 메트릭을 보고하기 위한 플러그인 기반 서버 에이전트를 시작했습니다.
10월 11일 14:23:41 IP-172-31-39-47 Telegraf[1827]: time="2021-10-11T14:23:41Z" level=error msg="캐시 디렉토리를 만들지 못했습니다. /etc/Telegraf/.cache/snowflake, err:mkdir/etc/Telegraf/.ca
CHE: 권한이 거부되었습니다. 무시됨 \n "func="gosnowflake.(* defaultLogger).Errorf" file="log.Go:120"
10월 11일 14:23:41 IP-172-31-39-47 Telegraf[1827]: time="2021-10-11T14:23:41Z" level=error msg="를 열지 못했습니다. 무시되었습니다. /etc/Telegraf/.cache/snowflake/OCSP_response_cache.json을 엽니다. 해당 없음
파일 또는 디렉터리\n"func="gosnowflake.(* defaultLogger).Errorf" file="log.Go:120"
10월 11일 14:23:41 IP-172-31-39-47 Telegraf[1827]:2021-10-11T14:23:41Z i! 텔레그라프 1.19.3 시작

이는 알려진 문제입니다. 을 참조하십시오 "이 GitHub 기사를 참조하십시오" 를 참조하십시오. Telegraf가 실행 중인 경우 사용자는 이러한 오류 메시지를 무시할 수 있습니다.

Kubernetes에서 Telegraf POD가 다음 오류를 보고합니다.
"mountstats 정보 처리 중 오류 발생: mountstats 파일을 열지 못했습니다. /hostfs/proc/1/mountstats, 오류: open/hostfs/proc/1/mountstats: permission denied"

SELinux가 설정되어 있고 강제 적용되는 경우 Telegraf 포드가 Kubernetes 노드의 /proc/1/mountstats 파일에 액세스하지 못할 수 있습니다. 이 제한을 해결하려면 agentconfiguration을 편집하고 runPrivileged 설정을 활성화하십시오. 자세한 내용은 다음을 참조하십시오. https://docs.netapp.com/us-en/cloudinsights/task_config_telegraf_agent_k8s.html#openshift-instructions.

Kubernetes에서 내 Telegraf ReplicaSet POD가 다음 오류를 보고합니다.

[inputs.prometheus] 플러그인 오류: keypair /etc/kubernetes/pki/etcd/server.crt:/etc/kubernetes/pki/etcd/server.key: open/etc/Kubernetes/pki/etcd/server.crt: 해당 파일 또는 디렉토리가 없습니다

Telegraf ReplicaSet POD는 마스터나 etcd로 지정된 노드에서 실행되도록 설계되었습니다. ReplicaSet 포드가 이러한 노드 중 하나에서 실행되고 있지 않으면 이러한 오류가 발생합니다. 마스터/etcd 노드에 문제가 있는지 확인합니다. 만약 그렇다면, 텔레그라프 ReplicaSet, 텔레그라프-RS에 필요한 내약성을 추가한다.

예를 들어 ReplicaSet을 편집합니다.

kubectl 편집 RS Telegraf-RS

…​ 그리고 사양에 적절한 공차를 추가합니다. 그런 다음 ReplicaSet 포드를 다시 시작합니다.

PSP/PSA 환경이 있습니다. 이 문제가 모니터링 오퍼레이터에게 영향을 미칩니까?

PSP(Pod Security Policy) 또는 PSA(Pod Security Admission)를 통해 Kubernetes 클러스터를 실행 중인 경우, 최신 NetApp Kubernetes Monitoring Operator로 업그레이드해야 합니다. 다음 단계에 따라 PSP/PSA를 지원하여 현재 NKMO로 업그레이드합니다.

1. 설치 제거 이전 모니터링 오퍼레이터:

kubectl delete agent-monitoring-netapp-n netapp-monitoring
kubectl delete ns NetApp-monitoring
kubectl 삭제 CRD agents.monitoring.netapp.com
clusterrole agent-manager-role agent-proxy-role agent-metrics-reader를 삭제합니다
clusterrolebinding agent-manager-rolebinding agent-proxy-rolebinding agent-cluster-admin-rolebinding 을 삭제합니다

2. 설치합니다 모니터링 운용자의 최신 버전

NKMO를 배포하는 데 문제가 발생했고 PSP/PSA를 사용하고 있습니다.

다음 명령을 사용하여 에이전트를 편집합니다.

kubectl -n <name-space> 편집 에이전트

'보안 정책 사용'을 '거짓'으로 표시합니다. 이렇게 하면 Pod 보안 정책과 Pod 보안 입장은 비활성화되고 NKMO가 배포될 수 있습니다. 다음 명령을 사용하여 확인합니다.

kubectl get psp(Pod 보안 정책이 제거됨)
kubectl get all -n <namespace>

grep -i psp (아무것도 발견되지 않았음을 보여줌)

"ImagePullBackoff" 오류가 표시됩니다

이러한 오류는 사용자 지정 또는 프라이빗 Docker 저장소가 있고 NetApp Kubernetes Monitoring Operator가 이를 제대로 인식하도록 구성하지 않은 경우 나타날 수 있습니다. 자세히 보기 사용자 지정/개인 저장소 구성 정보

모니터링 운영자 구축에 문제가 있는데 현재 설명서를 참조해도 문제를 해결하는 데 도움이 되지 않습니다.

다음 명령의 출력을 캡처하거나 기록해 두고 기술 지원 팀에 문의하십시오.

 kubectl -n netapp-monitoring get all
 kubectl -n netapp-monitoring describe all
 kubectl -n netapp-monitoring logs <monitoring-operator-pod> --all-containers=true
 kubectl -n netapp-monitoring logs <telegraf-pod> --all-containers=true

NKMO 네임스페이스의 net-observer(워크로드 맵) 포드가 CrashLoopBackOff에 있습니다

이러한 포드는 네트워크 관찰 가능성을 위한 워크로드 맵 데이터 수집기에 해당합니다. 다음을 시도해 보십시오.
• 최소 커널 버전을 확인하려면 pods 중 하나의 로그를 확인하십시오. 예를 들면 다음과 같습니다.
 — {"ci-tenant-id":"your-tenant-id","collector-cluster":"your-k8s-cluster-name","environment":"prod","level":"error","msg":"유효성 검사에 실패했습니다. 이유: 커널 버전 3.10.0이 최소 커널 버전 4.18.0", "time":"2022-11-09T08:23:08Z"}보다 작습니다 — 
• Net-observer Pod를 사용하려면 Linux 커널 버전이 4.18.0 이상이어야 합니다. "uname -r" 명령을 사용하여 커널 버전을 확인하고 해당 버전이 4.18.0 이상인지 확인합니다

Pod는 NKMO 네임스페이스(기본값: NetApp 모니터링)에서 실행되지만, 쿼리의 워크로드 맵 또는 Kubernetes 메트릭의 UI에는 데이터가 표시되지 않습니다

K8S 클러스터의 노드에서 시간 설정을 확인합니다. 정확한 감사 및 데이터 보고를 위해 NTP(Network Time Protocol) 또는 SNTP(Simple Network Time Protocol)를 사용하여 Agent 시스템의 시간을 동기화하는 것이 좋습니다.

NKMO 네임스페이스의 일부 net-observer POD가 Pending 상태입니다

Net-observer는 DemonSet로, k8s 클러스터의 각 노드에서 포드를 실행합니다.
• 보류 중인 Pod를 확인하고 CPU 또는 메모리에 리소스 문제가 있는지 확인합니다. 노드에서 필요한 메모리 및 CPU를 사용할 수 있는지 확인합니다.

NetApp Kubernetes 모니터링 운영자를 설치한 직후 로그에 다음이 표시됩니다.

[inputs.prometheus] 플러그인 오류: HTTP 요청을 보내는 중 오류가 발생했습니다 http://kube-state-metrics.<namespace>.svc.cluster.local:8080/metrics: 가져오기 http://kube-state-metrics.<namespace>.svc.cluster.local:8080/metrics: TCP: lookup kudo-state-metrics.<namespace>.svc.cluster.local: 해당 호스트가 없습니다

이 메시지는 일반적으로 새 오퍼레이터가 설치되어 있고 _Telegraf-RS_POD가 _KSM_POD가 가동되기 전에 작동 중일 때만 표시됩니다. 이러한 메시지는 모든 Pod가 실행되면 중지되어야 합니다.

클러스터에 존재하는 Kubernetes CronJobs에 대해 어떤 메트릭도 수집되지 않습니다.

Kubernetes 버전 확인(예 kubectl version)를 클릭합니다. v1.20.x 이하일 경우 이는 예상되는 제한 사항입니다. NetApp Kubernetes 모니터링 오퍼레이터와 함께 구축되는 Kubbe-state-metrics 릴리즈는 v1.crontjob만 지원합니다. Kubernetes 1.20.x 이하에서는 crontjob 리소스가 v1beta.crontjob에 있습니다. 따라서 kube-state-metrics는 crontjob 리소스를 찾을 수 없습니다.

운용자 설치 후, Telegraf-ds Pod는 CrashLoopBackOff로 진입하고 POD 로그는 "su:Authentication failure"를 나타낸다.

AgentConfiguration_에서 Telegraf 섹션을 편집하고 _dockerMetricCollectionEnabled_를 false 로 설정합니다. 자세한 내용은 조작자를 참조하십시오 "구성 옵션".

참고: Cloud Insights Federal Edition을 사용하는 경우, Docker 소켓에 액세스하려면 Telegraf 컨테이너를 루트로 실행하거나 _su_를 사용하여 Telegraf 사용자를 Docker 그룹에 추가해야 하기 때문에 _su
사용이 제한된 사용자는 Docker 메트릭을 수집할 수 없습니다. Docker 메트릭 수집 및 _su_의 사용은 기본적으로 활성화되어 있습니다. 두 가지를 모두 사용하지 않으려면 _AgentConfiguration_파일에서 _Telegraf.docker_entry를 제거하십시오.

…​
사양:
…​
텔레그라프:
…​
     -name: docker입니다
            실행 모드:
              - DemonSet
            대체:
              -key:docker_unix_sock_placeholder입니다
                값: UNIX:///run/docker.sock
…​
…​

Telegraf 로그에 다음과 유사한 오류 메시지가 반복적으로 표시됩니다.

E! [agent] outputs.http:Post에 쓰는 동안 오류가 발생했습니다 "https://<tenant_url>/rest/v1/lake/ingest/influxdb": 컨텍스트 마감일이 초과되었습니다(헤더를 기다리는 동안 클라이언트 시간 초과됨).

_AgentConfiguration_에서 Telegraf 섹션을 편집하고 _dockerMetricCollectionEnabled_를 false 로 설정합니다. 자세한 내용은 조작자를 참조하십시오 "구성 옵션".

일부 이벤트 로그에 대한 _divedobject_data가 없습니다.

의 단계를 수행했는지 확인합니다 "권한" 섹션을 참조하십시오.

두 개의 모니터링 운영자 Pod가 실행 중인 것을 볼 수 있는데, 하나는 netapp-ci-monitoring-operator-<pod>이고 다른 하나는 monitoring-operator-<pod>입니다.

2023년 10월 12일부터 Cloud Insights은 사용자에게 더 나은 서비스를 제공하기 위해 운영자를 리팩토링했습니다. 변경 사항을 완전히 채택하려면 반드시 필요합니다 기존 연산자를 제거합니다새 장치를 장착하십시오.

내 Kubernetes 이벤트가 예기치 않게 Cloud Insights 보고에 대한 보고를 중단했습니다.

이벤트 내보내기 포드의 이름을 검색합니다.

`kubectl -n netapp-monitoring get pods

grep event-exporter

awk '{print $1}'

sed 's/event-exporter./event-exporter/'`
"netapp-ci-event-exporter" 또는 "event-exporter"여야 합니다. 그런 다음 모니터링 에이전트를 편집합니다 `kubectl -n netapp-monitoring edit agent`를 입력하고 log_file 의 값을 이전 단계에서 찾은 적절한 이벤트 내보내기 포드 이름을 반영하도록 설정합니다. 보다 구체적으로 log_file을 "/var/log/containers/netapp-ci-event-exporter.log" 또는 "/var/log/containers/event-exporter .log"로 설정해야 합니다.

…​.
fluent-bit:
…​
- name: event-exporter-ci
substitutions:
- key: LOG_FILE
values:
- /var/log/containers/netapp-ci-event-exporter
.log
…​
…​.
또는, 하나를 할 수도 있습니다 설치 제거다시 설치합니다 에이전트

리소스 부족으로 인해 NetApp Kubernetes Monitoring Operator에 의해 구축된 Pod가 충돌하는 것을 볼 수 있습니다.

자세한 내용은 NetApp Kubernetes 모니터링 오퍼레이터 를 참조하십시오 "구성 옵션" 필요한 경우 CPU 및/또는 메모리 제한을 늘립니다.

추가 정보는 에서 찾을 수 있습니다 "지원" 페이지 또는 에 있습니다 "Data Collector 지원 매트릭스".