# Grafana 배포하기

## 1. Grafana 배포하기

Prometheus 내의 작업 영역에서 수집된 메트릭은 Grafana를 사용하여 시각화 할 수 있습니다.

이 예에서는 주로 Grafana 기본값을 사용하지만 몇 가지 매개 변수를 재정의합니다. Prometheus와 마찬가지로 스토리지 클래스를 gp2, admin 암호로 설정하고 Prometheus를 가리키도록 데이터 소스를 구성하고 서비스를 위한 외부 로드 밸런서를 만듭니다.

우선 `grafana.yaml` file을 생성합니다.

```
mkdir ${HOME}/environment/grafana

cat << EoF > ${HOME}/environment/grafana/grafana.yaml
datasources:
  datasources.yaml:
    apiVersion: 1
    datasources:
    - name: Prometheus
      type: prometheus
      url: http://prometheus-server.prometheus.svc.cluster.local
      access: proxy
      isDefault: true
EoF

```

```
kubectl create namespace grafana

helm install grafana grafana/grafana \
    --namespace grafana \
    --set persistence.storageClassName="gp2" \
    --set persistence.enabled=true \
    --set adminPassword='EKS!sAWSome' \
    --values ${HOME}/environment/grafana/grafana.yaml \
    --set service.type=LoadBalancer

```

Grafana가 정상적으로 배포되었는지 확인합니다. ELB가 완전히 active 되기까지 약 3분이 소요될 수 있습니다.

![](https://1998608250-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhByD5wv8eUbA5ZbUY5%2F-MhOO0BZMPwYoNg7r4m9%2F-MhOSQieQyAlvxf291wW%2Fimage.png?alt=media\&token=57ea460b-bbab-41d4-bb35-e8f8e45f1844)

이 명령을 사용하여 Grafana ELB URL을 가져올 수 있습니다. 값을 복사하여 브라우저에 붙여넣어 Grafana 웹 UI에 액세스합니다.

```
export ELB=$(kubectl get svc -n grafana grafana -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')

echo "http://$ELB"

```

접속시, username : admin / password : EKS!sAWSome 사용합니다. 또는 아래 명령어로 password를 확인할 수 있습니다.

```
kubectl get secret --namespace grafana grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo

```

![](https://1998608250-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhByD5wv8eUbA5ZbUY5%2F-MhOO0BZMPwYoNg7r4m9%2F-MhOPYK-XPgtR455T93K%2Fimage.png?alt=media\&token=aa9bff19-7508-425b-9703-5b0b349404ba)

## 2. 대쉬보드 구성하기

'Install Grafana' 및 'Create your first data source' 가 이미 완료되었습니다. 이 실을 위해 커뮤니티에서 만든 대시보드를 가져올 것입니다.

Cluster 모니터링 대쉬보드를 아래 정보로 import 합니다.

* ' **+** '을 클릭하고 '**Import**'를 선택합니다.
* Grafana.com Dashboard 밑에 **3119** 를 입력합니다.
* **‘Load’** 를 클릭합니다.
* prometheus data sources 를 드룹다운하여 **‘Prometheus’** 를 선택합니다.
* **‘Import’** 클릭합니다.

![](https://1998608250-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhByD5wv8eUbA5ZbUY5%2F-MhOO0BZMPwYoNg7r4m9%2F-MhOPvAQXDJ8wifNEZdK%2Fimage.png?alt=media\&token=a4a94cab-99a6-4263-bb08-1ade2e55f2f7)

Cluster 모니터링 대쉬보드를 생성한 방법과 동일하게 Pods 모니터링 대쉬보드도 아래 정보로 import 합니다.

* ' **+** '을 클릭하고 '**Import**'를 선택합니다.
* Grafana.com Dashboard 밑에 **6417** 를 입력합니다.
* **‘Load’** 를 클릭합니다.
* Dashboard name에 '**Kubernetes Pods Monitoring'** 을 입력합니다.
* Unique identifier (uid)를 설정을 위해 **'change'** 를 클릭합니다.
* prometheus data sources 를 드룹다운하여 **‘Prometheus’** 를 선택합니다.
* **‘Import’** 클릭합니다.

아래와 같이 대쉬보드가 생성됩니다.

![](https://1998608250-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhByD5wv8eUbA5ZbUY5%2F-MhOO0BZMPwYoNg7r4m9%2F-MhOQjpYI5Ve7yBBQMsu%2Fimage.png?alt=media\&token=17c692b5-712c-4073-98e8-6d67893cd051)
