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

<source>
 #采用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
<parse>
    # 多行解析插件
    @type multiline
    # 指定开始解析的格式
    format_firstline /\d{4}-\d{1,2}-\d{1,2}/
    # 格式为 2020-01-01 00:00:00 [thread1] INFO pos_xxx - {}
    format1 /^(?<log_time>\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}) (?<thread>[^\s]+) (?<level>[^\s]+) (?<type>[^\s]+) - (?<message>[\s\S]*)/
</parse>
</source>
#匹配多个tag可使用通配符匹配**.*
<match log.gpos>
  # output的类型为转发
  @type forward
  # server的ip与port
  <server>
    host xxx.xxx.xxx.xxx
    port 24224
  </server>
</match>

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

<source>
  @type forward
  port 24224
</source>
# 匹配所有
<match *.**>
 # 存储类型为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
<format>
 @type json
</format>
# 刷新缓存的时间,fluentd默认缓存到内存中,也可以指定缓存的文件路径 path /path/to/dir
 <buffer>
   flush_interval 10s
 </buffer>
</match>

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展示

Kibana展示效果

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值