From a2625689d14687e657b2605ec016c96ab5b97216 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20=C3=96zceviz?= Date: Wed, 13 Feb 2019 19:23:43 +0100 Subject: [PATCH] Configure ELK Stack --- .../docker-compose.override.yml | 34 +++++++++++++++++++ samples/MicroserviceDemo/docker-compose.yml | 28 ++++++++++++++- .../elasticsearch/config/elasticsearch.yml | 4 +++ .../elk/kibana/config/kibana.yml | 4 +++ .../elk/logstash/config/logstash.yml | 2 ++ .../elk/logstash/pipeline/logstash.conf | 13 +++++++ 6 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 samples/MicroserviceDemo/elk/elasticsearch/config/elasticsearch.yml create mode 100644 samples/MicroserviceDemo/elk/kibana/config/kibana.yml create mode 100644 samples/MicroserviceDemo/elk/logstash/config/logstash.yml create mode 100644 samples/MicroserviceDemo/elk/logstash/pipeline/logstash.conf diff --git a/samples/MicroserviceDemo/docker-compose.override.yml b/samples/MicroserviceDemo/docker-compose.override.yml index 72e2f1f2d8..04efc436ec 100644 --- a/samples/MicroserviceDemo/docker-compose.override.yml +++ b/samples/MicroserviceDemo/docker-compose.override.yml @@ -20,8 +20,33 @@ services: ports: - 6379:6379 + elasticsearch: + volumes: + - ./elk/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro + environment: + - "ES_JAVA_OPTS=-Xms512m -Xmx512m" + ports: + - 9200:9200 + + logstash: + volumes: + - ./elk/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml:ro + - ./elk/logstash/pipeline:/usr/share/logstash/pipeline:ro + environment: + - "LS_JAVA_OPTS=-Xmx256m -Xms256m" + ports: + - 9600:9600 + - 5000:5000 + + kibana: + volumes: + - ./elk/kibana/config/:/usr/share/kibana/config:ro + ports: + - 5601:5601 + internal-gateway: environment: + - ElasticSearch__Url=http://elasticsearch:9200 - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - AuthServer__Authority=http://auth-server:64999 @@ -39,6 +64,7 @@ services: backend-admin-app-gateway: environment: + - ElasticSearch__Url=http://elasticsearch:9200 - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - RemoteServices__Default__BaseUrl=http://backend-admin-app-gateway/ @@ -55,6 +81,7 @@ services: public-website-gateway: environment: + - ElasticSearch__Url=http://elasticsearch:9200 - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - AuthServer__Authority=http://auth-server:64999 @@ -70,6 +97,7 @@ services: blogging-service: environment: + - ElasticSearch__Url=http://elasticsearch:9200 - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - AuthServer__Authority=http://auth-server:64999 @@ -82,6 +110,7 @@ services: identity-service: environment: + - ElasticSearch__Url=http://elasticsearch:9200 - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - AuthServer__Authority=http://auth-server:64999 @@ -93,6 +122,7 @@ services: product-service: environment: + - ElasticSearch__Url=http://elasticsearch:9200 - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - AuthServer__Authority=http://auth-server:64999 @@ -105,6 +135,7 @@ services: auth-server: environment: + - ElasticSearch__Url=http://elasticsearch:9200 - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:64999 - ConnectionStrings__Default=Server=sqlserver;Database=MsDemo_Identity;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false @@ -115,6 +146,7 @@ services: backend-admin-app: environment: + - ElasticSearch__Url=http://elasticsearch:9200 - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - AuthServer__Authority=http://auth-server:64999 @@ -125,6 +157,7 @@ services: console-client-demo: environment: + - ElasticSearch__Url=http://elasticsearch:9200 - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - RemoteServices__Default__BaseUrl=http://internal-gateway/ @@ -134,6 +167,7 @@ services: public-website: environment: + - ElasticSearch__Url=http://elasticsearch:9200 - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - AuthServer__Authority=http://auth-server:64999 diff --git a/samples/MicroserviceDemo/docker-compose.yml b/samples/MicroserviceDemo/docker-compose.yml index 7c2d6e0cd7..08c6874366 100644 --- a/samples/MicroserviceDemo/docker-compose.yml +++ b/samples/MicroserviceDemo/docker-compose.yml @@ -15,12 +15,28 @@ services: redis: image: redis + elasticsearch: + image: 'docker.elastic.co/elasticsearch/elasticsearch:6.6.0' + volumes: + - esdata:/usr/share/elasticsearch/data + + logstash: + image: 'docker.elastic.co/logstash/logstash:6.6.0' + depends_on: + - elasticsearch + + kibana: + image: 'docker.elastic.co/kibana/kibana:6.6.0' + depends_on: + - elasticsearch + internal-gateway: image: 'microservice-demo/internal-gateway:${TAG:-latest}' build: context: ../../ dockerfile: samples/MicroserviceDemo/gateways/InternalGateway.Host/Dockerfile depends_on: + - elasticsearch - redis - sqlserver - identity-service @@ -33,6 +49,7 @@ services: context: ../../ dockerfile: samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/Dockerfile depends_on: + - elasticsearch - redis - sqlserver - identity-service @@ -44,6 +61,7 @@ services: context: ../../ dockerfile: samples/MicroserviceDemo/gateways/PublicWebSiteGateway.Host/Dockerfile depends_on: + - elasticsearch - redis - blogging-service - product-service @@ -54,6 +72,7 @@ services: context: ../../ dockerfile: samples/MicroserviceDemo/microservices/BloggingService.Host/Dockerfile depends_on: + - elasticsearch - mongodb - redis @@ -63,6 +82,7 @@ services: context: ../../ dockerfile: samples/MicroserviceDemo/microservices/IdentityService.Host/Dockerfile depends_on: + - elasticsearch - rabbitmq - redis - sqlserver @@ -73,6 +93,7 @@ services: context: ../../ dockerfile: samples/MicroserviceDemo/microservices/ProductService.Host/Dockerfile depends_on: + - elasticsearch - sqlserver - redis @@ -82,6 +103,7 @@ services: context: ../../ dockerfile: samples/MicroserviceDemo/applications/AuthServer.Host/Dockerfile depends_on: + - elasticsearch - redis - rabbitmq - identity-service @@ -92,6 +114,7 @@ services: context: ../../ dockerfile: samples/MicroserviceDemo/applications/BackendAdminApp.Host/Dockerfile depends_on: + - elasticsearch - backend-admin-app-gateway console-client-demo: @@ -100,6 +123,7 @@ services: context: ../../ dockerfile: samples/MicroserviceDemo/applications/ConsoleClientDemo/Dockerfile depends_on: + - elasticsearch - internal-gateway public-website: @@ -108,7 +132,9 @@ services: context: ../../ dockerfile: samples/MicroserviceDemo/applications/PublicWebSite.Host/Dockerfile depends_on: + - elasticsearch - public-website-gateway volumes: - dbdata: \ No newline at end of file + dbdata: + esdata: \ No newline at end of file diff --git a/samples/MicroserviceDemo/elk/elasticsearch/config/elasticsearch.yml b/samples/MicroserviceDemo/elk/elasticsearch/config/elasticsearch.yml new file mode 100644 index 0000000000..eb39c2fe10 --- /dev/null +++ b/samples/MicroserviceDemo/elk/elasticsearch/config/elasticsearch.yml @@ -0,0 +1,4 @@ +cluster.name: "docker-cluster" +network.host: 0.0.0.0 +discovery.zen.minimum_master_nodes: 1 +discovery.type: single-node diff --git a/samples/MicroserviceDemo/elk/kibana/config/kibana.yml b/samples/MicroserviceDemo/elk/kibana/config/kibana.yml new file mode 100644 index 0000000000..08b13ed258 --- /dev/null +++ b/samples/MicroserviceDemo/elk/kibana/config/kibana.yml @@ -0,0 +1,4 @@ +server.name: kibana +server.host: "0" +elasticsearch.hosts: [ "http://elasticsearch:9200" ] +xpack.monitoring.ui.container.elasticsearch.enabled: true diff --git a/samples/MicroserviceDemo/elk/logstash/config/logstash.yml b/samples/MicroserviceDemo/elk/logstash/config/logstash.yml new file mode 100644 index 0000000000..2a5d4d762c --- /dev/null +++ b/samples/MicroserviceDemo/elk/logstash/config/logstash.yml @@ -0,0 +1,2 @@ +http.host: "0.0.0.0" +path.config: /usr/share/logstash/pipeline diff --git a/samples/MicroserviceDemo/elk/logstash/pipeline/logstash.conf b/samples/MicroserviceDemo/elk/logstash/pipeline/logstash.conf new file mode 100644 index 0000000000..10e442ecd5 --- /dev/null +++ b/samples/MicroserviceDemo/elk/logstash/pipeline/logstash.conf @@ -0,0 +1,13 @@ +input { + tcp { + port => 5000 + } +} + +## Add your filters / logstash plugins configuration here + +output { + elasticsearch { + hosts => "elasticsearch:9200" + } +}