{"id":2424,"date":"2016-09-28T18:04:37","date_gmt":"2016-09-28T11:04:37","guid":{"rendered":"https:\/\/engineerball.com\/?p=2424"},"modified":"2016-09-28T18:04:37","modified_gmt":"2016-09-28T11:04:37","slug":"how-to-use-elk-for-docker-container-log-viewer","status":"publish","type":"post","link":"https:\/\/engineerball.com\/blog\/2016\/09\/28\/how-to-use-elk-for-docker-container-log-viewer.html","title":{"rendered":"\u0e17\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e14\u0e39 Log \u0e02\u0e2d\u0e07 Docker Container \u0e1c\u0e48\u0e32\u0e19 ELK \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e07\u0e48\u0e32\u0e22"},"content":{"rendered":"<p>\u0e42\u0e14\u0e22\u0e1b\u0e01\u0e15\u0e34\u0e41\u0e25\u0e49\u0e27\u0e2b\u0e32\u0e01\u0e40\u0e27\u0e25\u0e32\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 Docker \u0e41\u0e25\u0e30\u0e2a\u0e31\u0e48\u0e07\u0e43\u0e2b\u0e49 Container \u0e19\u0e31\u0e49\u0e19\u0e17\u0e33\u0e07\u0e32\u0e19 \u0e40\u0e23\u0e32\u0e08\u0e30\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e14\u0e39 Log \u0e14\u0e49\u0e27\u0e22\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07<\/p>\n<pre>$ docker logs &lt;container id&gt;<\/pre>\n<p>\u0e01\u0e47\u0e08\u0e30\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e40\u0e23\u0e32\u0e44\u0e14\u0e49\u0e21\u0e2d\u0e07\u0e40\u0e2b\u0e47\u0e19\u0e2a\u0e34\u0e48\u0e07\u0e17\u0e35\u0e48 Container \u0e1e\u0e48\u0e19\u0e2d\u0e2d\u0e01\u0e21\u0e32\u0e1c\u0e48\u0e32\u0e19\u0e17\u0e32\u0e07 STDOUT \u0e41\u0e25\u0e30 STDERR \u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19 container \u0e41\u0e15\u0e48\u0e1b\u0e31\u0e0d\u0e2b\u0e32\u0e21\u0e31\u0e19\u0e21\u0e35\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e04\u0e37\u0e2d \u0e16\u0e49\u0e32\u0e40\u0e23\u0e32\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16 Access \u0e40\u0e02\u0e49\u0e32\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e17\u0e35\u0e48\u0e23\u0e31\u0e19 Docker Engine \u0e44\u0e14\u0e49\u0e01\u0e47\u0e08\u0e30\u0e04\u0e48\u0e2d\u0e19\u0e02\u0e49\u0e32\u0e07\u0e25\u0e33\u0e1a\u0e32\u0e01\u0e43\u0e19\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a Container \u0e04\u0e23\u0e32\u0e27\u0e19\u0e35\u0e49\u0e40\u0e23\u0e32\u0e08\u0e30\u0e21\u0e32\u0e2b\u0e32\u0e17\u0e32\u0e07\u0e2d\u0e2d\u0e01\u0e43\u0e2b\u0e49\u0e01\u0e31\u0e1a\u0e1b\u0e31\u0e0d\u0e2b\u0e32\u0e1e\u0e27\u0e01\u0e19\u0e35\u0e49\u0e01\u0e31\u0e19\u0e14\u0e49\u0e27\u0e22\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49 ELK (Elasticsearch + Logstash + Kibana) \u0e43\u0e19\u0e01\u0e32\u0e23\u0e2a\u0e48\u0e07 log \u0e08\u0e32\u0e01 container \u0e2d\u0e2d\u0e01\u0e21\u0e32\u0e43\u0e2b\u0e49\u0e40\u0e23\u0e32\u0e14\u0e39\u0e44\u0e14\u0e49\u0e1c\u0e48\u0e32\u0e19\u0e17\u0e32\u0e07\u0e2b\u0e19\u0e49\u0e32\u0e40\u0e27\u0e47\u0e1b<\/p>\n<p>\u0e43\u0e19\u0e17\u0e35\u0e48\u0e19\u0e35\u0e49\u0e1c\u0e21\u0e08\u0e30\u0e43\u0e0a\u0e49 ELK \u0e17\u0e35\u0e48\u0e17\u0e33\u0e07\u0e32\u0e19\u0e14\u0e49\u0e27\u0e22 Docker \u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e19\u0e30\u0e04\u0e23\u0e31\u0e1a<\/p>\n<p>&nbsp;<\/p>\n<p><strong>\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u00a0Elasticsearch<\/strong><\/p>\n<pre>$ docker run -d --name elasticsearch elasticsearch<\/pre>\n<p>\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e44\u0e1f\u0e25\u0e4c\u0e02\u0e2d\u0e07 logstash.conf \u0e17\u0e35\u0e48 \/opt\/logstash\/conf\/logstash.conf \u0e43\u0e2b\u0e49\u0e21\u0e35\u0e01\u0e32\u0e23\u0e23\u0e31\u0e1a\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e02\u0e32\u0e40\u0e02\u0e49\u0e32\u0e21\u0e32\u0e08\u0e32\u0e01 gelf \u0e41\u0e25\u0e30\u0e2a\u0e48\u0e07\u0e2d\u0e2d\u0e01\u0e44\u0e1b\u0e2b\u0e32 elasticsearch \u0e14\u0e49\u0e27\u0e22\u0e40\u0e19\u0e37\u0e49\u0e2d\u0e44\u0e1f\u0e25\u0e4c<\/p>\n<p><script src=\"https:\/\/gist.github.com\/engineerball\/83d4b2966a82a0bc6c54d9b55a0a8380.js\"><\/script><\/p>\n<p>\u0e41\u0e25\u0e30\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07 log stash container<\/p>\n<pre>$\u00a0<code>docker run -d --name logstash --link elasticsearch:elasticsearch -v \/opt\/logstash\/conf\/logstash.conf:\/config-dir\/logstash.conf logstash logstash -f \/config-dir\/logstash.conf<\/code><\/pre>\n<p>\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07 kibana<\/p>\n<pre>$\u00a0<code>docker run -d --name kibana --link elasticsearch:elasticsearch -p 5601:5601 kibana<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>\u0e01\u0e32\u0e23\u0e19\u0e33 STDOUT, STDERROR \u0e2b\u0e23\u0e37\u0e2d log \u0e02\u0e2d\u0e07 container \u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48 ELK \u0e40\u0e1c\u0e37\u0e48\u0e2d\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e17\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07 index \u0e43\u0e2b\u0e49\u0e01\u0e31\u0e1a Elasticsearch<\/p>\n<p>\u0e2b\u0e25\u0e31\u0e01\u0e46 \u0e41\u0e25\u0e49\u0e27\u0e40\u0e23\u0e32\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e23\u0e30\u0e1a\u0e38 log-driver \u0e41\u0e25\u0e30 log-option \u0e15\u0e48\u0e32\u0e07\u0e46 \u0e43\u0e2b\u0e49\u0e01\u0e31\u0e1a container \u0e15\u0e31\u0e27\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 \u0e43\u0e19\u0e17\u0e35\u0e48\u0e19\u0e35\u0e48\u0e40\u0e23\u0e32\u0e08\u0e30\u0e43\u0e0a\u0e49 <a href=\"https:\/\/docs.docker.com\/engine\/admin\/logging\/overview\/#\/gelf-options\">gelf<\/a>\u00a0\u0e0b\u0e36\u0e48\u0e07\u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e01\u0e32\u0e23\u0e1a\u0e2d\u0e01\u0e43\u0e2b\u0e49 log \u0e21\u0e35 format \u0e40\u0e1b\u0e47\u0e19\u0e02\u0e2d\u0e07 Graylog \u0e41\u0e25\u0e30 Logstash (\u0e16\u0e49\u0e32\u0e44\u0e21\u0e48\u0e23\u0e30\u0e1a\u0e38 log \u0e08\u0e30\u0e21\u0e35\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30\u0e40\u0e1b\u0e47\u0e19 JSON format)<\/p>\n<p><span style=\"text-decoration: underline;\">\u0e41\u0e25\u0e30\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e23\u0e30\u0e1a\u0e38 <strong>log-option<\/strong> \u0e14\u0e31\u0e07\u0e19\u0e35\u0e49<\/span><br \/>\n<strong>gelf-address<\/strong> \u0e04\u0e37\u0e2d\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e2a\u0e48\u0e04\u0e48\u0e32\u0e02\u0e2d\u0e07 ip address \u0e02\u0e2d\u0e07 container \u0e02\u0e2d\u0e07\u0e15\u0e31\u0e27 logstash \u0e43\u0e19\u0e17\u0e35\u0e48\u0e19\u0e35\u0e49\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u00a0<code>docker inspect --format '{{ .NetworkSettings.IPAddress }}' logstash<\/code> \u0e08\u0e30\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e40\u0e23\u0e32\u0e44\u0e14\u0e49\u0e40\u0e25\u0e02 IP \u0e02\u0e2d\u0e07 container \u0e17\u0e35\u0e48\u0e21\u0e35\u0e0a\u0e37\u0e48\u0e2d\u0e27\u0e48\u0e32 logstash \u0e2d\u0e2d\u0e01\u0e21\u0e32\u0e44\u0e14\u0e49 \u0e04\u0e48\u0e32\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e21\u0e35\u0e04\u0e48\u0e32 172.18.0.4 \u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e19<\/p>\n<p><strong>tag<\/strong> \u0e04\u0e37\u0e2d \u0e0a\u0e37\u0e48\u0e2d\u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e08\u0e30\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e43\u0e2b\u0e49\u0e15\u0e31\u0e27 container \u0e15\u0e31\u0e27\u0e19\u0e35\u0e49 \u0e16\u0e49\u0e32\u0e40\u0e23\u0e32\u0e40\u0e1b\u0e34\u0e14\u0e2b\u0e19\u0e49\u0e32 kibana \u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e04\u0e49\u0e19\u0e2b\u0e32 log \u0e14\u0e49\u0e27\u0e22 tag \u0e44\u0e14\u0e49<\/p>\n<pre>$ docker run --rm --log-driver=gelf --log-opt gelf-address=udp:\/\/$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' logstash):12201 --log-opt tag=\"test\" alpine \/bin\/sh -c \"while true; do echo My message \\$RANDOM; sleep 1; done;\"<\/pre>\n<p>\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u0e14\u0e31\u0e07\u0e01\u0e25\u0e48\u0e32\u0e27\u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e01\u0e32\u0e23 start container \u0e08\u0e32\u0e01 image alpine \u0e02\u0e36\u0e49\u0e19\u0e21\u0e32 1 \u0e15\u0e31\u0e27\u0e41\u0e25\u0e30\u0e43\u0e2b\u0e49\u0e21\u0e31\u0e19 echo \u0e15\u0e31\u0e27\u0e40\u0e25\u0e02\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e08\u0e32\u0e01\u0e01\u0e32\u0e23\u0e2a\u0e38\u0e48\u0e21\u0e15\u0e25\u0e2d\u0e14\u0e40\u0e27\u0e25\u0e32 \u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19\u0e43\u0e2b\u0e49\u0e40\u0e23\u0e32\u0e40\u0e1b\u0e34\u0e14\u0e2b\u0e19\u0e49\u0e32\u0e40\u0e27\u0e1b kibana \u0e40\u0e0a\u0e48\u0e19 <a href=\"http:\/\/localhost:5601\">http:\/\/localhost:5601<\/a><\/p>\n<p>\u0e08\u0e30\u0e21\u0e35\u0e43\u0e2b\u0e49\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e40\u0e25\u0e47\u0e01\u0e19\u0e49\u0e2d\u0e22\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2a\u0e23\u0e49\u0e32\u0e07 index \u0e43\u0e2b\u0e49\u0e01\u0e31\u0e1a elasticsearch \u0e43\u0e2b\u0e49\u0e40\u0e23\u0e32\u0e40\u0e25\u0e37\u0e2d\u0e01 @timestamp \u0e44\u0e1b<\/p>\n<p><a href=\"https:\/\/engineerball.com\/wp-content\/uploads\/2016\/09\/Image-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2434\" src=\"https:\/\/engineerball.com\/wp-content\/uploads\/2016\/09\/Image-2-744x364.png\" alt=\"image-2\" width=\"744\" height=\"364\" srcset=\"https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/09\/Image-2-744x364.png 744w, https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/09\/Image-2-420x206.png 420w, https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/09\/Image-2-768x376.png 768w, https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/09\/Image-2-700x343.png 700w, https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/09\/Image-2.png 1109w\" sizes=\"(max-width: 744px) 100vw, 744px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>\u0e40\u0e1e\u0e35\u0e22\u0e07\u0e40\u0e17\u0e48\u0e32\u0e19\u0e35\u0e49\u0e01\u0e47\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e14\u0e39 log \u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19 Docker \u0e44\u0e14\u0e49\u0e41\u0e25\u0e49\u0e27 \ud83d\ude09<\/p>\n<p><a href=\"https:\/\/engineerball.com\/wp-content\/uploads\/2016\/09\/Image-8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2435\" src=\"https:\/\/engineerball.com\/wp-content\/uploads\/2016\/09\/Image-8-744x369.png\" alt=\"image-8\" width=\"744\" height=\"369\" srcset=\"https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/09\/Image-8-744x369.png 744w, https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/09\/Image-8-420x208.png 420w, https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/09\/Image-8-768x381.png 768w, https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/09\/Image-8-700x347.png 700w, https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/09\/Image-8.png 1066w\" sizes=\"(max-width: 744px) 100vw, 744px\" \/><\/a><\/p>\n<h2><strong>\u0e16\u0e49\u0e32\u0e43\u0e0a\u0e49 Docker-compose \u0e2b\u0e25\u0e48\u0e30 \u0e08\u0e30\u0e17\u0e33\u0e22\u0e31\u0e07\u0e44\u0e07<\/strong><\/h2>\n<p>\u0e1a\u0e19 Docker-compose (version 1) \u0e01\u0e47\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e44\u0e14\u0e49\u0e40\u0e0a\u0e48\u0e19\u0e01\u0e31\u0e19 (version 2 \u0e01\u0e47\u0e04\u0e27\u0e23\u0e08\u0e30\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e44\u0e14\u0e49 \u0e41\u0e15\u0e48\u0e40\u0e14\u0e35\u0e4b\u0e22\u0e27\u0e17\u0e14\u0e2a\u0e2d\u0e1a\u0e43\u0e2b\u0e49\u0e04\u0e23\u0e32\u0e27\u0e2b\u0e25\u0e31\u0e07) \u0e41\u0e15\u0e48\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e1b\u0e23\u0e31\u0e1a\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e19\u0e34\u0e14\u0e2b\u0e19\u0e48\u0e2d\u0e22\u0e43\u0e19\u0e01\u0e32\u0e23 connect \u0e40\u0e02\u0e49\u0e32\u0e44\u0e1b\u0e2b\u0e32 logstash \u0e40\u0e1e\u0e23\u0e32\u0e30\u0e43\u0e19\u0e44\u0e1f\u0e25\u0e4c docker-compose.yml \u0e40\u0e23\u0e32\u0e08\u0e30\u0e2a\u0e31\u0e48\u0e07\u0e43\u0e2b\u0e49\u0e21\u0e31\u0e19\u0e2b\u0e32 IP \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e19\u0e31\u0e49\u0e19\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49 \u0e08\u0e36\u0e07\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e1b\u0e2b\u0e32 IP address \u0e02\u0e2d\u0e07 container \u0e02\u0e2d\u0e07 logstash \u0e40\u0e2a\u0e35\u0e22\u0e01\u0e48\u0e2d\u0e19 \u0e08\u0e36\u0e07\u0e08\u0e30\u0e19\u0e33\u0e44\u0e1b\u0e43\u0e2a\u0e48\u0e25\u0e07\u0e44\u0e1b\u0e43\u0e19 docker-compose.yml \u0e44\u0e14\u0e49 \u0e40\u0e0a\u0e48\u0e19<\/p>\n<pre>$ docker inspect --format '{{ .NetworkSettings.IPAddress }}' logstash\r\n172.18.0.11<\/pre>\n<p>\u0e14\u0e31\u0e07\u0e19\u0e31\u0e49\u0e19 IP \u0e02\u0e2d\u0e07 logstash \u0e40\u0e23\u0e32\u0e04\u0e37\u0e2d 172.18.0.11<\/p>\n<div style=\"background: #ffffff; overflow: auto; width: auto; border: solid gray; border-width: .1em .1em .1em .8em; padding: .2em .6em;\">\n<pre style=\"margin: 0; line-height: 125%;\">web:\r\n image: <span style=\"background-color: #fff0f0;\">\"cpiot\/web:1.0\"<\/span>\r\n links:\r\n   - mqtt\r\n   - influxdb\r\n   - worker\r\n log_driver: gelf\r\n log_opt: \r\n   gelf-address: <span style=\"background-color: #fff0f0;\">\"udp:\/\/172.18.0.11:12201\"<\/span>\r\n   tag: <span style=\"background-color: #fff0f0;\">\"iotcpfarm-web\"<\/span>\r\n\r\nworker:\r\n image: <span style=\"background-color: #fff0f0;\">\"cpiot\/worker:1.0\"<\/span>\r\n links:\r\n   - mqtt\r\n   - influxdb\r\n log_driver: gelf\r\n log_opt: \r\n   gelf-address: <span style=\"background-color: #fff0f0;\">\"udp:\/\/172.18.0.11:12201\"<\/span>\r\n   tag: <span style=\"background-color: #fff0f0;\">\"iotcpfarm-woker\"<\/span>\r\n<\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<p>\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e40\u0e23\u0e32\u0e2a\u0e31\u0e48\u0e07 docker-compose up \u0e02\u0e36\u0e49\u0e19\u0e41\u0e25\u0e49\u0e27 log \u0e01\u0e47\u0e08\u0e30\u0e27\u0e34\u0e48\u0e07\u0e40\u0e02\u0e49\u0e32\u0e44\u0e1b\u0e2b\u0e32 ELK \u0e17\u0e31\u0e19\u0e17\u0e35<\/p>\n<p>&nbsp;<\/p>\n<p>ref:<\/p>\n<p><a href=\"https:\/\/gist.github.com\/735f2871460a2b068080.git\">https:\/\/gist.github.com\/735f2871460a2b068080.git<\/a><br \/>\n<a href=\"https:\/\/docs.docker.com\/compose\/compose-file\/#\/log-driver\">https:\/\/docs.docker.com\/compose\/compose-file\/#\/log-driver<\/a><br \/>\n<a href=\"https:\/\/docs.docker.com\/compose\/compose-file\/#\/log-option\">https:\/\/docs.docker.com\/compose\/compose-file\/#\/log-option<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0e42\u0e14\u0e22\u0e1b\u0e01\u0e15\u0e34\u0e41\u0e25\u0e49\u0e27\u0e2b\u0e32\u0e01\u0e40\u0e27\u0e25\u0e32\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 Docker \u0e41\u0e25\u0e30\u0e2a\u0e31\u0e48\u0e07\u0e43\u0e2b\u0e49 Container \u0e19\u0e31\u0e49\u0e19\u0e17\u0e33\u0e07\u0e32\u0e19 \u0e40\u0e23\u0e32\u0e08\u0e30\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e14\u0e39 Log \u0e14\u0e49\u0e27\u0e22\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07 $ docker logs &lt;container id&gt; \u0e01\u0e47\u0e08\u0e30\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e40\u0e23\u0e32\u0e44\u0e14\u0e49\u0e21\u0e2d\u0e07\u0e40\u0e2b\u0e47\u0e19\u0e2a\u0e34\u0e48\u0e07\u0e17\u0e35\u0e48 Container&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/engineerball.com\/blog\/2016\/09\/28\/how-to-use-elk-for-docker-container-log-viewer.html\">Read the post<span class=\"screen-reader-text\">\u0e17\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e14\u0e39 Log \u0e02\u0e2d\u0e07 Docker Container \u0e1c\u0e48\u0e32\u0e19 ELK \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e07\u0e48\u0e32\u0e22<\/span><\/a><\/div>\n","protected":false},"author":1,"featured_media":2437,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[352],"tags":[338,385,388,131,389],"jetpack_publicize_connections":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u0e17\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e14\u0e39 Log \u0e02\u0e2d\u0e07 Docker Container \u0e1c\u0e48\u0e32\u0e19 ELK \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e07\u0e48\u0e32\u0e22 - EngineerBALL<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/engineerball.com\/blog\/2016\/09\/28\/how-to-use-elk-for-docker-container-log-viewer.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u0e17\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e14\u0e39 Log \u0e02\u0e2d\u0e07 Docker Container \u0e1c\u0e48\u0e32\u0e19 ELK \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e07\u0e48\u0e32\u0e22 - EngineerBALL\" \/>\n<meta property=\"og:url\" content=\"https:\/\/engineerball.com\/blog\/2016\/09\/28\/how-to-use-elk-for-docker-container-log-viewer.html\" \/>\n<meta property=\"og:site_name\" content=\"EngineerBALL\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/engineerball\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/troueblemaker.khunpech?ref=tn_tnmn\" \/>\n<meta property=\"article:published_time\" content=\"2016-09-28T11:04:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/09\/rsz_screen-shot-2014-02-25-at-4-42-52-pm.png\" \/>\n\t<meta property=\"og:image:width\" content=\"939\" \/>\n\t<meta property=\"og:image:height\" content=\"511\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"ball\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@engineerball\" \/>\n<meta name=\"twitter:site\" content=\"@engineerball\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"ball\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/engineerball.com\/blog\/2016\/09\/28\/how-to-use-elk-for-docker-container-log-viewer.html\",\"url\":\"https:\/\/engineerball.com\/blog\/2016\/09\/28\/how-to-use-elk-for-docker-container-log-viewer.html\",\"name\":\"\u0e17\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e14\u0e39 Log \u0e02\u0e2d\u0e07 Docker Container \u0e1c\u0e48\u0e32\u0e19 ELK \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e07\u0e48\u0e32\u0e22 - EngineerBALL\",\"isPartOf\":{\"@id\":\"https:\/\/engineerball.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/engineerball.com\/blog\/2016\/09\/28\/how-to-use-elk-for-docker-container-log-viewer.html#primaryimage\"},\"image\":{\"@id\":\"https:\/\/engineerball.com\/blog\/2016\/09\/28\/how-to-use-elk-for-docker-container-log-viewer.html#primaryimage\"},\"thumbnailUrl\":\"https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/09\/rsz_screen-shot-2014-02-25-at-4-42-52-pm.png\",\"datePublished\":\"2016-09-28T11:04:37+00:00\",\"dateModified\":\"2016-09-28T11:04:37+00:00\",\"author\":{\"@id\":\"https:\/\/engineerball.com\/blog\/#\/schema\/person\/415320d0da2d392375528001aa6ea53e\"},\"breadcrumb\":{\"@id\":\"https:\/\/engineerball.com\/blog\/2016\/09\/28\/how-to-use-elk-for-docker-container-log-viewer.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/engineerball.com\/blog\/2016\/09\/28\/how-to-use-elk-for-docker-container-log-viewer.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/engineerball.com\/blog\/2016\/09\/28\/how-to-use-elk-for-docker-container-log-viewer.html#primaryimage\",\"url\":\"https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/09\/rsz_screen-shot-2014-02-25-at-4-42-52-pm.png\",\"contentUrl\":\"https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/09\/rsz_screen-shot-2014-02-25-at-4-42-52-pm.png\",\"width\":939,\"height\":511},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/engineerball.com\/blog\/2016\/09\/28\/how-to-use-elk-for-docker-container-log-viewer.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/engineerball.com\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0e17\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e14\u0e39 Log \u0e02\u0e2d\u0e07 Docker Container \u0e1c\u0e48\u0e32\u0e19 ELK \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e07\u0e48\u0e32\u0e22\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/engineerball.com\/blog\/#website\",\"url\":\"https:\/\/engineerball.com\/blog\/\",\"name\":\"EngineerBALL\",\"description\":\"Damn Those Sweet Memories\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/engineerball.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/engineerball.com\/blog\/#\/schema\/person\/415320d0da2d392375528001aa6ea53e\",\"name\":\"ball\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/engineerball.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d8d00c01f55942d7c8f2dbc70a9cefe0?s=96&d=monsterid&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d8d00c01f55942d7c8f2dbc70a9cefe0?s=96&d=monsterid&r=g\",\"caption\":\"ball\"},\"description\":\"Teerapat Khunpech Live, Tech, Beers, Bike, Cafe Racer, Docker, Devops, Eco-System\",\"sameAs\":[\"https:\/\/engineerball.com\",\"https:\/\/www.facebook.com\/troueblemaker.khunpech?ref=tn_tnmn\",\"https:\/\/twitter.com\/engineerball\"],\"url\":\"https:\/\/engineerball.com\/blog\/author\/ball\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u0e17\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e14\u0e39 Log \u0e02\u0e2d\u0e07 Docker Container \u0e1c\u0e48\u0e32\u0e19 ELK \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e07\u0e48\u0e32\u0e22 - EngineerBALL","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/engineerball.com\/blog\/2016\/09\/28\/how-to-use-elk-for-docker-container-log-viewer.html","og_locale":"en_US","og_type":"article","og_title":"\u0e17\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e14\u0e39 Log \u0e02\u0e2d\u0e07 Docker Container \u0e1c\u0e48\u0e32\u0e19 ELK \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e07\u0e48\u0e32\u0e22 - EngineerBALL","og_url":"https:\/\/engineerball.com\/blog\/2016\/09\/28\/how-to-use-elk-for-docker-container-log-viewer.html","og_site_name":"EngineerBALL","article_publisher":"https:\/\/www.facebook.com\/engineerball","article_author":"https:\/\/www.facebook.com\/troueblemaker.khunpech?ref=tn_tnmn","article_published_time":"2016-09-28T11:04:37+00:00","og_image":[{"width":939,"height":511,"url":"https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/09\/rsz_screen-shot-2014-02-25-at-4-42-52-pm.png","type":"image\/png"}],"author":"ball","twitter_card":"summary_large_image","twitter_creator":"@engineerball","twitter_site":"@engineerball","twitter_misc":{"Written by":"ball","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/engineerball.com\/blog\/2016\/09\/28\/how-to-use-elk-for-docker-container-log-viewer.html","url":"https:\/\/engineerball.com\/blog\/2016\/09\/28\/how-to-use-elk-for-docker-container-log-viewer.html","name":"\u0e17\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e14\u0e39 Log \u0e02\u0e2d\u0e07 Docker Container \u0e1c\u0e48\u0e32\u0e19 ELK \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e07\u0e48\u0e32\u0e22 - EngineerBALL","isPartOf":{"@id":"https:\/\/engineerball.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/engineerball.com\/blog\/2016\/09\/28\/how-to-use-elk-for-docker-container-log-viewer.html#primaryimage"},"image":{"@id":"https:\/\/engineerball.com\/blog\/2016\/09\/28\/how-to-use-elk-for-docker-container-log-viewer.html#primaryimage"},"thumbnailUrl":"https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/09\/rsz_screen-shot-2014-02-25-at-4-42-52-pm.png","datePublished":"2016-09-28T11:04:37+00:00","dateModified":"2016-09-28T11:04:37+00:00","author":{"@id":"https:\/\/engineerball.com\/blog\/#\/schema\/person\/415320d0da2d392375528001aa6ea53e"},"breadcrumb":{"@id":"https:\/\/engineerball.com\/blog\/2016\/09\/28\/how-to-use-elk-for-docker-container-log-viewer.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/engineerball.com\/blog\/2016\/09\/28\/how-to-use-elk-for-docker-container-log-viewer.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/engineerball.com\/blog\/2016\/09\/28\/how-to-use-elk-for-docker-container-log-viewer.html#primaryimage","url":"https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/09\/rsz_screen-shot-2014-02-25-at-4-42-52-pm.png","contentUrl":"https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/09\/rsz_screen-shot-2014-02-25-at-4-42-52-pm.png","width":939,"height":511},{"@type":"BreadcrumbList","@id":"https:\/\/engineerball.com\/blog\/2016\/09\/28\/how-to-use-elk-for-docker-container-log-viewer.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/engineerball.com\/blog"},{"@type":"ListItem","position":2,"name":"\u0e17\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e14\u0e39 Log \u0e02\u0e2d\u0e07 Docker Container \u0e1c\u0e48\u0e32\u0e19 ELK \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e07\u0e48\u0e32\u0e22"}]},{"@type":"WebSite","@id":"https:\/\/engineerball.com\/blog\/#website","url":"https:\/\/engineerball.com\/blog\/","name":"EngineerBALL","description":"Damn Those Sweet Memories","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/engineerball.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/engineerball.com\/blog\/#\/schema\/person\/415320d0da2d392375528001aa6ea53e","name":"ball","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/engineerball.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d8d00c01f55942d7c8f2dbc70a9cefe0?s=96&d=monsterid&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d8d00c01f55942d7c8f2dbc70a9cefe0?s=96&d=monsterid&r=g","caption":"ball"},"description":"Teerapat Khunpech Live, Tech, Beers, Bike, Cafe Racer, Docker, Devops, Eco-System","sameAs":["https:\/\/engineerball.com","https:\/\/www.facebook.com\/troueblemaker.khunpech?ref=tn_tnmn","https:\/\/twitter.com\/engineerball"],"url":"https:\/\/engineerball.com\/blog\/author\/ball"}]}},"jetpack_featured_media_url":"https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/09\/rsz_screen-shot-2014-02-25-at-4-42-52-pm.png","jetpack_shortlink":"https:\/\/wp.me\/p3Nmbl-D6","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/engineerball.com\/blog\/wp-json\/wp\/v2\/posts\/2424"}],"collection":[{"href":"https:\/\/engineerball.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/engineerball.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/engineerball.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/engineerball.com\/blog\/wp-json\/wp\/v2\/comments?post=2424"}],"version-history":[{"count":12,"href":"https:\/\/engineerball.com\/blog\/wp-json\/wp\/v2\/posts\/2424\/revisions"}],"predecessor-version":[{"id":2440,"href":"https:\/\/engineerball.com\/blog\/wp-json\/wp\/v2\/posts\/2424\/revisions\/2440"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/engineerball.com\/blog\/wp-json\/wp\/v2\/media\/2437"}],"wp:attachment":[{"href":"https:\/\/engineerball.com\/blog\/wp-json\/wp\/v2\/media?parent=2424"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/engineerball.com\/blog\/wp-json\/wp\/v2\/categories?post=2424"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/engineerball.com\/blog\/wp-json\/wp\/v2\/tags?post=2424"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}