Kubernetes를 Grafana + Prometheus로 모니터링하기로 결정했습니다.
4852 단어 prometheuskubernetes
우선 Zabbix에서 도전
그렇지만 과거의 경험이라든가, 이미 감시로 사용하고 있다고 하는 이유로, Zabbix로 해 보았다.
우연히 Zabbix on Kubernetes 이라는 리포지토리에서 매뉴페스트 파일이 있었으므로 간단하게 구축할 수 있을 것 같았고.
하지만,,,
처럼 자신의 힘 부족으로 진입 장벽을 넘지 않고 포기했습니다.
역시 Grafana + Prometheus에서 모니터링
그래서 스테디셀러 방법으로 했습니다. 앱의 프레임워크로 사용하고 있는 Spring Boot가 제공하는 감시 인터페이스의 Micrometer와도 궁합이 좋고. ( Micrometer가 Zabbix를 지원하지 않음 은 놀랐다.)
여기 기사 을 참고하겠습니다. Kubernetes Setup for Prometheus and Grafana 에서 배포.
kubectl apply -f https://raw.githubusercontent.com/giantswarm/prometheus/master/manifests-all.yaml
부드럽게 시작하고 Ingress의 설정도 더해 Grafana의 화면을 보고, 아무것도 설정하지 않고 각 pod의 자원 사용 상황이 표시되어, 그 간단함에 조금 감동했습니다.
물론, 어떤 정보가 표시되고 있어, 뭔가 부족한 정보가 없는지, 검증하지 않으면 안 되는 것의 많음을 생각하면, 조금 크라크합니다만. . .
문제: kubelet 인스턴스를 모니터링할 수 없음
Prometheus의 [Alerts] 화면을 보면 InstanceDown의 경고가 나왔다.
의미가 모르고 다른 화면을 보면 [Status]-[Targets] 화면의 kubernetes-nodes에 있는 모든 엔드포인트가 DOWN 상태였다. 오류를 보면 각 노드의 10255 포트에 연결할 수 없습니다.
10255 포트는 kubelet이 인증 없이 접속할 수 있는 포트였지만, 보안의 관계로, Kubernetes 1.11 이후의 kubeadm으로 구축하면 무효( 참조 )가 되어 있었다.
안전한 10250 포트에 액세스하는 방법을 모색했지만, 지금 설정 방법을 모르고,,,
Prometheus의 감시 정의? kubernetes_sd_configs에서는 원래 10250 포트에 액세스하는 것을, manifests-all.yaml에서는 10255 포트로 변경하고 있었으므로, 이것을 해제해 보았지만 쓸모 없었다. . .
이것은 향후의 과제라고 하는 것으로 하고, 잠정적으로 node-exporter에 액세스 하는 것으로 경고를 회피.
- job_name: 'kubernetes-nodes'
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
kubernetes_sd_configs:
- role: node
relabel_configs:
- source_labels: [__address__]
regex: '(.*):10250'
replacement: '${1}:9100'
target_label: __address__
하지만 daemonset은 master 노드에서 움직이지 않는다. master 노드의 감시는 어떻게 하는 것이 옳은지 조사했지만, 그 문턱을 발견하지 않고, 수동으로 node_exporter를 움직이기로 했다.
다행히 RHEL/CentOS/Fedora라면 리포지토리가 준비되어 있었다.
# curl -Lo /etc/yum.repos.d/_copr_ibotty-prometheus-exporters.repo https://copr.fedorainfracloud.org/coprs/ibotty/prometheus-exporters/repo/epel-7/ibotty-prometheus-exporters-epel-7.repo
# yum install -y node_exporter
# systemctl start node_exporter
# systemctl enable node_exporter
이제 master 노드의 DOWN 경고도 회피하면서 메트릭스도 수집할 수 있을 것이다.
Reference
이 문제에 관하여(Kubernetes를 Grafana + Prometheus로 모니터링하기로 결정했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/megasys1968/items/e7f872bd64b5e6ccf4d4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)