java相关框架 - logstash 使用


Logstash是一款轻量级的日志搜集处理框架,可以方便的把分散的、多样化的日志搜集起来,并进行自定义的处理,然后传输到指定的位置,比如某个服务器或者文件。

下载

Logstash是开箱即用的软件,下载和Elasticsearch一样的版本即可。

使用

通过命令行,进入到logstash/bin目录,执行下面的命令:

./logstash -e ""

 

工作原理

  Logstash使用管道方式进行日志的搜集处理和输出。有点类似*NIX系统的管道命令 xxx | ccc | ddd,xxx执行完了会执行ccc,然后执行ddd。

  在logstash中,包括了三个阶段:

  输入input --> 处理filter(不是必须的) --> 输出output

 

 

  每个阶段都由很多的插件配合工作,比如file、elasticsearch、redis等等。

  每个阶段也可以指定多种方式,比如输出既可以输出到elasticsearch中,也可以指定到stdout在控制台打印。

 

  由于这种插件式的组织方式,使得logstash变得易于扩展和定制。

 

命令行中常用的命令

  -f:通过这个命令可以指定Logstash的配置文件,根据配置文件启动logstash

 

 

  -e:后面跟着字符串,该字符串可以被当做logstash的配置(如果是“” 则默认使用stdin作为输入,stdout作为输出)

 

  -l:日志输出的地址(默认就是stdout直接在控制台中输出)

 

  -t:测试配置文件是否正确,然后退出。

 

配置文件说明

  前面介绍过logstash基本上由三部分组成,input、output以及用户需要才添加的filter,因此标准的配置文件格式如下

input {...} 
filter {...} 
output {...}

 

  说完这些,简单的创建一个配置文件的小例子看看:

Case1:将log里的内容输出到控制台

先准备test.log

 

 

# vi /home/elk_user/logstash-6.5.4/config/mytest02.conf

input {
    file {
        path => "/home/elk_user/logstash-6.5.4/config/test.log"
        start_position => beginning
    }
}
filter {

}
output {
    stdout {}
}

 

执行命令得到如下信息:

 

 

 Case 2 : Logstash 输出到Elasticsearch

# ./logstash -e 'input { stdin {} } output { elasticsearch { hosts => ["127.0.0.1:9200"] index => "logstash-test-%{+YYYY.MM.dd}" } }'

 

 

 

 

 

  Case 3 : Logstash 输出日志内容到Elasticsearch

# vi /home/elk_user/logstash-6.5.4/config/mytest03.conf

input {
    file {
        path => "/home/elk_user/logstash-6.5.4/config/test.log"
        start_position => beginning
    }
}
filter {

}
output {
  elasticsearch {
    hosts => ["127.0.0.1:9200"]
    index => "logstash-log-%{+YYYY.MM.dd}"
  }
}

 

# ./logstash -f ../config/mytest03.conf

 

 

 

 如果这个新的索引不能出来的话,需要往test.log里再插入几条数据


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM