ELK入门系列(03)——Logstash的快速安装

2019-08-13  本文已影响0人  先生_吕

1、前言

Logstash是一个开源的服务器端数据处理管道,可以同时从多个数据源获取数据,并对其进行转换,然后将其发送到你最喜欢的“存储”。(当然,我们最喜欢的是Elasticsearch)。简单的说,logstash就是一个类似于flum的文件监听工具

2、原理介绍及组件

1565418958(1).jpg

logstash在ELK系统中扮演着数据搬运的角色,举足轻重。我们可以看到logstash内部主要分为三个组件,输入(input),过滤器(filter),输出(output)

2.1、输入(input)
input.jpg

支持插件:elasticsearch,file,http_poller,jdbc,log4j,rss,rabbitmq,redis,syslog,tcp,udp…等

2.2、过滤器(filter)
filter.jpg

支持插件:grok,json,mutate,split …等

2.3、输出(output)
output.jpg

支持插件:email,elasticsearch,file,http,mongodb,rabbitmq,redis,stdout,tcp,udp …等

3、logstash的优缺点

3、下载解压安装

最新版 https://www.elastic.co/downloads/logstash

2.3.4版 https://www.elastic.co/downloads/past-releases/logstash-2-3-4

tar -xzvf logstash-2-3-4.tar.gz

4、配置结构

logstash在启动时要指定配置,这个配置中需要配置(input、filter、output)

#输入
Input{
}
#加工过滤
Filter{
}
#输出
Output{
}

以下我们简单举几个配置案例,并根据案例去启动观察

执行: ./logstash -f ./test*.conf

4.1、简单的输入输出 test1.conf
input{
 stdin{}
}

output{
 stdout{}
}
test1.jpg
4.2、输入输出json test2.conf
input{
 stdin{}
}

output{
 stdout{
  codec => json  ##json输出
 }
}
test2.jpg
4.3、监听文件输出json test3.conf
input{
 file{
  path => "/usr/local/logs/*.log" ##指定类型为file,指定文件路径
 }
}

output{
 stdout{
  #codec => json
 }
}
4.4、监听文件输出到kafka test4.conf
input{
 file{
  path => "/usr/local/logs/*.log"
 }
}

output{
 stdout{codec => rubydebug}
 kafka{
  bootstrap_servers => "127.0.0.1:9092"
  codec => json
  topic_id => "kafka-logstash"
  compression_type => "snappy"
 }
}
4.5、监听文件输出到ES test5.conf
input{
 file{
  path => "/usr/local/logs/*.log"
 }
}

output{
 elasticsearch{
  hosts=>["127.0.0.1:9200"]
  index => "es-message-%{+YYYY.MM.dd}"
 }
 stdout{codec => rubydebug}
}
4.6、监听kafka输出到ES test6.conf
input{
 kafka{
  bootstrap_servers => ["127.0.0.1:9092"] ##kafka地址,可以是集群
  ##client_id => "kafka-logstash"
  auto_offset_reset => "latest"  ##从最新的偏移量开始消费
  topics => ["kafka-logstash"]  ## 数组类型,可配置多个topic
  decorate_events => true  #此属性会将当前topic、offset、group、partition等信息也带到message中
  consumer_threads => 5
 }
}

output{

 elasticsearch{
  hosts=>["127.0.0.1:9200"]
  index => "rc-admin-business-log"
 }
 stdout{
  #codec => json
 }
}

以上是logstash的一些简单使用配置,logstash有非常灵活的配置,具体可以参考官网文档

相关参考:

上一篇 下一篇

猜你喜欢

热点阅读