프로 메테우스 모니터링 K8S 노드 모니터링
NodeExporter 프로젝트 프로 메테우스 커뮤니티, 주요 지표의 호스트가 호스트 성능 데이터의 제어를 달성하기 위해, 각 호스트 하나만 NodeExporter 예에 노드 DeamonSet는 Kubernetes으로 배포 할 수 있습니다 모니터링 할 수 있지만 컨테이너 있기 때문에 원인을 분리 할 수 있습니다 디스크 정보를 호스트 할 수있는 권리를하지 NodeExporter 용기를 사용하므로이 과정은 NodeExporter 호스트에 배포됩니다.
node_exporter : 모니터링 * NIX 시스템, 이동 언어 수집기를 사용
- 문서를 사용하여 HTTPS : //prometheus.io/docs/guides/node-exporter/
- GitHub의 : HTTPS : //github.com/prometheus/node_exporter
- 수출 목록 :은 https : //prometheus.io/docs/instrumenting/exporters/
공식 문서 : HTTPS : //github.com/kubernetes/kube-state-metrics
인덱스 노드 수출 수집 있습니다 :
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
node_cpu_ * node_disk_ * node_entropy_ * node_filefd_ * node_filesystem_ * node_forks_ * node_intr_total_ * node_ipvs_ * node_load_ * node_memory_ * node_netstat_ * node_network_ * node_nf_conntrack_ * node_scrape_ * node_sockstat_ * node_time_seconds_ * node_timex _ * node_xfs_ *
프로필
멋진 프로필 수정
- # 메테우스 프로필
- 프로 메테우스 - configmap.yaml
-
# 프로 메테우스 형식 https://prometheus.io/docs/prometheus/latest/configuration/configuration/ 구성 apiVersion : V1 종류 다음 ConfigMap 형 메타 데이터 : 이름 : 프로 메테우스 - 구성 네임 스페이스 : KUBE - 시스템 레이블 : kubernetes.io / 클러스터 - 서비스 - : " 참으로 " addonmanager.kubernetes.io / 모드 : EnsureExists 데이터 : # 저장 프로 메테우스 프로파일 prometheus.yml : | #의 구성 획득 대상 scrape_configs : - 작업 이름 : 프로 메테우스 static_configs : - 대상 : #의 컬렉션 자체 - 로컬 호스트 : 9090 prometheus.yml : | # 구성 수집 대상 scrape_configs : - 작업 이름 : kubernetes- 노드 static_configs : - 대상 : #의 콜렉션 자체 - 192.168.1.110:9100 - 192.168.1.111:9100 # 취득 : Apiserver 생존 지수 # apiservers-는 Kubernetes 위해 만든 작업 이름의 이름 - 작업 이름 : kubernetes- apiservers의 #의 발견을 기반으로 K8S 서비스 kubernetes_sd_configs : - 역할 : 엔드 포인트의 # 통신 마크 업 태그의 사용 relabel_configs을 : # 일반 일치하는 태그 예약 - 액션 :의 Keep #이 이미 포함되어 정규식 : 기본;는 Kubernetes, HTTPS source_labels : - __meta_kubernetes_namespace - __meta_kubernetes_service_name - __meta_kubernetes_endpoint_port_name #의 HTTPS로 사용, 기본 HTTP 체계 : HTTPS tls_config : #의 프로 메테우스 액세스 Apiserver 사용 인증 ca_file 경우 : / var / RUN / 비밀 / kubernetes.io / serviceaccount / ca.crt # HTTPS 인증 건너 insecure_skip_verify를 : true로 #의 프로 메테우스 액세스 Apiserver 사용 인증 bearer_token_file : /var/run/secrets/kubernetes.io/serviceaccount/ 토큰 #의 컬렉션 : Kubelet 생존 지수 - 작업 이름 :는 Kubernetes - nodes- kubelet의 : kubernetes_sd_configs #은 모든 노드의 클러스터 발견 - : 노드 역할 relabel_configs : #의 정규식에 의해 키에 액세스 정보 - 작업 : labelmap : 정규식 __meta_kubernetes_node_label_ (. + ) 기법 : HTTPS tls_config : ca_file : /var/run/secrets/kubernetes.io/serviceaccount/ ca.crt insecure_skip_verify : true로 bearer_token_file :/var/run/secrets/kubernetes.io/serviceaccount/ 토큰 # 采集: 노드 - cadvisor信息 - 작업 이름 :는 Kubernetes - nodes- cadvisor의 kubernetes_sd_configs : - 역할 : 노드 relabel_configs : - 조치 : labelmap의 정규식 : __meta_kubernetes_node_label_ (+. ) # 重命名标签 - target_label : __metrics_path__ 교체 : / 측정 / cadvisor의 구조 : HTTPS tls_config : ca_file : /var/run/secrets/kubernetes.io/serviceaccount/ ca.crt insecure_skip_verify : 사실 bearer_token_file : /var/run/secrets/kubernetes.io/serviceaccount/ 토큰 #의 컬렉션 : 서비스 엔드 포인트 정보 - 작업 이름 :는 Kubernetes - 서비스 - 엔드 포인트 # 선택 지표 kubernetes_sd_configs을 : - 역할 : 엔드 포인트의 relabel_configs : - 작업 : 보관할 것 정규식 : true로 # 소스 레이블 지정 source_labels을 : - __meta_kubernetes_service_annotation_prometheus_io_scrape - 액션 : 바꾸기 정규식 : (HTTPS?) source_labels을 : - __meta_kubernetes_service_annotation_prometheus_io_scheme를 #의 이름 바꾸기 태그 획득 target_label : __scheme__ - 실행 : 대체 정규식 (. + ) source_labels : - __meta_kubernetes_service_annotation_prometheus_io_path target_label : __metrics_path__ - 액션 : 대체 정규식 ([ ^] +), (\ D + (:: \ D +?)? ) 여분 : $ 1 : $ 2 source_labels : - __address__ - __meta_kubernetes_service_annotation_prometheus_io_port target_label : __address__ - 조치 : labelmap의 정규식 :__meta_kubernetes_service_label_ (. + ) - 조치 : 대체 source_labels을 : - __meta_kubernetes_namespace의 target_label을 : kubernetes_namespace - 액션 : 바꾸기 source_labels을 : - __meta_kubernetes_service_name target_label : kubernetes_name의 #의 컬렉션 :는 Kubernetes - 서비스 서비스 지표 - 작업 이름을 : kubernetes- 서비스 kubernetes_sd_configs을 : - 역할 : 서비스 # 블랙 박스를 프로빙 IP와 포트를 프로빙 볼 수 있습니다 metrics_path는 : / 프로브 PARAMS : 모듈 : - http_2xx relabel_configs : - 조치 : 계속 정규식 : 사실 source_labels을 : - __meta_kubernetes_service_annotation_prometheus_io_probe - source_labels을 : - __address__ target_label : __param_target # 블랙 박스使用进行黑盒探测 - 교체 : 블랙 박스 target_label : __address__ - source_labels : - __param_target target_label : 예 - 조치 : labelmap의 정규식 : __meta_kubernetes_service_label_ . (+ ) - source_labels : - __meta_kubernetes_namespace의 target_label : kubernetes_namespace - source_labels : - __meta_kubernetes_service_name target_label : kubernetes_name의 # 采集:는 Kubernetes - 포드信息 - 작업 이름 : kubernetes- 포드 kubernetes_sd_configs : - 역할 : 포드 relabel_configs : - 조치 : 계속 정규식 : 사실 source_labels : # 只保留采集的信息 - __meta_kubernetes_pod_annotation_prometheus_io_scrape - 액션 : 대체 . 정규식 ( + ) source_labels : - __meta_kubernetes_pod_annotation_prometheus_io_path target_label : __metrics_path__ - 실행 : 대체 정규식 ([ ^] +) (: \ D +) (\ D +? ) 여분 : $ 1 : $ 2 source_labels : # 采集地址 - __address__ # 采集端口 - __meta_kubernetes_pod_annotation_prometheus_io_port target_label : __address__ - 조치 : labelmap 정규식 : __meta_kubernetes_pod_label_ (. + ) - 액션 : 대체 source_labels : - __meta_kubernetes_namespace의 target_label : kubernetes_namespace - 작업 : 교체 source_labels을 : - __meta_kubernetes_pod_name target_label : kubernetes_pod_name은 경고 : #의 경고 프로필 alertmanagers : - kubernetes_sd_configs : # 동적 인수 - 역할 : POD의 tls_config : ca_file : / var에 / RUN / 비밀 /는 Kubernetes. IO / serviceaccount / ca.crt bearer_token_file : /var/run/secrets/kubernetes.io/serviceaccount/ 토큰 relabel_configs : - source_labels : [ __meta_kubernetes_namespace ] 정규식 : KUBE - 시스템 조치 : 유지 - source_labels을 : [ __meta_kubernetes_pod_label_k8s_app ] 정규식 : alertmanager 조치 : 유지 - source_labels을 : [ __meta_kubernetes_pod_container_port_number ] 정규식 : 조치 : 드롭
Node 부서 : node_exporter
1, 구성 파일을 적용하려면
-f 프로 메테우스 - configmap.yaml을 적용 kubectl
2 볼 경우 발효
3, Grafana 시각화 템플릿을 사용하여 : 9276
4 그룹을 선택
5, 노드 정보 (그 표시에 따라 트리밍)