Elasticsearch+Fluentd+Kibana整合全流程

Elasticsearch+Fluentd+Kibana整合全流程


一、Docker安装Elasticsearch

1.1 创建一个网络名为log且driver为bridge的网络

docker network create log

1.2 创建单节点的Elasticsearch

docker run -d --name elasticsearch --net log -p 9200:9200 -p 9300:9300 -e TZ=Asia/Shanghai -e "discovery.type=single-node" elasticsearch:7.8.1
二、Docker安装Kibana

2.1 安装Kibana

docker run -d --name kibana --net log -p 5601:5601 -e TZ=Asia/Shanghai -e ELASTICSEARCH_URL=http://elasticsearch:9200 kibana:7.8.1
三、Docker安装Fluentd

3.1 创建含有fluent-plugin-elasticsearch的Dockerfile

FROM fluent/fluentd
RUN ["gem", "install", "fluent-plugin-elasticsearch", "--no-rdoc", "--no-ri"]
# docker build -t docker-fluentd .

3.2 创建td-agent client的td-agent.conf


 #采用in-tail的插件,相当于tail -F
  @type tail
  #指定input的文件路径多个文件以,分隔
   path /logs/gpos/order/%Y-%m-%d/*,/logs/gpos/action/%Y-%m-%d/*
   #保存上次读取到的记录位置
   pos_path /logs/lastRecord/logs
   #从文件头开始读
   read_from_head true
   #指定tag名称
   tag log.gpos

    # 多行解析插件
    @type multiline
    # 指定开始解析的格式
    format_firstline /\d{4}-\d{1,2}-\d{1,2}/
    # 格式为 2020-01-01 00:00:00 [thread1] INFO pos_xxx - {}
    format1 /^(?\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}) (?[^\s]+) (?[^\s]+) (?[^\s]+) - (?[\s\S]*)/


#匹配多个tag可使用通配符匹配**.*

  # output的类型为转发
  @type forward
  # server的ip与port
  
    host xxx.xxx.xxx.xxx
    port 24224
  


3.3 创建td-agent server的td-agent.conf


  @type forward
  port 24224

# 匹配所有

 # 存储类型为es
  @type elasticsearch
  host elasticsearch
  port 9200
  index_name ${tag}
  type_name ${tag}
  logstash_format true
  #index的前缀,不指定默认为logstash-
  logstash_prefix ${tag}
  include_tag_key true
  tag_key @log_name

 @type json

# 刷新缓存的时间,fluentd默认缓存到内存中,也可以指定缓存的文件路径 path /path/to/dir
 
   flush_interval 10s
 


3.4 启动td-agent client

docker run -d --name fluentd --net log -p 24224:24224 -p 24224:24224/udp -e TZ=Asia/Shanghai -e FLUENTD_CONF=docker-fluentd.conf -v /logs/gpos:/logs/gpos -v /etc/td-agent/td-agent.conf:/fluentd/etc/docker-fluentd.conf docker-fluentd

3.5 启动td-agent server

docker run -d --name fluentd --net log -p 24224:24224 -p 24224:24224/udp -e TZ=Asia/Shanghai -e FLUENTD_CONF=docker-fluentd.conf -v /etc/td-agent/td-agent.conf:/fluentd/etc/docker-fluentd.conf docker-fluentd

#非docker方式启动 systemctl start td-agent
四、Kibana展示

你可能感兴趣的:(EFK,java,docker,elasticsearch)