공유할 서비스 선택

TECH


TECH

Middleware (Kubernetes-3) prometheus & Grafana 활용하여 모니터링 구성하기

페이지 정보

작성자 미들웨어 아이디로 검색 전체게시물 댓글 0건 조회 2,639회 좋아요 1회 작성일 21-09-23 09:32

본문

안녕하세요. 미들웨어 입니다.

 

이번 시간에는 지난 번에 이어서 쿠버네티스를 모니터링 방법에 대해 진행해보겠습니다.

쿠버네티스를 활용하는 곳이 cloud 경우는 많이 활성화가 되있어서 자체 모니터링도 나름 괜찮습니다.

하지만... 저희의 application 에는 상황에 맞도록 서비스에 맞도록 수정해줘야 합니다.

물론 상용 모니터링툴인 jennifer 경우 꽤 괜찮은 대안이 됩니다.

 

오픈소스인만큼 오픈소스로 모니터링을 구성해보겠습니다.

오픈소스 모니터링으로 활용도가 높은 것은 grafana 인것 같으니 그걸로 진행해보겠습니다.( 레퍼런스도 꽤 많이 있기도 합니다.)

 

 

 

1. helm 헬름설치

- curl 로 헬름 설치 진행  (한줄씩 입력하세요)

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3

 

chmod 700 get_helm.sh

 

./get_helm.sh

 

- 설치 버전 확인 

helm version

 

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts/

 

helm repo update

 

helm search repo prometheus 

 

- helm 인스톨로 쿠버네티스에 배포

helm install prometheus-community/kube-prometheus-stack --generate-name

 

- 차트에 대한 배포가 끝나니 프로메테우스, 그라파나가 설치된 것을 확인 해봅시다.

 [opc@inst-public ~]$ kubectl get deploy,po,svc

NAME                                                                  READY   UP-TO-DATE   AVAILABLE   AGE

deployment.apps/kube-prometheus-stack-1629-operator                   1/1     1            1           28m

deployment.apps/kube-prometheus-stack-1629700182-grafana              1/1     1            1           28m

deployment.apps/kube-prometheus-stack-1629700182-kube-state-metrics   1/1     1            1           28m

deployment.apps/nginx                                                 3/3     3            3           3h8m

 

NAME                                                                  READY   STATUS    RESTARTS   AGE

pod/alertmanager-kube-prometheus-stack-1629-alertmanager-0            2/2     Running   0          28m

pod/kube-prometheus-stack-1629-operator-84f6854bff-6j78m              1/1     Running   0          28m

pod/kube-prometheus-stack-1629700182-grafana-77944c547b-j7db8         2/2     Running   0          28m

pod/kube-prometheus-stack-1629700182-kube-state-metrics-7b94c65fvm4   1/1     Running   0          28m

pod/kube-prometheus-stack-1629700182-prometheus-node-exporter-7c82b   1/1     Running   0          28m

pod/kube-prometheus-stack-1629700182-prometheus-node-exporter-qvqd8   1/1     Running   0          28m

pod/kube-prometheus-stack-1629700182-prometheus-node-exporter-vmj7g   1/1     Running   0          28m

pod/nginx-7848d4b86f-7hgnw                                            1/1     Running   0          3h1m

pod/nginx-7848d4b86f-hczzk                                            1/1     Running   0          3h8m

pod/nginx-7848d4b86f-kgcgf                                            1/1     Running   0          3h8m

pod/prometheus-kube-prometheus-stack-1629-prometheus-0                2/2     Running   0          28m

 

NAME              TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)                      AGE

service/alertmanager-operated        ClusterIP      None            <none>           9093/TCP,9094/TCP,9094/UDP   28m

service/kube-prometheus-stack-1629-alertmanager       ClusterIP      10.96.209.138   <none>           9093/TCP             28m

service/kube-prometheus-stack-1629-operator            ClusterIP      10.96.76.65     <none>           443/TCP               28m

