This repository is purposed for learning and setting up a POC of hosting the Elastic Stack on a Windows kernel using Docker.
It was later updated so that it actually can run a version of ELK on Docker for a Windows Server environment which cannot use Hyper-V to host Linux containers.
Special thanks to Tim Wilde for the article on how to setup NLog and Logstash and also to SharpSeeEr for the repo which explains how to set up ELK on a Windows kernel in Docker.
There is also a test C# application which uses NLog.StructuredLogging.Json that can be used to log something against the Logstash instance hosted in Docker.
The author or his affiliates do not accept any responsibility for this repo or the Docker images built by it. Feel free to use for your own purposes and at own risk.
Make sure you have docker installed (with compose).
Run the setup_sources.ps1 script to make sure all the required applications are accessible to the docker images for build.
This will download the OpenJDK from https://github.com/ojdkbuild/ojdkbuild for running Java on a windows platform as well as the ELK stack binaries.
Invoke the run_all.ps1 script to run docker-compose which will build the images (if it isn't built already) and then run them.
Compile and run the Logstash Logger application found in the "tests" folder.
So the test application should have sent a log message to Logstash which would eventually propagate it to Elastic Search and you should be able to view the results in Kibana by browsing to http://localhost:5601.
In the event that you encounter the following problems, here are some solutions:
ERROR: for kibana Cannot start service kibana: network ...long string id... not found
Try and run: docker-compose down