InfluxDB, ElasticSearch 및 Grafana 용 docker-compose.yml
docker-compose up
하는 것만으로 간단합니다. 또 정의한 서비스명이 각각의 /etc/hosts
(으)로 설정해 줍니다. 환경 변수에 설정하는 호스트명은 이 서비스명을 사용할 수 있으므로 IP 주소를 inspect 해 하드 코드 할 필요가 없습니다.프로젝트 만들기
적절한 디렉토리를 만들고 docker-compose.yml을 작성하기 만하면됩니다. 이 디렉토리에는 InfluxDB의 볼륨이 연결됩니다.
$ cd ~/influx_apps
$ tree
.
└── docker-compose.yml
docker-compose.yml
아래의 docker-compose.yml을 작성하여 influxdb, elasticsearch 및 grafana 서비스를 정의합니다. 모두 Tutum이 Docker 이미지를 제공합니다.
Grafana 포트만 다른 서비스와 충돌하기 때문에 Docker 호스트는 80에서 변경하여 8080에 매핑합니다.
~/influx_apps/docker-compose.yml
influxdb:
restart: always
image: tutum/influxdb
volumes:
- ./influxdb:/data
environment:
- PRE_CREATE_DB=influxdb
ports:
- "8083:8083"
- "8086:8086"
elastic:
restart: always
image: tutum/elasticsearch
volumes:
- ./elastic:/usr/share/elasticsearch/data
environment:
- ELASTICSEARCH_USER=admin
- ELASTICSEARCH_PASS=mypass
ports:
- "9200:9200"
grafana:
restart: always
image: tutum/grafana
ports:
- "8080:80"
environment:
- INFLUXDB_PROTO=http
- INFLUXDB_HOST=influxdb
- INFLUXDB_PORT=8086
- INFLUXDB_NAME=dht11
- INFLUXDB_USER=root
- INFLUXDB_PASS=root
- ELASTICSEARCH_PROTO=http
- ELASTICSEARCH_HOST=elastic
- ELASTICSEARCH_PORT=9200
- ELASTICSEARCH_USER=admin
- ELASTICSEARCH_PASS=mypass
전경에서 시작
컨테이너를 함께 시작합니다. 기동 순서를 확인하고 싶기 때문에 포그라운드에서 테스트 기동합니다.
$ cd ~/influx_apps
$ docker-compose up
InfluxDB 테스트
컨테이너 bash를 실행하여 InfluxDB 버전을 확인합니다.
0.8.8
를 사용하고 있습니다.$ docker exec -it influxapps_influxdb_1 bash
$ influxdb -v
InfluxDB v0.8.8 (git: afde71e) (leveldb: 1.15)
Reading and Writing Data 에 쓰여진 것처럼 테스트 데이터를 투입해 봅니다. Docker 호스트에서 curl로 확인합니다.
$ curl -X POST -d '[{"name":"foo","columns":["val"],"points":[[23]]}]' 'http://localhost:8086/db/influxdb/series?u=root&p=root'
레코드를 쿼리해 봅니다. POST하지 않은 데이터의 time과 sequence_number는 자동으로 들어갑니다.
$ curl -G 'http://localhost:8086/db/influxdb/series?u=root&p=root&pretty=true' --data-urlencode "q=select * from foo"
[
{
"name": "foo",
"columns": [
"time",
"sequence_number",
"val"
],
"points": [
[
1433443454781,
10001,
23
]
]
}
]
원격으로 브라우저에서 Docker 호스트에 액세스하여 InfuxDB 관리 화면을 표시합니다.
ElasticSearch 테스트
Docker 호스트에서 ElasticSerch 시작 확인을 겸하여 버전을 표시합니다.
1.3.9
를 사용하고 있습니다.$ curl admin:mypass@localhost:9200
{
"status" : 200,
"name" : "Abner Jenkins",
"version" : {
"number" : "1.3.9",
"build_hash" : "0915c7306e6264ba21a6cb7609b93545ccc32ef1",
"build_timestamp" : "2015-02-19T12:34:48Z",
"build_snapshot" : false,
"lucene_version" : "4.9"
},
"tagline" : "You
Grafana 테스트
Grafana는 2015/04/20에 2.0이 출시되고 있습니다만, 이번 이미지는
1.9.1
를 사용하고 있습니다.$ docker exec -it influxapps_grafana_1 bash
$ echo $GRAFANA_VERSION
1.9.1
Grafana의 관리 화면에 액세스하기 위해 무작위로 생성 된 암호를 표준 출력 로그에서 확인하십시오.
...
grafana_1 | => Creating basic auth for "admin" user with random password
grafana_1 | Adding password for user admin
grafana_1 | => Done!
grafana_1 | ========================================================================
grafana_1 | You can now connect to Grafana with the following credential:
grafana_1 |
grafana_1 | admin:5jG0HLZ09sZQ
grafana_1 |
grafana_1 | ========================================================================
grafana_1 | => Configuring InfluxDB
grafana_1 | => InfluxDB has been configured as follows:
grafana_1 | InfluxDB ADDRESS: influxdb
grafana_1 | InfluxDB PORT: 8086
grafana_1 | InfluxDB DB NAME: dht11
grafana_1 | InfluxDB USERNAME: root
grafana_1 | InfluxDB PASSWORD: root
grafana_1 | ** Please check your environment variables if you find something is misconfigured. **
grafana_1 | => Done!
grafana_1 | => Found Elasticsearch settings.
grafana_1 | => Set Elasticsearch url to "http://admin:mypass@elastic:9200".
grafana_1 | => Done!
grafana_1 | => Starting and running Nginx...
원격으로 Grafana 대시보드를 브라우저에서 엽니다. 일반적으로 80 포트이지만 다른 서비스와 충돌하므로 Docker 호스트는 8080으로 매핑됩니다.
백그라운드에서 시작
제대로 작동하는 것처럼 컨테이너를 중지하고 볼륨도 삭제한 다음 백그라운드에서 시작합니다.
$ docker-compose stop
Stopping influxapps_grafana_1...
Stopping influxapps_elastic_1...
Stopping influxapps_influxdb_1...
컨테이너를 삭제합니다.
$ docker-compose rm
Going to remove influxapps_grafana_1, influxapps_elastic_1, influxapps_influxdb_1
Are you sure? [yN] y
Removing influxapps_influxdb_1...
Removing influxapps_elastic_1...
$ sudo rm -fr influxdb/ elastic/
백그라운드에서 시작합니다.
$ docker-compose up -d
Creating influxapps_influxdb_1...
Creating influxapps_elastic_1...
Creating influxapps_grafana_1...
브라우저에서 관리 화면의 BASIC 인증에 필요한 Grafana 암호는
docker-compose logs
명령으로 확인합니다.$ docker-compose logs grafana
Reference
이 문제에 관하여(InfluxDB, ElasticSearch 및 Grafana 용 docker-compose.yml), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/masato/items/acaa5f56351fdfed7c20텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)