美文网首页Docker
Docker部署EFK(elasticsearch+fluent

Docker部署EFK(elasticsearch+fluent

作者: Rakutens | 来源:发表于2020-04-13 13:42 被阅读0次
  • 前言
    EFK作为ELF的替代方案,是目前比较火的日志分析平台套件,网上很多教程都旧了并且写的含混不清,所以决定自己写一遍,希望能为大家带来帮助。

  • 创建专用网络

docker network create logging
  • 运行Elasticsearch(用于收集保存log)
启动约需2分钟,需耐心等待

docker run -d \
--name elasticsearch \
--net logging \
-p 9200:9200 \
-p 9300:9300 \
-e TZ=Asia/Shanghai \
-e "discovery.type=single-node" \
elasticsearch:7.6.2
  • 运行Kibana(用于分析显示log)
docker run -d \
--name kibana \
--net logging \
-p 5601:5601 \
-e TZ=Asia/Shanghai \
-e ELASTICSEARCH_URL=http://elasticsearch:9200 \
kibana:7.6.2
  • 自定义Fluentd配置文件docker-fluentd.conf
#默认转发所有9200端口数据
<source>
   @type forward
</source>

#多开个端口以后给syslog用
<source>
  @type syslog
  port 8888
  tag  rsyslog
</source>

#将匹配规则的数据存到elasticsearch(其实就是所有数据都存)
<match **>
  @type elasticsearch
  host elasticsearch #你的elasticsearch地址或docker实例名
  port 9200
  flush_interval 10s
  logstash_format true  #设置以后index为logstash-日期,代替index_name的值,并且索引添加@timestamp字段记录日志读取时间
  logstash_prefix ${tag}  #设置以后索引会以tag名称-日期进行命名
  index_name ${tag}-%Y.%m.%d
  type_name  ${tag}-%Y.%m.%d
  include_tag_key true  #把tag当做字段写入ES
  tag_key @log_name
  <buffer tag, time>  #让index_name ${tag}-%Y.%m.%d 时间格式生效
    timekey 1h
  </buffer>
</match>

  • 生成一个带插件的Fluendtd镜像

官方提供的镜像不包含elasticsearch插件,所以我们得自己生成一个

#编辑Dockerfile
FROM fluentd
USER root
RUN gem install fluent-plugin-elasticsearch \
fluent-plugin-tail-ex \
fluent-plugin-tail-multiline

USER fluent
#多留个端口出来供以后转发用
EXPOSE 24224 24224/udp 8888 

#docker build
docker build -t my-fluentd .
  • 运行Fluentd(抓取log)
docker run -d \
--name fluentd \
--net logging \
-p 24224:24224 \
-p 24224:24224/udp \
-p 8888:8888 \
-e TZ=Asia/Shanghai \
-e FLUENTD_CONF=docker-fluentd.conf \
-v /path/to/dir/docker-fluentd.conf:/fluentd/etc/docker-fluentd.conf \
-v /path/to/dir:/fluentd/log \
fluentd
  • 为所有运行的镜像添加参数
如不在同一网段中,请将fluentd:24224改为指定ip

--log-driver=fluentd \
--log-opt fluentd-address=fluentd:24224 \
--log-opt tag="{{.ImageName}}/{{.Name}}/{{.ID}}" \

例如:
docker run -d
-e TZ=Asia/Shanghai \
--log-driver=fluentd \
--log-opt fluentd-address=fluentd:24224 \
--log-opt tag="{{.ImageName}}/{{.ID}}" \
-p 80:80 \
-p 443:443 \
nginx

tag参数可以帮我们过滤出想要的数据,非常有用,不建议修改

相关文章

  • Docker部署EFK(elasticsearch+fluent

    前言EFK作为ELF的替代方案,是目前比较火的日志分析平台套件,网上很多教程都旧了并且写的含混不清,所以决定自己写...

  • docker 部署EFK(elasticsearch,kiban

    fluentd对比Logstash 对比方面LogstashFluentd内存占用启动1G左右启动60M左右CPU...

  • 搭建EFK

    参见 fluentd官方集成docker-logging-efk-compose docker-compose....

  • docker-compose 部署EFK(Elasticsear

    本文是使用docker-compost搭建efk没有安装docker-compose的可以参考我另一篇文章http...

  • kuberntes 日志管理-EFK框架

    EFK框架: 下载所需要的镜像 部署elasticsearch 部署kibana及fluentd 浏览器访问ip:...

  • Docker集群日志收集之EFK实践

    docker集群中日志收集采用EFK(elasticsearch、fluent、kibana)方案。 Elasti...

  • efk简单部署

    一、说明 EFK是由ElasticSearch(es)、Filebeat和Kiabana三个开源工具组成: 1.E...

  • efk 部署笔记

    1.构建一个namespace:logging2.首先开始部署一个3节点的 Elasticsearch 集群2.1...

  • 单机部署EFK

    最近急需日志分析工具,来辅助系统运维,不然的话,系统出问题,一个个登录用tail看日志太浪费时间,前段时间部署了一...

  • Prometheus+Grafana监控Docker主机

    监控系统部署 Docker部署cAdvisor 部署 访问 Docker部署Prometheus 部署 修改配置 ...

网友评论

    本文标题:Docker部署EFK(elasticsearch+fluent

    本文链接:https://www.haomeiwen.com/subject/wwlwmhtx.html