Logstash采集日志

本文介绍了Logstash的基本工作流程,包括输入(input)、过滤(filter)和输出(output)。详细讲述了Logstash的插件使用,如file、grok、drop、geoip等,并提供了阿里云服务器上部署Logstash的步骤及配置讲解。通过实例展示了Logstash如何从日志文件读取数据,经过过滤处理,最终输出到Elasticsearch。
摘要由CSDN通过智能技术生成

Logstash基本介绍和工作流程input,filter,output等说明

什么是logstash (文档地址 https://www.elastic.co/guide/en/logstash/current/index.html)

  1. 开源的日志收集引擎,具备实时传输的能力
  2. 读取不同的数据源,并进行过滤,开发者自定义规范输出到目的地
  3. 日志来源多(如系统日志,应用日志,服务器日志等)

流程讲解

  1. logstash通过管道pipeline进行传输,必选的两个组件是输入input和输出output,还有个可选过滤器filter
  2. logstash将数据流中等每一条数据称之为一个event,即读取每一行数据的行为叫做事件

#输入
    input {
      ...
    }

# 过滤器
    filter {
      ...
    }

# 输出
    output {
      ...
    }

 

Logstash插件input,filter和output的插件的基本使用


简单的配置 test.conf

input {  
  # 从文件读取日志信息
  file {  
     path => "/var/log/messages"
     type => "system"
     start_position => "beginning"
  	}  
}  
  
filter {  

}  
  
output {  
	#标准输出
     elasticsearch {
        hosts => ["localhost:9200"]      
        index => "logstash-test-%{type}-%{host}"        
    }
}  

input插件:https://www.elastic.co/guide/en/logstash/current/input-plugins.html
    file,http,kafka,rabbitmq等

filter插件:https://www.elastic.co/guide/en/logstash/current/filter-plugins.html
    grok(号称将非标准化的日志数据转换成标准化并且可搜索数据最好的方式,常用于处理Niginx,sysLog等日志)
    drop(跳过某些日志,不进入output)
    geoip(获取地理信息)

output插件:https://www.elastic.co/guide/en/logstash/current/output-plugins.html
    elasticSearch,cvs,email,file等

阿里云服务器部署Logstash 6,目录文件,配置讲解,基本功能测试

  1. 下载安装包:wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.2.tar.gz
  2. 解压:tar -zxvf logstash-6.2.2.tar.gz
  3. 快速启动(需要java8 jre,目前不支持java9):./bin/logstash -e 'input {stdin {}} output {stdout {}}'
  4. 目录文件说明:https://www.elastic.co/guide/en/logstash/6.2/dir-layout.html
  5. 配置讲解:https://www.elastic.co/guide/en/logstash/6.2/logstash-settings-file.html
    1. logstash.yml  修改 pipeline.workers,根据CPU核数增加1到2即可
    2. jvm.options      修改 xms和xmx为相同,一般是系统内存三份之二

Logstash采集输送日志input filter output流程测试

bin/logstash -f test1.conf  
./logstash -f ../config/test1.conf

codec的使用( Coder/decoder 两个单词首字母缩写)
    Codec: 解码编码 数据格式  
    好处 更方便logstash与支持自定义数据格式的运维产品进行使用

logstash更细化的处理流程
    input->decode->filter->encode->output  

配置一 test1.conf

input {
	 # 从文件读取日志信息 输送到控制台
file {
    path => "/Users/jack/Desktop/person/elk/elasticsearch-6.1.1/logs/elasticsearch.log"
    #codec => "json" ## 以JSON格式读取日志
    type => "elasticsearch"
    start_position => "beginning"
	}
}

# filter {
#
# }

output {
    # 标准输出 
    # stdout {}
    # 输出进行格式化,采用Ruby库来解析日志   
     stdout { codec => rubydebug }
}

filter使用
    例子
        切割插件mutate,随意输入一串以|分割的字符,比如 "123|000|ttter|sdfds*=123|dfwe

配置二 test2_filter.conf

input {
   stdin {}
}

filter {  
    mutate {  
        split => ["message", "|"]  
    }  
}  

output {
    # 标准输出 
    # stdout {}
    # 输出进行格式化,采用Ruby库来解析日志   
     stdout { codec => rubydebug }
}

 

logstash案例实战之读取日志输出到elasticsearch

logstash配置文件:配置三 test3_es.conf

input {
        file {
                path => "/Users/jack/Desktop/person/elk/elasticsearch-6.1.1/logs/elasticsearch.log"
                type => "elasticsearch"
                start_position => "beginning" #从文件开始处读写
        }
}

output{
    elasticsearch{
        hosts=>["127.0.0.1:9201"]  
        index => "es-message-%{+YYYY.MM.dd}"
     }
   stdout{codec => rubydebug}
}

验证
    查看索引列表 http://localhost:9201/_cat/indices?v
    查看数据 http://localhost:9201/es-message-2018.02.26/_search
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值