From 4c1c70b6a9a0fe57ef02745712f9e62866bf7a2d Mon Sep 17 00:00:00 2001 From: ascrutae Date: Tue, 21 Nov 2017 14:36:50 +0800 Subject: [PATCH] support collector docker images --- .../bin/collectorService.sh | 4 +- .../apm-collector-boot/docker/Dockerfile | 29 ++++++++++++++ .../apm-collector-boot/docker/application.yml | 39 ++++++++++++++++++ .../docker/collectorService.sh | 23 +++++++++++ .../docker/docker-entrypoint.sh | 40 +++++++++++++++++++ .../apm-collector-boot/docker/log4j2.xml | 36 +++++++++++++++++ apm-collector/apm-collector-boot/pom.xml | 28 ++++++++++++- docker-compose.yml | 7 ++-- 8 files changed, 200 insertions(+), 6 deletions(-) create mode 100644 apm-collector/apm-collector-boot/docker/Dockerfile create mode 100644 apm-collector/apm-collector-boot/docker/application.yml create mode 100644 apm-collector/apm-collector-boot/docker/collectorService.sh create mode 100644 apm-collector/apm-collector-boot/docker/docker-entrypoint.sh create mode 100644 apm-collector/apm-collector-boot/docker/log4j2.xml diff --git a/apm-collector/apm-collector-boot/bin/collectorService.sh b/apm-collector/apm-collector-boot/bin/collectorService.sh index db5147865..05e1f17d0 100644 --- a/apm-collector/apm-collector-boot/bin/collectorService.sh +++ b/apm-collector/apm-collector-boot/bin/collectorService.sh @@ -20,9 +20,9 @@ do CLASSPATH="$i:$CLASSPATH" done -WEBUI_OPTIONS=" -Dcollector.logDir=${COLLECT_LOG_DIR}" +COLLECTOR_OPTIONS=" -Dcollector.logDir=${COLLECT_LOG_DIR}" -eval exec "\"$_RUNJAVA\" ${JAVA_OPTS} ${WEBUI_OPTIONS} -classpath $CLASSPATH org.skywalking.apm.collector.boot.CollectorBootStartUp \ +eval exec "\"$_RUNJAVA\" ${JAVA_OPTS} ${COLLECTOR_OPTIONS} -classpath $CLASSPATH org.skywalking.apm.collector.boot.CollectorBootStartUp \ 2>${COLLECT_LOG_DIR}/collector.log 1> /dev/null &" if [ $? -eq 0 ]; then diff --git a/apm-collector/apm-collector-boot/docker/Dockerfile b/apm-collector/apm-collector-boot/docker/Dockerfile new file mode 100644 index 000000000..bfc1dcad9 --- /dev/null +++ b/apm-collector/apm-collector-boot/docker/Dockerfile @@ -0,0 +1,29 @@ +FROM openjdk:8u111-jdk + +ENV ZK_ADDRESSES=127.0.0.1:2181 \ + ES_CLUSTER_NAME=CollectorDBCluster \ + ES_ADDRESSES=localhost:9300 \ + BIND_HOST=localhost \ + NAMING_BIND_HOST=localhost \ + NAMING_BIND_PORT=10800 \ + REMOTE_BIND_PORT=11800 \ + AGENT_GRPC_BIND_PORT=11800 \ + AGENT_JETTY_BIND_HOST=localhost \ + AGENT_JETTY_BIND_PORT=12800 \ + UI_JETTY_BIND_PORT=12800 \ + UI_JETTY_BIND_HOST=localhost + +ADD skywalking-collector.tar.gz /usr/local +COPY collectorService.sh /usr/local/skywalking-collector/bin +COPY log4j2.xml /usr/local/skywalking-collector/config +COPY application.yml /usr/local/skywalking-collector/config +COPY docker-entrypoint.sh / + +RUN chmod +x /usr/local/skywalking-collector/bin/collectorService.sh && chmod +x /docker-entrypoint.sh + +EXPOSE 10800 +EXPOSE 11800 +EXPOSE 12800 + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/usr/local/skywalking-collector/bin/collectorService.sh"] diff --git a/apm-collector/apm-collector-boot/docker/application.yml b/apm-collector/apm-collector-boot/docker/application.yml new file mode 100644 index 000000000..50e2daa32 --- /dev/null +++ b/apm-collector/apm-collector-boot/docker/application.yml @@ -0,0 +1,39 @@ +cluster: + zookeeper: + hostPort: {ZK_ADDRESSES} + sessionTimeout: 100000 +naming: + jetty: + host: {NAMING_BIND_HOST} + port: {NAMING_BIND_PORT} + context_path: / +remote: + gRPC: + host: {BIND_HOST} + port: {REMOTE_BIND_PORT} +agent_gRPC: + gRPC: + host: {BIND_HOST} + port: {AGENT_GRPC_BIND_PORT} +agent_jetty: + jetty: + host: {AGENT_JETTY_BIND_HOST} + port: {AGENT_JETTY_BIND_PORT} + context_path: / +agent_stream: + default: + buffer_file_path: ../buffer/ + buffer_offset_max_file_size: 10M + buffer_segment_max_file_size: 500M +ui: + jetty: + host: {UI_JETTY_BIND_HOST} + port: {UI_JETTY_BIND_PORT} + context_path: / +storage: + elasticsearch: + cluster_name: {ES_CLUSTER_NAME} + cluster_transport_sniffer: true + cluster_nodes: {ES_ADDRESSES} + index_shards_number: 2 + index_replicas_number: 0 diff --git a/apm-collector/apm-collector-boot/docker/collectorService.sh b/apm-collector/apm-collector-boot/docker/collectorService.sh new file mode 100644 index 000000000..919015eee --- /dev/null +++ b/apm-collector/apm-collector-boot/docker/collectorService.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env sh + +PRG="$0" +PRGDIR=`dirname "$PRG"` +[ -z "$COLLECTOR_HOME" ] && COLLECTOR_HOME=`cd "$PRGDIR/.." >/dev/null; pwd` + +COLLECT_LOG_DIR="${COLLECTOR_HOME}/logs" +JAVA_OPTS=" -Xms256M -Xmx512M" + +if [ ! -d "${COLLECTOR_HOME}/logs" ]; then + mkdir -p "${COLLECT_LOG_DIR}" +fi + +_RUNJAVA=${JAVA_HOME}/bin/java +[ -z "$JAVA_HOME" ] && _RUNJAVA=java + +CLASSPATH="$COLLECTOR_HOME/config:$CLASSPATH" +for i in "$COLLECTOR_HOME"/libs/*.jar +do + CLASSPATH="$i:$CLASSPATH" +done + +${_RUNJAVA} ${JAVA_OPTS} -classpath $CLASSPATH org.skywalking.apm.collector.boot.CollectorBootStartUp diff --git a/apm-collector/apm-collector-boot/docker/docker-entrypoint.sh b/apm-collector/apm-collector-boot/docker/docker-entrypoint.sh new file mode 100644 index 000000000..ab9fe8e7e --- /dev/null +++ b/apm-collector/apm-collector-boot/docker/docker-entrypoint.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +echo "replace {ZK_ADDRESSES} to ${ZK_ADDRESSES}" +eval sed -i -e 's/\{ZK_ADDRESSES\}/${ZK_ADDRESSES}/' /usr/local/skywalking-collector/config/application.yml + +echo "replace {ES_CLUSTER_NAME} to ${ES_CLUSTER_NAME}" +eval sed -i -e 's/\{ES_CLUSTER_NAME\}/${ES_CLUSTER_NAME}/' /usr/local/skywalking-collector/config/application.yml + +echo "replace {ES_ADDRESSES} to ${ES_ADDRESSES}" +eval sed -i -e 's/\{ES_ADDRESSES\}/${ES_ADDRESSES}/' /usr/local/skywalking-collector/config/application.yml + +echo "replace {BIND_HOST} to ${BIND_HOST}" +eval sed -i -e 's/\{BIND_HOST\}/${BIND_HOST}/' /usr/local/skywalking-collector/config/application.yml + +echo "replace {NAMING_BIND_HOST} to ${NAMING_BIND_HOST}" +eval sed -i -e 's/\{NAMING_BIND_HOST\}/${NAMING_BIND_HOST}/' /usr/local/skywalking-collector/config/application.yml + +echo "replace {NAMING_BIND_PORT} to ${NAMING_BIND_PORT}" +eval sed -i -e 's/\{NAMING_BIND_PORT\}/${NAMING_BIND_PORT}/' /usr/local/skywalking-collector/config/application.yml + +echo "replace {REMOTE_BIND_PORT} to ${REMOTE_BIND_PORT}" +eval sed -i -e 's/\{REMOTE_BIND_PORT\}/${REMOTE_BIND_PORT}/' /usr/local/skywalking-collector/config/application.yml + +echo "replace {AGENT_GRPC_BIND_PORT} to ${AGENT_GRPC_BIND_PORT}" +eval sed -i -e 's/\{AGENT_GRPC_BIND_PORT\}/${AGENT_GRPC_BIND_PORT}/' /usr/local/skywalking-collector/config/application.yml + +echo "replace {AGENT_JETTY_BIND_HOST} to ${AGENT_JETTY_BIND_HOST}" +eval sed -i -e 's/\{AGENT_JETTY_BIND_HOST\}/${AGENT_JETTY_BIND_HOST}/' /usr/local/skywalking-collector/config/application.yml + +echo "replace {AGENT_JETTY_BIND_PORT} to ${AGENT_JETTY_BIND_PORT}" +eval sed -i -e 's/\{AGENT_JETTY_BIND_PORT\}/${AGENT_JETTY_BIND_PORT}/' /usr/local/skywalking-collector/config/application.yml + +echo "replace {UI_JETTY_BIND_PORT} to ${UI_JETTY_BIND_PORT}" +eval sed -i -e 's/\{UI_JETTY_BIND_PORT\}/${UI_JETTY_BIND_PORT}/' /usr/local/skywalking-collector/config/application.yml + +echo "replace {UI_JETTY_BIND_HOST} to ${UI_JETTY_BIND_HOST}" +eval sed -i -e 's/\{UI_JETTY_BIND_HOST\}/${UI_JETTY_BIND_HOST}/' /usr/local/skywalking-collector/config/application.yml + + +exec "$@" diff --git a/apm-collector/apm-collector-boot/docker/log4j2.xml b/apm-collector/apm-collector-boot/docker/log4j2.xml new file mode 100644 index 000000000..e6915ec9a --- /dev/null +++ b/apm-collector/apm-collector-boot/docker/log4j2.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/apm-collector/apm-collector-boot/pom.xml b/apm-collector/apm-collector-boot/pom.xml index 9431eec54..e95679cc7 100644 --- a/apm-collector/apm-collector-boot/pom.xml +++ b/apm-collector/apm-collector-boot/pom.xml @@ -30,6 +30,11 @@ apm-collector-boot jar + + skywalking/skywalking-collector + ${version} + + org.yaml @@ -148,7 +153,7 @@ - Skywalking-Collector + skywalking-collector maven-compiler-plugin @@ -191,10 +196,31 @@ src/main/assembly/assembly.xml + ${project.basedir}/../../packages + + com.spotify + docker-maven-plugin + ${docker.plugin.version} + + false + ${docker.image.name} + + ${docker.image.version} + + ${project.basedir}/docker + + + / + ${project.basedir}/../../packages + ${build.finalName}.tar.gz + + + + diff --git a/docker-compose.yml b/docker-compose.yml index 233cc714b..39a54b811 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -36,10 +36,11 @@ services: - ZK_ADDRESSES=zookeeper-server:2181 - ES_ADDRESSES=es-server:9300 - BIND_HOST=0.0.0.0 - - UI_BIND_HOST=skywalking-collector - - CLUSTER_BIND_HOST=0.0.0.0 + - AGENT_JETTY_BIND_HOST=skywalking-collector + - NAMING_BIND_HOST=skywalking-collector + - UI_JETTY_BIND_HOST=skywalking-collector healthcheck: - test: ["CMD", "curl", "-f", "http://localhost:10800/agentstream/grpc"] + test: ["CMD", "curl", "-f", "http://skywalking-collector:10800/agent/gRPC"] interval: 10s timeout: 10s retries: 5 -- GitLab