Logstash +Filebeat容器化

镜像

官方镜像地址

1 | docker pull docker.elastic.co/logstash/logstash:7.10.2

启动

1 | docker run  docker.elastic.co/logstash/logstash:7.10.2

管道配置

如果您不向Logstash提供管道的配置,它将使用最小配置运行,该配置侦听来自Beats输入插件的消息 并输出到stdout

1. 可以将本地的含有配置文件的整个目录以 bind-mounts 的方式和容器内的目录 /usr/share/logstash/pipeline/ 进行映射。

1 | docker run --rm -it --mount type=bind,src=/logstash/pipeline/,dst=/usr/share/logstash/pipeline/ docker.elastic.co/logstash/logstash:7.10.2

2. 也可以将具体的管道配置文件映射到容器中。
以下示例显示的是,如何配置Logstash以侦听本机的 5044 端口来获取由任何 Beats 插件(比如: filebeat)发送来的事件,并输出到标准输出的。
logstash_stdout.conf

1 | mkdir Logstash
2 | cd Logstash
3 | vim logstash_stdout.conf
  input {
  beats {
    port => 5044             # 监听的端口
    host => "0.0.0.0"      # 监听的本地 ip 地址,这里是全部地址
  }
}
output {
  stdout { codec => rubydebug }
}

运行容器

1 | docker run -itd --rm --name=logstash71 --mount type=bind,src=$(pwd)/logstash_stdout.conf,dst=/usrl/share/logstash/pipeline/logstash.conf docker.elastic.co/logstash/logstash:7.10.2

登录容器

1 | docker exec -it logstash71 bash

简单介绍

[官网]

(https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-input-log.html)
Filebeat 是一个轻量级的托运人,用于转发和集中日志数据。Filebeat作为代理安装在服务器上,监视您指定的日志文件或位置,收集日志事件,并将它们转发到Elasticsearch或 Logstash进行索引。

以下是 Filebeat 的工作原理:启动Filebeat时,它会启动一个或多个输入,这些输入将查找您指定的位置的日志数据。
对于Filebeat找到的每个日志,Filebeat启动一个收集器。每个收集器为新内容读取单个日志,并将新日志数据发送到 libbeat,libbeat 聚合事件并将聚合数据发送到您为 Filebeat 配置的输出。
在这里插入图片描述

获取镜像

1 | docker pull docker.elastic.co/beats/filebeat:7.10.2

配置输入和输出

容器内的配置文件位置是 /usr/share/filebeat/filebeat.yml

Filebeat 容器默认没有配置输入,默认的输出目标是 elasticsearch:9200

为了调试目的,下面的示例是配置输入为本地的某一个 Nginx 日志格式的日志文件,输出是 console, 就是输出到屏幕终端。

1 | vi filebeat.yml
   filebeat.inputs:
   - type: log
   paths:
    - /*.log

  output.console:
  pretty: true 

假如你的文件的编码不是 utf-8, 这可能会导致乱码的现象,解决办法是使用配置项 encoding 指定具体的编码。比如 encoding: gbk
如果pretty设置为true,则写入stdout的事件将被很好地格式化。默认值为false。

运行容器

1、准备日志文件

1 | vim sky.log
95.213.177.126 - - [18/Jul/2017:00:01:09 +0800] "POST http://check.proxyradar.com/azenv.php HTTP/1.1" 404 326 "https://proxyradar.com/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)" "-"
202.108.211.56 - - [18/Jul/2017:00:03:23 +0800] "GET http://1.1.1.1/ HTTP/1.1" 200 6228 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21" "-"
221.228.109.90 - - [18/Jul/2017:01:52:17 +0800] "GET http://www.sharkyun.com/ HTTP/1.1" 200 6228 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0" "119.61.20.114"
221.228.109.90 - - [18/Jul/2017:01:52:17 +0800] "GET http://www.sharkyun.com/css/style_eeoweb.css HTTP/1.1" 200 11988 "https://www.sharkyun.com/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0" "119.61.20.114"
221.228.109.90 - - [18/Jul/2017:01:52:18 +0800] "GET http://www.sharkyun.com/mobile/js/deviceType.js HTTP/1.1" 200 1055 "https://www.sharkyun.com/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0" "119.61.20.114"
221.228.109.90 - - [18/Jul/2017:01:52:18 +0800] "GET http://www.sharkyun.com/js/jplayer/skin/black/css/style.css HTTP/1.1" 200 3339 "https://www.sharkyun.com/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0" "119.61.20.114"
221.228.109.90 - - [18/Jul/2017:01:52:18 +0800] "GET http://www.sharkyun.com/js/index_eeoweb.js HTTP/1.1" 200 910 "https://www.sharkyun.com/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0" "119.61.20.114"
221.228.109.90 - - [18/Jul/2017:01:52:18 +0800] "GET http://www.sharkyun.com/js/easySlider.js HTTP/1.1" 200 2431 "https://www.sharkyun.com/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0" "119.61.20.114"
221.228.109.90 - - [18/Jul/2017:01:52:18 +0800] "GET http://www.sharkyun.com/js/require_eeoweb.js HTTP/1.1" 200 7161 "https://www.sharkyun.com/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0" "119.61.20.114"
221.228.109.90 - - [18/Jul/2017:01:52:18 +0800] "GET http://www.sharkyun.com/js/jquery.js HTTP/1.1" 200 46467 "https://www.sharkyun.com/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0" "119.61.20.114"

2、使用自定义的配置文件运行容器
我们上面的配置文件是输入到标准输出的,要想看到效果就不能让容器在后台运行了。

1 | docker run  -it --rm -v $PWD/sky.log:/skysky.log -v $PWD/filebeat.yml:/usr/share/filebeat/filebeat.yml docker.elastic.co/beats/filebeat:7.10.2
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值