diff --git a/efk/docker-compose.yml b/efk/docker-compose.yml
new file mode 100644
index 0000000..2dc4835
--- /dev/null
+++ b/efk/docker-compose.yml
@@ -0,0 +1,41 @@
+version: "3"
+services:
+ web:
+ image: httpd
+ ports:
+ - "80:80"
+ links:
+ - fluentd
+ logging:
+ driver: "fluentd"
+ options:
+ fluentd-address: localhost:24224
+ tag: httpd.access
+
+ fluentd:
+ build: ./fluentd
+ volumes:
+ - ./fluentd/conf:/fluentd/etc
+ links:
+ - "elasticsearch"
+ ports:
+ - "24224:24224"
+ - "24224:24224/udp"
+
+ elasticsearch:
+ image: docker.elastic.co/elasticsearch/elasticsearch:8.1.2
+ container_name: elasticsearch
+ environment:
+ - "discovery.type=single-node"
+ - xpack.security.enabled=false
+ expose:
+ - "9200"
+ ports:
+ - "9200:9200"
+
+ kibana:
+ image: docker.elastic.co/kibana/kibana:8.1.2
+ links:
+ - "elasticsearch"
+ ports:
+ - "5601:5601"
diff --git a/efk/fluentd/Dockerfile b/efk/fluentd/Dockerfile
new file mode 100644
index 0000000..bd32e7c
--- /dev/null
+++ b/efk/fluentd/Dockerfile
@@ -0,0 +1,6 @@
+# fluentd/Dockerfile
+
+FROM fluent/fluentd:v1.12.0-debian-1.0
+USER root
+RUN ["gem", "install", "fluent-plugin-elasticsearch", "--no-document", "--version", "5.2.4"]
+USER fluent
diff --git a/efk/fluentd/conf/fluent.conf b/efk/fluentd/conf/fluent.conf
new file mode 100644
index 0000000..bab3894
--- /dev/null
+++ b/efk/fluentd/conf/fluent.conf
@@ -0,0 +1,28 @@
+# fluentd/conf/fluent.conf
+
+
+
+
+ @type copy
+
+
+ @type elasticsearch
+ host elasticsearch
+ port 9200
+ logstash_format true
+ logstash_prefix fluentd
+ logstash_dateformat %Y%m%d
+ include_tag_key true
+ type_name access_log
+ tag_key @log_name
+ flush_interval 1s
+
+
+
+ @type stdout
+
+