From 5dc2b886a8a09b4f7a648ccc03f959e7f48c8b0f Mon Sep 17 00:00:00 2001 From: melchiormoulin <43347435+melchiormoulin@users.noreply.github.com> Date: Fri, 14 Feb 2020 11:43:14 +0100 Subject: [PATCH] Adding new way to docker big graphite ! (#538) * Adding new way to docker big graphite ! * Expose more ports in the docker launch script + add missing config file. Co-authored-by: crto-es-vyg <57795163+crto-es-vyg@users.noreply.github.com> Co-authored-by: Harold Dost --- docker-ng/aggregator-cache/Dockerfile | 4 ++++ docker-ng/aggregator-cache/carbon.conf | 12 ++++++++++++ docker-ng/aggregator-cache/storage-schemas.conf | 0 docker-ng/bg-image/Dockerfile | 5 +++++ docker-ng/build.sh | 4 ++++ docker-ng/graphite-web/Dockerfile | 6 ++++++ docker-ng/graphite-web/local_settings.py | 15 +++++++++++++++ docker-ng/graphite-web/start-graphite-web.sh | 5 +++++ docker-ng/launch.sh | 10 ++++++++++ docker-ng/stop.sh | 1 + 10 files changed, 62 insertions(+) create mode 100644 docker-ng/aggregator-cache/Dockerfile create mode 100644 docker-ng/aggregator-cache/carbon.conf create mode 100644 docker-ng/aggregator-cache/storage-schemas.conf create mode 100644 docker-ng/bg-image/Dockerfile create mode 100755 docker-ng/build.sh create mode 100644 docker-ng/graphite-web/Dockerfile create mode 100644 docker-ng/graphite-web/local_settings.py create mode 100755 docker-ng/graphite-web/start-graphite-web.sh create mode 100755 docker-ng/launch.sh create mode 100755 docker-ng/stop.sh diff --git a/docker-ng/aggregator-cache/Dockerfile b/docker-ng/aggregator-cache/Dockerfile new file mode 100644 index 0000000000..c7196bcfea --- /dev/null +++ b/docker-ng/aggregator-cache/Dockerfile @@ -0,0 +1,4 @@ +FROM bg-image +RUN pip install carbon +ENTRYPOINT ["bg-carbon-cache"] +CMD ["--debug","--nodaemon","--conf=/conf/carbon.conf","start"] diff --git a/docker-ng/aggregator-cache/carbon.conf b/docker-ng/aggregator-cache/carbon.conf new file mode 100644 index 0000000000..356e96b15b --- /dev/null +++ b/docker-ng/aggregator-cache/carbon.conf @@ -0,0 +1,12 @@ +[cache] +BG_DATA_DRIVER = cassandra +BG_METADATA_DRIVER = elasticsearch +DATABASE = biggraphite +BG_CASSANDRA_KEYSPACE = biggraphite +BG_CASSANDRA_CONTACT_POINTS = cassandra +BG_CASSANDRA_CONTACT_POINTS_METADATA = +BG_CACHE = memory +STORAGE_DIR = /tmp +BG_ELASTICSEARCH_HOSTS = elasticsearch +BG_ELASTICSEARCH_PORT = 9200 +#BG_ELASTICSEARCH_INDEX_SUFFIX = _%Y-w%W diff --git a/docker-ng/aggregator-cache/storage-schemas.conf b/docker-ng/aggregator-cache/storage-schemas.conf new file mode 100644 index 0000000000..e69de29bb2 diff --git a/docker-ng/bg-image/Dockerfile b/docker-ng/bg-image/Dockerfile new file mode 100644 index 0000000000..6a6bb3191a --- /dev/null +++ b/docker-ng/bg-image/Dockerfile @@ -0,0 +1,5 @@ +FROM python:3.6 +COPY . /bg/ +WORKDIR /bg +ENV GRAPHITE_NO_PREFIX=true +RUN pip install -r requirements.txt && pip install -e . diff --git a/docker-ng/build.sh b/docker-ng/build.sh new file mode 100755 index 0000000000..28843438d6 --- /dev/null +++ b/docker-ng/build.sh @@ -0,0 +1,4 @@ +docker build ../ -t bg-image -f bg-image/Dockerfile +docker build aggregator-cache/ -t aggregator-cache -f aggregator-cache/Dockerfile +docker build graphite-web/ -t graphite-web -f graphite-web/Dockerfile +docker network create biggraphite-network diff --git a/docker-ng/graphite-web/Dockerfile b/docker-ng/graphite-web/Dockerfile new file mode 100644 index 0000000000..bf36071e3a --- /dev/null +++ b/docker-ng/graphite-web/Dockerfile @@ -0,0 +1,6 @@ +FROM bg-image +RUN pip install graphite-web +COPY local_settings.py /usr/local/lib/python3.6/site-packages/graphite/ +COPY start-graphite-web.sh /bg +RUN chmod +x /bg/start-graphite-web.sh +ENTRYPOINT /bg/start-graphite-web.sh diff --git a/docker-ng/graphite-web/local_settings.py b/docker-ng/graphite-web/local_settings.py new file mode 100644 index 0000000000..25dd6ddba3 --- /dev/null +++ b/docker-ng/graphite-web/local_settings.py @@ -0,0 +1,15 @@ +DEBUG = True +LOG_DIR = '/tmp' +STORAGE_DIR = '/tmp' +STORAGE_FINDERS = ['biggraphite.plugins.graphite.Finder'] +TAGDB = 'biggraphite.plugins.tags.BigGraphiteTagDB' +# Cassandra configuration +BG_CASSANDRA_KEYSPACE = 'biggraphite' +BG_CASSANDRA_CONTACT_POINTS = 'cassandra' +BG_DATA_DRIVER = 'cassandra' +BG_CACHE = 'memory' +WEBAPP_DIR = '/usr/local/webapp/' +## Elasticsearch configuration +BG_METADATA_DRIVER = 'elasticsearch' +BG_ELASTICSEARCH_HOSTS = 'elasticsearch' +BG_ELASTICSEARCH_PORT = '9200' diff --git a/docker-ng/graphite-web/start-graphite-web.sh b/docker-ng/graphite-web/start-graphite-web.sh new file mode 100755 index 0000000000..f4113ff34d --- /dev/null +++ b/docker-ng/graphite-web/start-graphite-web.sh @@ -0,0 +1,5 @@ +#!/bin/bash +export DJANGO_SETTINGS_MODULE=graphite.settings +django-admin migrate +django-admin migrate --run-syncdb +cd /usr/local/lib/python3.6/site-packages/graphite && run-graphite-devel-server.py /usr/local diff --git a/docker-ng/launch.sh b/docker-ng/launch.sh new file mode 100755 index 0000000000..988240139d --- /dev/null +++ b/docker-ng/launch.sh @@ -0,0 +1,10 @@ +set -x +set -e +docker run --network=biggraphite-network --rm -d --name cassandra cassandra:3.11.3 +sleep 20 +docker exec cassandra cqlsh -e "CREATE KEYSPACE IF NOT EXISTS biggraphite WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} AND durable_writes = false;" localhost --cqlversion="3.4.4" +docker run -p 9200:9200 --rm --name elasticsearch -d --network=biggraphite-network docker.elastic.co/elasticsearch/elasticsearch:6.3.2 +sleep 20 +docker run -d --rm --name kibana -p 5601:5601 --network=biggraphite-network docker.elastic.co/kibana/kibana:6.3.2 +docker run -d --rm --name aggregator-cache -p 2003:2003 --network=biggraphite-network -v $(pwd)/aggregator-cache/:/conf aggregator-cache +docker run -d --rm --name graphite-web -p 8080:8080 --network=biggraphite-network graphite-web diff --git a/docker-ng/stop.sh b/docker-ng/stop.sh new file mode 100755 index 0000000000..796b52b8d9 --- /dev/null +++ b/docker-ng/stop.sh @@ -0,0 +1 @@ +docker stop $(docker container ls -q)