service/kube-prometheus-stack-1629-prometheus        ClusterIP      10.96.13.232    <none>           9090/TCP              28m

service/kube-prometheus-stack-1629700182-grafana     ClusterIP      10.96.141.132   <none>           80/TCP                28m

service/kube-prometheus-stack-1629700182-kube-state-metrics   ClusterIP    10.96.17.26     <none>           8080/TCP         28m

service/kube-prometheus-stack-1629700182-prometheus-node-exporter   ClusterIP      10.96.194.129   <none>           9100/TCP    28m

service/kubernetes                                ClusterIP      10.96.0.1       <none>           443/TCP          2d21h

service/nginx-service                                  LoadBalancer   10.96.191.198   146.56.169.xxx  8080:32590/TCP      166m

service/prometheus-operated                         ClusterIP      None            <none>           9090/TCP          28m

 

 

2. Grafana 서비스 매니페스트 파일을 열어 로드벨런신 구성하여 공인IP 연동하기

OCI에서는 로드벨런싱을 구성하여 외부 호출을 진행 할 수 있는 공인 IP를 할당 받을 수 있습니다. 

(주의할점은 아래 # 주석처리된 부분을 동일하게 진행 하시고 추가된 글도 동일하게 추가해야 합니다)

 

kubectl edit svc  kube-prometheus-stack-1629700182-grafana

 

- 아래 내용 수정 후 저장 (:wq!)

apiVersion: v1

kind: Service

metadata:

  #annotations:

    #meta.helm.sh/release-name: kube-prometheus-stack-1629700182

    #meta.helm.sh/release-namespace: default

  annotations:

    service.beta.kubernetes.io/oci-load-balancer-backend-protocol: HTTP

    service.beta.kubernetes.io/oci-load-balancer-shape: 100Mbps

  creationTimestamp: "2021-08-23T06:30:20Z"

  labels:

    app.kubernetes.io/instance: kube-prometheus-stack-1629700182

    app.kubernetes.io/managed-by: Helm

    app.kubernetes.io/name: grafana

    app.kubernetes.io/version: 8.0.5

    helm.sh/chart: grafana-6.14.2

  name: kube-prometheus-stack-1629700182-grafana

  namespace: default

  resourceVersion: "759130"

  uid: 0f7ccf76-15df-40ac-a0d6-ca1139e12895

spec:

  clusterIP: 10.96.141.132

  clusterIPs:

  - 10.96.141.132

  ports:

  - name: service

    port: 80

    protocol: TCP

    targetPort: 3000

  selector:

    app.kubernetes.io/instance: kube-prometheus-stack-1629700182

    app.kubernetes.io/name: grafana

  sessionAffinity: None

  #type: ClusterIP

  type: LoadBalancer

status:

  loadBalancer: {}

 

 

 

 

3. Grafana 초기 접속 패스워드 가져오기

kubectl get services | grep grafana

kubectl get secret kube-prometheus-stack-1629700182-grafana -o jsonpath="{.data.admin-password}"|base64 --decode;echo

 

- 패스워드 나온것을 복사해서 로그인하시고 추후 비번은 변경하시면 됩니다.

 위에서 admin/admin 을 정의했으니 그대로 입력해주세요.

ID : admin

PW : admin

46f8f88b4c4876c608ed3c2524bfa2a5_1632356990_5149.png
 

 

4. Grafana 에서 Kubernetes 대시보드 Import 하기

직접구성하셔도 되는데, 이왕이면 잘만든 것을 사용하는 것이 시간 및 능률이 좋습니다.

추천해드리겠습니다. 

아래링크에서 검색한뒤 번호를 import 하시면 됩니다.

 

https://grafana.com/grafana/dashboards?search=kubernetes

 

- 대시보드 Import 시켜주세요. 

  대시보드는 위 링크에서 선택한 넘버를 입력해주면 되는데, 저는 1045를 입력해봤습니다.

46f8f88b4c4876c608ed3c2524bfa2a5_1632357061_7069.png

 

 

5. Kubernetes 용으로 다운로드 받은 Grafana 대시보드 화면

- 아래 대시보드는 13770 번호를 import 했을경우 모니터링 가능한 항목과 대시보드 화면 입니다

- import 13770

46f8f88b4c4876c608ed3c2524bfa2a5_1632357095_1856.png
 

꽤 그럴사 하조? 

이걸 시작으로 node, pod를 구성하면 자동으로 변화된 내용을 감지하여 모니터링 항목에 추가 시킬 수 있습니다.

 

 

 

 

댓글목록

등록된 댓글이 없습니다.

TECH 목록
번호 제목 작성자 작성일 조회수
44 Middleware 미들웨어 아이디로 검색 전체게시물 10-05 2101
(Kubernetes-4) docker 설치 & 삭제하기

카테고리 : Middleware

2,101 0
작성자 : 미들웨어 21/10/05
열람중 Middleware 미들웨어 아이디로 검색 전체게시물 09-23 2640
열람중
(Kubernetes-3) prometheus & Grafana 활용하여 모니터링 구성하기

카테고리 : Middleware

2,640 0
작성자 : 미들웨어 21/09/23
42 Middleware 미들웨어 아이디로 검색 전체게시물 09-06 3352
(Kubernetes-2) 오라클 클라우드로(무료 VM) 쿠버네티스 (OKE) 생성 및 Nginx 기동

카테고리 : Middleware

3,352 0
작성자 : 미들웨어 21/09/06
41 Middleware 미들웨어 아이디로 검색 전체게시물 08-26 2882
(Kubernetes-1) Kubernetes 아키텍처 흐름도 와 개념 정리

카테고리 : Middleware

2,882 0
작성자 : 미들웨어 21/08/26
40 Middleware 미들웨어 아이디로 검색 전체게시물 08-11 3660
(weblogic 활용) 리눅스에 VNC 설치 하여 UI모드로 Weblogic 콘솔모드 접속

카테고리 : Middleware

3,660 0
작성자 : 미들웨어 21/08/11
39 Middleware 미들웨어 아이디로 검색 전체게시물 07-27 6478
(오픈소스 활용-5) SpringBoot 의 장단점 및 소개

카테고리 : Middleware

6,478 0
작성자 : 미들웨어 21/07/27
38 Middleware 미들웨어 아이디로 검색 전체게시물 07-13 2985
(weblogic 활용) weblogic 14 사일런트 모드(-slient)로 설치 해보자

카테고리 : Middleware

2,985 0
작성자 : 미들웨어 21/07/13
37 Middleware 미들웨어 아이디로 검색 전체게시물 06-23 2717
(오픈소스 활용-4) Git가입 -> repogitory 생성 -> Git & Jenkins연동 -> Jenkins & Tomcat build 배포 -> Jenkins pipline 구성 전체 흐름

카테고리 : Middleware

2,717 0
작성자 : 미들웨어 21/06/23
36 Middleware 미들웨어 아이디로 검색 전체게시물 06-07 3602
(오픈소스 활용-3) scouter 모니터링 알람 설정 및 튜닝된 jar로 그룹별 slack 알람 보내는 방법

카테고리 : Middleware

3,602 0
작성자 : 미들웨어 21/06/07
35 Middleware 미들웨어 아이디로 검색 전체게시물 05-22 6420
(오픈소스 활용-2) scouter-paper 을 활용하여 모바일, 태블릿에서 모니터링 가능

카테고리 : Middleware

6,420 0
작성자 : 미들웨어 21/05/22
Total 114건
게시물 검색

주식회사 클럭스| 대표 : 이찬호| 사업자등록번호 : 107-87-27655
주소 : 서울특별시 영등포구 국회대로 800, 여의도파라곤
E-mail : sales@chlux.co.kr
Copyright © 클럭스 www.chlux.co.kr All rights reserved.
상단으로Top