[Openshift] 웹 UI 대시보드 Grafana 설치

리눅스/OpenShift|2023. 5. 26. 09:20
반응형

본 매뉴얼은 '[Openshift] 미터링 도구 Prometheus + AlertManager 알람' 에 이어서 작성되었습니다.

 

1. Grafana 설치

Grafana 는 수집한 metrics 값을 보기좋게 시각화 해주는 웹 GUI 환경의 대시보드 입니다.

아래 파일을 생성하고 적용해 줍니다.

 

# vi grafana.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: grafana
  namespace: monitoring
spec:
  replicas: 1
  selector:
    matchLabels:
      app: grafana
  template:
    metadata:
      name: grafana
      labels:
        app: grafana
    spec:
      securityContext:
        seccompProfile:
          type: RuntimeDefault
      containers:
      - name: grafana
        image: grafana/grafana:latest
        ports:
        - name: grafana
          containerPort: 3000
        env:
        - name: GF_SERVER_HTTP_PORT
          value: "3000"
        - name: GF_AUTH_BASIC_ENABLED
          value: "false"
        - name: GF_AUTH_ANONYMOUS_ENABLED
          value: "true"
        - name: GF_AUTH_ANONYMOUS_ORG_ROLE
          value: Admin
        - name: GF_SERVER_ROOT_URL
          value: /
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop: ["ALL"]
          runAsNonRoot: true
---
apiVersion: v1
kind: Service
metadata:
  name: grafana
  namespace: monitoring
  annotations:
      prometheus.io/scrape: 'true'
      prometheus.io/port:   '3000'
spec:
  selector:
    app: grafana
  type: NodePort
  ports:
    - port: 3000
      targetPort: 3000
      nodePort: 30004

 

# oc apply -f grafana.yaml

deployment.apps/grafana created
service/grafana created

 

Grafana 의 호스트명을 확인하고 30004 포트를 이용하여 웹 GUI 환경으로 접속합니다.

# oc get pod -n monitoring -o wide
NAME                                     READY   STATUS    RESTARTS   AGE     IP             NODE                    NOMINATED NODE   READINESS GATES
alertmanager-689f68c448-88v92            1/1     Running   0          3d3h    10.128.2.254   worker01.az1.sysdocu.kr   <none>           <none>
grafana-577cc7fbdd-rdtcc                 1/1     Running   0          3m55s   10.128.3.41    worker01.az1.sysdocu.kr   <none>           <none>
node-exporter-57djp                      1/1     Running   0          8d      10.131.0.184   worker02.az1.sysdocu.kr   <none>           <none>
node-exporter-w5s8d                      1/1     Running   0          8d      10.128.2.239   worker01.az1.sysdocu.kr   <none>           <none>
prometheus-deployment-859bc6d5c7-mjhvk   1/1     Running   0          25m     10.128.3.37    worker01.az1.sysdocu.kr   <none>           <none>

 

웹브라우저 접속 URL :http://worker01.az1.sysdocu.kr:30004

 

2. Prometheus 연동 (데이터 추가)

Prometheus 에 수집된 데이터를 가져와 그래프로 그려보도록 합니다.

 

좌측 상단 토글 메뉴 > Administration > Data sources > [Add data source] > Prometheus 선택

 

HTTP 의 URL 항목에 입력해야 할 정보는 아래 명령으로 확인이 가능합니다.

# oc get service -n monitoring
NAME                 TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
alertmanager         NodePort   172.30.25.192    <none>        9093:30005/TCP   7d19h
grafana              NodePort   172.30.24.162    <none>        3000:30004/TCP   18m
node-exporter        NodePort   172.30.65.240    <none>        9100:31672/TCP   8d
prometheus-service   NodePort   172.30.191.143   <none>        8080:30003/TCP   59m

 

URL 항목에 http://172.30.191.143:8080 이라고 입력하고 페이지 맨 아래 'Save & test' 버튼을 눌러 저장합니다.

Grafana 에서 Prometheus 데이터를 가져오도록 설정하였습니다.

 

3. 템플릿 적용

연동된 Prometheus 데이터를 PromQL 쿼리로 디자인해야 하는데, 손이 많이 가므로 Grafana 사이트에서 공유하고 있는 템플릿을 가져와 적용 시켜봅니다.

 

(Grafana 홈페이지에서)

대시보드 페이지 접속 https://grafana.com/grafana/dashboards/ > 페이지 가운데 'Search dashboards' 에 'kubernetes' 입력 및 검색 > 원하는 템플릿 클릭 > 'Download JSON' 선택하고 다운로드 받은 JSON 파일의 내용을 '전체 복사' 해둡니다.

 

(Grafana 설치 페이지에서)

좌측 상단 토글 메뉴 > Dashboards 선택 > 좌측 풀다운 메뉴 [New] 를 클릭으로 펼쳐서 'Import' 선택 > 중간에 'Import via panel json' 입력란에 붙여넣기 (Ctrl + V) 및 [Load] 클릭 > 맨 아래 'Select a Prometheus data source' 에서 Prometheus (default) 선택 후 [Import] 클릭

 

초기화면으로 자동 이동되면서 예쁜 템플릿으로 구성된 대시보드를 볼 수 있습니다.

반응형

댓글()