Develop/DevOps
[Grafana] Helm chart grafana 생성 동시에 초기 대시보드 구축방법
재융
2024. 7. 15. 19:48
반응형
*아래 내용은 전부 minikube 환경에서 실행되었습니다.
먼저 grafana helm chart를 다운로드 받는다
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
helm pull grafana/grafana # 최신버전 다운로드
tar -xvzf grafana-8.3.4.tgz
Grafana 서비스 생성과 동시에 대시보드를 구축하는 방법은 3가지 방식이 존재함
- helm chart 밑 dashboards 폴더아래에 grafana dashboard json파일을 넣는 방식
- configmaps를 이용한 방식
- 파일서버 또는 github repository에 dashboard json을 넣어두고 이를 불러읽는 방식
grafana dashboard json파일 얻는 방법
json으로 export하고싶은 dashboard를 접속하여 오른쪽 상단에 "Share"를 클릭하고 아래그림처럼 Export 클릭 및 토글 on을 시키고 "Save to file"하면 된다. (토클을 활성화 해줘야 Datasource가 인식이 되는것으로 보여진다)
local-path를 이용한 생성 방식
다운로드한 grafana helm chart 밑에 dashboards라는 폴더가 있을텐데 여기에 dashboard json파일을 넣어두는 방식이다. 파일을 넣어두고, values.json에 아래와같이 반영해준다.
...
dashboardProviders:
dashboardproviders.yaml:
apiVersion: 1
providers:
- name: 'default'
orgId: 1
folder: ''
type: file
disableDeletion: false
editable: true
options:
path: /var/lib/grafana/dashboards/default
dashboards:
default: #providers name
custom-dashboard:
file: dashboard/test.json
...
ConfigMaps을 활용한 생성 방식
dashboard configmaps.yaml을 다음과같이 생성해준다
apiVersion: v1
kind: ConfigMap
metadata:
name: grafana-dashboard
namespace: monitoring
data:
test.json: |
... (grafana dashboard json 정보 복붙)
그다음 values.yaml파일에 아래와같이 반영해준다
...
dashboardProviders:
dashboardproviders.yaml:
apiVersion: 1
providers:
- name: 'default'
orgId: 1
folder: ''
type: file
disableDeletion: false
editable: true
options:
path: /var/lib/grafana/dashboards/default
dashboardsConfigMaps:
default: "grafana-dashboard"
# providers : configmaps-name 형식
...
파일서버 또는 github repository를 이용한 생성 방식
다운로드받은 grafana dashboard json파일을 접근가능한 github repository에 업로드한 이후에 다음과 같이 작업한다. 추가로 만약에 여러개의 대시보드를 import가 필요할경우 아래와같이 작업한다.
...
dashboardProviders:
dashboardproviders.yaml:
apiVersion: 1
providers:
- name: 'test1'
orgId: 1
folder: ''
type: file
disableDeletion: false
editable: true
options:
path: /var/lib/grafana/dashboards/test1
- name: 'test2'
orgId: 1
folder: ''
type: file
disableDeletion: false
editable: true
options:
path: /var/lib/grafana/dashboards/test2
dashboards:
test1:
local-dashboard:
url: https://raw.githubusercontent.com/[GRAFANA_DASHBOARD_GITHUB_URL].json
token: ''
test2:
local-dashboard:
url: https://raw.githubusercontent.com/[GRAFANA_DASHBOARD_GITHUB_URL].json
token: ''
...
반응형