本文章仅用于自己记录学习docker-compose
DockerCompose一键启动es+kibana+fluentd
新建 docker-compose.yml 如下
version: '3'
services:
# es
elasticsearch:
image: elasticsearch:7.14.0
container_name: es
privileged: true
environment:
# 配置jvm大小
# ES_JAVA_OPTS: -Xms1g -Xmx1g
node.name: es-single
cluster.name: es-cluster
discovery.type: single-node
# 开启es跨域
http.cors.enabled: "true"
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
# 安全控制(根据个人需要选择打开或关闭)
xpack.security.enabled: "false"
xpack.security.transport.ssl.enabled: "false"
# ELASTIC_PASSWORD: "123456"
TZ: "Asia/Shanghai"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./elasticssearch/data:/usr/share/elasticsearch/data
- ./elasticssearch/plugins:/usr/share/elasticsearch/plugins
- ./elasticssearch/logs:/usr/share/elasticsearch/logs
ports:
- "9200:9200"
- "9300:9300"
## 指定ip
networks:
game:
ipv4_address: 172.22.1.5
#kibana
kibana:
image: kibana:7.14.0
restart: always
container_name: kibana
ports:
- "5601:5601"
depends_on:
- elasticsearch
environment:
ELASTICSEARCH_HOSTS: '["http://172.22.1.5:9200"]'
ELASTICSEARCH_USERNAME: 'elastic'
ELASTICSEARCH_PASSWORD: '123456'
TZ: "Asia/Shanghai"
## 指定ip
networks:
game:
ipv4_address: 172.22.1.6
#fluentd
fluentd:
image: monotek/fluentd-elasticsearch
container_name: fluentd
# restart: always
environment:
TZ: "Asia/Shanghai"
volumes:
- ./fluentd/conf/fluentd.conf:/etc/fluent/fluent.conf
- ./fluentd/logs:/usr/local/logs
depends_on:
- elasticsearch
## 指定ip
networks:
game:
ipv4_address: 172.22.1.7
ports:
# 根据自己的fluentd.conf配置的端口映射!!
- 34224:24224
networks:
game:
name: game
ipam:
driver: default
config:
- subnet: 172.22.1.0/24
内部所涉及到的 volumes 下的本地映射的文件夹需要自己创建,比如
volumes:
- ./fluentd/conf/fluentd.conf:/etc/fluent/fluent.conf
- ./fluentd/logs:/usr/local/logs
需要在在yml文件的同级目录下(根据情况修改)
创建文件 fluentd/conf/fluentd.conf
和空文件夹 fluentd/logs/
es也需要创建
fluentd.conf 示例如下
<source>
@type forward
port 24224
bind 0.0.0.0
</source>
<match **table_log>
@type elasticsearch
host "172.22.1.5"
port 9200
logstash_format true
logstash_prefix table_log
logstash_dateformat %Y%m%d
include_tag_key true
type_name access_log
tag_key @log_name
flush_interval 1s
</match>