대시보드도 파일로 관리한다. UI 에서 만든 뒤 JSON 을 뽑아 저장소에 넣는 방식이 현실적이다.
/etc/grafana/provisioning/dashboards/main.yaml
apiVersion: 1
providers:
- name: 'default'
orgId: 1
folder: 'Infra'
type: file
disableDeletion: false
updateIntervalSeconds: 30
allowUiUpdates: false
options:
path: /var/lib/grafana/dashboards
foldersFromFilesStructure: true
allowUiUpdates: false 면 UI 에서 고친 내용이 다음 동기화에 덮인다. 파일을 정본으로 두려면 이 값이 맞다.
sudo mkdir -p /var/lib/grafana/dashboards
sudo cp node-exporter.json /var/lib/grafana/dashboards/
sudo chown -R grafana:grafana /var/lib/grafana/dashboards
sudo systemctl restart grafana-server
grafana.com 의 대시보드는 ID 로 가져온다. 자주 쓰는 것들이다.
| ID | 내용 |
|---|---|
| 1860 | Node Exporter Full |
| 7362 | MySQL / MariaDB Overview |
| 9628 | PostgreSQL Database |
| 315 | Kubernetes cluster monitoring |
UI 에서 Dashboards → New → Import 에 ID 를 넣고 데이터 소스를 고른다.
같은 대시보드를 여러 대상에 쓰려면 변수를 둔다.
이름: instance
타입: Query
쿼리: label_values(node_uname_info, instance)
패널 쿼리에서 {instance="$instance"} 로 참조한다.
Dashboard settings → JSON Model 에서 JSON 을 복사한다. 다른 환경으로 옮길 때는 데이터 소스를 변수(${DS_PROMETHEUS})로 바꿔야 이식된다 — Export → Export for sharing externally 를 쓴다.