# 2. grafana provisioning

grafana는 provisioning이라는 기능을 가지고 있다.

기존에는 datasource와 dashboard를 수동으로 등록해줬다.

이것들을 docker시작시에 자동으로 넣어주는것이다.

## datasource

source-code : <https://github.com/teamsmiley/devops-public/tree/main/monitoring/2.grafana-provisioning>

![Alt text](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-c999cf5ebfa920845e61af4f48126f2b36c5527d%2Fimage.png?alt=media)

grafana폴더를 만든후 추가로 몇개의 파일을 만들어준다.

datasources/prometheus.yaml 파일을 확인해보자.

```yaml
apiVersion: 1
datasources:
  - name: Prometheus
    type: prometheus
    access: proxy
    url: http://prometheus:9090
    isDefault: true
    version: 1
    editable: true
```

이제 이 폴더를 마운트해주자.

```yaml
grafana:
  image: grafana/grafana
  container_name: grafana
  # network_mode: host
  restart: always
  ports:
    - 3000:3000
  environment:
    - GF_SECURITY_ADMIN_USER=admin
    - GF_SECURITY_ADMIN_PASSWORD=grafana
  volumes:
    - ./grafana/provisioning/dashboards:/etc/grafana/provisioning/dashboards
    - ./grafana/provisioning/datasources:/etc/grafana/provisioning/datasources
    - ./grafana/dashboards:/etc/grafana/dashboards
```

프로비저닝 파일은 grafana/provisioning 폴더에 / dashboard json파일은 dashboards에 넣어준다.

실행하자.

```sh
docker-compose up -d
```

확인해보자. <http://localhost:3000/dashboards>

![Alt text](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-9e48a9a4df144603be14829432b56ff5d04d984f%2Fimage-1.png?alt=media)

dashboard가 2개가 자동으로 등록된것을 알수 있다.

datasource도 확인해보자. ![Alt text](https://3379277180-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaoWGMVdC3ztoOAzHPq%2Fuploads%2Fgit-blob-cbe832a96104e04bb82d4c65505eab956f2c0585%2Fimage-2.png?alt=media)

잘 들어와 있다.
