This article contains a brief introduction to centralized structured logging with Serilog and event viewing with ELK in eShopOnContainers. ELK is an acronym of ElasticSearch, LogStash and Kibana. This is one of the most used tools in the industry standards.
eshopOnContainers is ready for work with ELK, you only need to setup the configuration parameter LogstashUrl, in Serilog Section, for achieve this, you can do it modifing this parameter in every appsettings.json of every service, or via Environment Variable Serilog:LogstashUrl.
There is another option, a zero-configuration environment for testing the integration launching via docker-compose
command, on the root directory of eshopOnContainers:
docker-compose -f docker-compose.yml -f docker-compose.override.yml -f docker-compose.elk.yml build
docker-compose -f docker-compose.yml -f docker-compose.override.yml -f docker-compose.elk.yml up
Once time you have started and configured your application, you only need to configure the logstash index on kibana. You can address to Kibana, with docker-compose setup is at http://localhost:5601
If you have accessed to kibana too early, you can see this error. It's normal, depending of your machine the kibana stack needs a bit of time to startup.
You can wait a bit and refresh the page, the first time you enter, you need to configure and index pattern, in the docker-compose
configuration, the index pattern name is eshops-*.
With the index pattern configured, you can enter in the discover section and start viewing how the tool is recollecting the logging information.
Another option is to use a preconfigured virtual machine with Logstash, ElasticSearch and Kibana and point the configuration parameter LogstashUrl. For doing this you can address to Microsoft Azure, and start searching a Certified ELK Virtual Machine
This options it have a certified preconfigured options (Network, VirtualMachine type, OS, RAM, Disks) for having a good starting point of ELK with good performance.
When you have configured the main aspects of your virtual machine, you will have a review&create last step like this: