文章目录

  • 一. 简介
  • 二. 实现
  • 2.1 下载安装Logstash
  • 2.2 配置输入端Filebeat
  • 2.3 配置logstash
  • 源码地址
  • 项目推荐


该系列博客是Logstash的学习应用,部分示例来自官方文档。
参考:
官方文档拼接在一起多个输入和输出插件编辑

一. 简介

示例参考官网,在本部分中,您将创建一个Logstash管道,该管道从控制台和Filebeat客户端获取输入,然后将信息发送到控制台,并将信息直接写到文件中。

二. 实现

可以先参看上一篇博客,这示例基于它基础上扩展。(也可以忽略)
【弄nèng - Logstash】入门篇(二)—— 使用Logstash解析Apache Web日志(使用Filebeat采集数据)

2.1 下载安装Logstash

下载地址:传送门 解压即可(需要先安装JDK8)

2.2 配置输入端Filebeat

1.准备日志文件
下载地址: Here 解压到E:\technology\elk\beat\目录下(任意目录即可)

2.安装Filebeat
Logstash的默认安装包括Beats input插件。Beats输入插件使Logstash能够从Elastic Beats框架接收事件

  • 2.1 下载安装安装很简单,下载zip包解压即可,下载地址: 传送门
  • 2.2 解压之后修改filebeat.yml,用以下几行替换内容。确保paths指向logstash-tutorial.log您先前下载的示例Apache日志文件 。
filebeat.prospectors:
- type: log
  paths:
    - E:\technology\elk\beat\logstash-tutorial.log\*
  fields:
    level: debug
output.logstash:
  hosts: ["localhost:5044"]

output.logstash将尝试连接端口5044
paths 处理的文件的绝对路径
level: debug 代表在每个event中添加level=debug字段

  • 2.3 运行Filebeat,在logstash启动之后再启动Filebeat,不然Filebeat会提示连接不到5044
./filebeat -e -c filebeat.yml -d "publish"

*如果启动filebeat后没有数据输出,可以手动改下读取的日志文件,因为filebeat默认每次从上次读取的offset后开始读取 *

2.3 配置logstash

1. 编写logstash配置文件
在logstash-6.0.0\bin创建配置文件(任意目录即可,启动时需要指定目录)
filebeat_std_file.conf

input {
	stdin { 
	}
    beats {
        port => "5044"
    }
}
filter {
    grok {
        match => { "message" => "%{COMBINEDAPACHELOG}"}
    }
	geoip {
        source => "clientip"
    }
}
output {
    stdout { 
		codec => rubydebug 
	}
	file {
        path => "E:\test.txt"
    }
}

输入源有两个,控制台和beat
输出源有两个,控制台和file

2.启动logstash

cd到Logstash的根目录,执行启动命令 (windows用cmd终端进入)

cd logstash-6.0.0
bin/logstash -f filebeat_std_file.conf
  • -e表示在启动时直接指定pipeline配置
  • -f表示使用配置文件启动
  • –config.test_and_exit 选项解析配置文件并报告任何错误
  • –config.reload.automatic 选项允许自动重新加载配置,这样您就不必每次修改配置文件时都要停止并重新启动Logstash

3.测试

启动成功filebeat终端显示如下:

logstash配置output 配置多个kafka logstash多个input_kafka


logstash终端显示如下:

logstash配置output 配置多个kafka logstash多个input_配置文件_02


在logstash控制台输入123之后,在文件中和控制台就可以看到效果。

文件内容:

logstash配置output 配置多个kafka logstash多个input_logstash_03