I am developing on a a large webapp system that has multiple docker containers. Imagine a webapp but with many external restful services running on different containers. A microservices setup.
I am looking to put in place a centralized logging system. So we can trace and find errors.
My initial thoughts was to spin up a elk (Elastic Stack) container and each of the containers logs directly to the central place.
Something like the following log config in each of the containers that want to log to the centralised elk container
<appenders>
<Socket name="logstash" host="docker-url" port="7007">
<SerializedLayout/>
</Socket>
<async name="async" blocking="false">
<appenderref ref="logstash" />
</async>
....
So my questions is this.
Is this a good design, could this be improved?
I'm concerned that if the logging elk container went down then it may make the other containers unresponsive.