Grafana 컨테이너를 시작할 때 Datasource 및 Dashboard를 가져오는 방법
8436 단어 PrometheusGrafanatech
개요
컨테이너 사용 시
컨테이너가 시작된 후에 Datasource와 Dashboard를 만드는 것이 아닙니다
컨테이너가 시작될 때 Datasource 및 Dashboard 를 가져오는 방법에 대해 설명합니다.
작업 환경
준비물
dashboard.json
dashboard.yml
datasource.yml
Dockerfile
1. 각 Dashboard는 json의 dashboard를 출력한다.json
[이하 구체적인 예]
{
"annotations": {
"list": [
{
"$$hashKey": "object:1058",
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
〜〜〜〜〜 省略 〜〜〜〜〜
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "browser",
"title": "Linux Server",
"uid": "sxXoxCW7z",
"version": 1
}
생성 방법
①. Dashboard 화면 오른쪽 상단의 톱니바퀴 표시를 클릭하십시오
②. 왼쪽 메뉴의 JSON 모델 클릭
③. JSON Model의 json을 파일로 복사
2. 대시보드용 대시보드를 제공한다.yml
[이하 구체적인 예]
apiVersion: 1
providers:
# <string> an unique provider name. Required
- name: 'Linux Server'
# <int> Org id. Default to 1
orgId: 1
# <string> name of the dashboard folder.
folder: 'Server'
# <string> folder UID. will be automatically generated if not specified
folderUid: ''
# <string> provider type. Default to 'file'
type: file
# <bool> disable dashboard deletion
disableDeletion: false
# <int> how often Grafana will scan for changed dashboards
updateIntervalSeconds: 10
# <bool> allow updating provisioned dashboards from the UI
allowUiUpdates: false
options:
# <string, required> path to dashboard files on disk. Required when using the 'file' type
path: /var/lib/grafana/dashboards/Linux_Server.json
# <bool> use folder names from filesystem to create folders in Grafana
foldersFromFilesStructure: false
- name: 'Windows Server'
orgId: 1
folder: 'Server'
type: file
disableDeletion: false
updateIntervalSeconds: 10
allowUiUpdates: false
options:
path: /var/lib/grafana/dashboards/Windows_Server.json
foldersFromFilesStructure: false
- name: 'Web Service'
orgId: 1
folder: 'Service'
type: file
disableDeletion: false
updateIntervalSeconds: 10
allowUiUpdates: false
options:
path: /var/lib/grafana/dashboards/Web_Service.json
foldersFromFilesStructure: false
생성 방법
①. Grafana 공식 용기 이미지의 / etc /grafana /provisioning /dashboards.복사
②. 다음 providers 설정을 Dashboard 당 추가
- name: 'Web Service' # Dashboardの「名前」
orgId: 1 # デフォルトのままで
folder: 'Service' # Dashboardが格納される「フォルダ名」
type: file # デフォルトのままで
disableDeletion: false # Dashboardの「削除可否」
updateIntervalSeconds: 10 # Dashboardの「更新頻度」
allowUiUpdates: false # Dashboardの「UI変更可否」
options:
path: /var/lib/grafana/dashboards/Web_Service.json # dashboardの「jsonファイルパス」
foldersFromFilesStructure: false # デフォルトのままで
3. Datasource 공급용 데이터 소스.yml
[이하 구체적인 예]
# config file version
apiVersion: 1
# # list of datasources that should be deleted from the database
# deleteDatasources:
# - name: Graphite
# orgId: 1
# list of datasources to insert/update depending
# what's available in the database
datasources:
# <string, required> name of the datasource. Required
- name: Prometheus
# <string, required> datasource type. Required
type: prometheus
# <string, required> access mode. proxy or direct (Server or Browser in the UI). Required
access: proxy
# <int> org id. will default to orgId 1 if not specified
orgId: 1
# <string> custom UID which can be used to reference this datasource in other parts of the configuration, if not specified will be generated automatically
uid: prometheus
# <string> url
url: http://localhost:9090
# <string> Deprecated, use secureJsonData.password
password:
# <string> database user, if used
user:
# <string> database name, if used
database:
# <bool> enable/disable basic auth
basicAuth:
# <string> basic auth username
basicAuthUser:
# <string> Deprecated, use secureJsonData.basicAuthPassword
basicAuthPassword:
# <bool> enable/disable with credentials headers
withCredentials:
# <bool> mark as default datasource. Max one per org
isDefault: true
# # <map> fields that will be converted to json and stored in jsonData
# jsonData:
# graphiteVersion: '1.1'
# tlsAuth: true
# tlsAuthWithCACert: true
# # <string> json object of data that will be encrypted.
# secureJsonData:
# tlsCACert: '...'
# tlsClientCert: '...'
# tlsClientKey: '...'
# # <string> database password, if used
# password:
# # <string> basic auth password
# basicAuthPassword:
version: 1
# <bool> allow users to edit datasources from the UI.
editable: false
- name: CloudWatch
type: cloudwatch
jsonData:
authType: default
defaultRegion: ap-northeast-1
생성 방법
①. Grafana 공식 용기 이미지의 / etc /grafana /provisioning.복사
②. Datasource당 다음 데이터 소스 설정 추가
### Prometheusの場合 ###
- name: Prometheus # Datasourceの「名前」
type: prometheus # ※[p]は小文字
access: proxy # デフォルトのままで
uid: prometheus # デフォルトのままで
url: http://localhost:9090 # Datasourceの「URL」
isDefault: true # 複数のDatasource内で「デフォルトに設定するか否か」
version: 1 # デフォルトのままで
editable: false # Datasourceの「設定変更可否」
### CloudWatchの場合(動作環境がEC2内の場合) ###
- name: CloudWatch # Datasourceの「名前」
type: cloudwatch # ※[c]は小文字
jsonData:
authType: default # デフォルトのままで
defaultRegion: ap-northeast-1 # CloudWatch の「リージョン」
4.Grafana 컨테이너용 Docker file
[이하 구체적인 예]
FROM grafana/grafana:8.0.6
COPY ./dashboards/ /var/lib/grafana/dashboards/
COPY ./dashboard.yml /etc/grafana/provisioning/dashboards/dashboard.yml
COPY ./datasource.yml /etc/grafana/provisioning/datasources/datasource.yml
설명
다음 디렉토리 구조를 사용하여 Docker file을 만듭니다.
.
├── Dockerfile
├── dashboard.yml
├── dashboards
│ ├── Linux_Server.json
│ ├── Web_Service.json
│ └── Windows_Server.json
└── datasource.yml
동작 검사
Docker file과 같은 디렉토리에서 다음 작업을 수행합니다.
docker image build -t grafana:8.0.6 .
docker run -d -p 8080:3000 grafana:8.0.6
echo "[Grafana] → http://localhost:8080/"
참고 자료
Reference
이 문제에 관하여(Grafana 컨테이너를 시작할 때 Datasource 및 Dashboard를 가져오는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/mttk030/articles/11cf9320a84620텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)