GKE 마켓플레이스로 손쉽게 Prometheus + Grafana 환경 구축

8919 단어 grafanaGKEprometheus

소개



새해 복 많이 받으세요.
아직 인프라의 기반 개발이 끝나지 않지만 꾸준히 가고 싶습니다.
(인프라가 전문이 아니지만,,)

이번에는 서버의 감시 툴을 Prometheus와 Grafana를 사용해 구축해 나가고 싶습니다. GKE 환경에서는 이 2개를 간단하게 도입할 수 있도록 마켓플레이스가 준비되어 있으므로 이것을 사용해 실시합니다.

NameSpace 만들기


$ kubectl create namespace monitoring

default를 더럽히고 싶지 않으므로 monitoring 네임 스페이스를 만듭니다.

서비스 계정 만들기


$ kubectl create serviceaccount --namespace monitoring prometheus

이 계정을 prometheus 모니터링용으로 설정

ClusterRole을 만들고 서비스 계정과 연결


kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: prometheus
rules:
  - apiGroups:
      - ""
    resources:
      - nodes
      - nodes/proxy
      - services
      - endpoints
      - pods
      - ingresses
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - ""
    resources:
      - configmaps
    verbs:
      - get
  - apiGroups:
      - "extensions"
    resources:
      - ingresses/status
      - ingresses
    verbs:
      - get
      - list
      - watch
  - nonResourceURLs:
      - "/metrics"
    verbs:
      - get
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: prometheus
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: prometheus
subjects:
- kind: ServiceAccount
  name: prometheus
  namespace: monitoring

확인해 둔다


$ kubectl describe serviceaccounts prometheus -n=monitoring
Name:                prometheus
Namespace:           monitoring
Labels:              <none>
Annotations:         <none>
Image pull secrets:  <none>
Mountable secrets:   prometheus-token-******
Tokens:              prometheus-token-******
Events:              <none>

$ kubectl get clusterroles
NAME                                                                   AGE
~ skip
prometheus                                                             2h

$ kubectl describe clusterroles prometheus
Name:         prometheus
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"rbac.authorization.k8s.io/v1beta1","kind":"ClusterRole","metadata":{"annotations":{},"name":"prometheus","namespace":""},"rules":[{"apiG...
PolicyRule:
  Resources             Non-Resource URLs  Resource Names  Verbs
  ---------             -----------------  --------------  -----
  endpoints             []                 []              [get list watch]
  nodes                 []                 []              [get list watch]
  nodes/proxy           []                 []              [get list watch]
  pods                  []                 []              [get list watch]
  services              []                 []              [get list watch]
  ingresses.extensions  []                 []              [get list watch create]
                        [/metrics]         []              [get]

$ kubectl describe clusterrolebindings prometheus
Name:         prometheus
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"rbac.authorization.k8s.io/v1beta1","kind":"ClusterRoleBinding","metadata":{"annotations":{},"name":"prometheus","namespace":""},"roleRef...
Role:
  Kind:  ClusterRole
  Name:  prometheus
Subjects:
  Kind            Name        Namespace
  ----            ----        ---------
  ServiceAccount  prometheus  monitoring


문제 없을 것 같습니다.

GKE 마켓플레이스에서 설치





Prometheus & Grafana를 클릭하고 필요한 정보를 입력하십시오.



배포 버튼을 누르면 생성됩니다.

노드가 1대라고 prometheus-alertmanager에게 불평할 수 있습니다(어쩌면)하지만 한번 시카토합니다.
구축에는 20분 정도 걸리므로 기장에 기다립니다

즉시 연결해 봅니다.



방법은 여기에 기재된대로입니다.


port-forward 명령을 치다
$ kubectl port-forward --namespace monitoring prometheus-grafana-0 3000

그러면
http://localhost:3000/ 에서 액세스할 수 있습니다.

초기 로그인 계정과 비밀번호는 비밀 데이터를 미리보고 확인하십시오.



성공적으로 액세스할 수 있으면 성공입니다.

쉽게 기존 GKE 환경에 Prometheus + Grafana 환경을 구축 할 수있었습니다.
다음에 대시보드를 만들고 싶습니다.

좋은 웹페이지 즐겨찾기