logstash简单介绍

Logstash 简介
logstash 分为三个部分 输入(input)过滤(filter)输出(output)

一:输入(input)
1:默认 可以用键盘输入
eg:input{ stdin{} }
2:文件输入 从文件中获取数据 (需要用的)
eg:input{
file{
path=>”/User/lee/logstash/sdklog_2018-03-10.log”
type=>””
start_position=>”beginning”
}
}
path: 指定需要解析文件路径
1, 若文件为单个文件可以直接指定
2, 若要指定多个文件可以使用数组模式
eg:path=>[“/User/lee/logstash/sdklog_2018-03-20.log”,
”/User/lee/logstash/sdk_2018_03_21.log”]
3, 若需要解析某个文件夹下的文件可以指定文件夹路径
eg: path=>”/User/lee/logstash/*”logstash下文件
eg:path=>”/User/lee/logstash/*.log”logstash下后缀为log
3, 若不想监听某个文件可以使用 exclude 排除出去
type:用来标记事件类型 我们可以根据事件类型 做不同的操作
eg:filter{
if[type]==”web”{
…所需操作
}
}
start_position: 用于指定logstash 从什么位置开始读取文件数据,默认为
从末尾,若要从头开始可以指定为
eg: start_position=>”beginning”
其他字段:
1. discover_interval 指定每隔多久检查path下是否有新文件默认15秒
2. stat_interval 每隔多久检查监听文件状态 默认为1秒
注意:
1. FileWatch 只支持文件的绝对路径 不会自动递归目录
2. Start_position 仅仅对从未监听过的文件起作用

二:过滤(filter)
1:grok正则捕获 用grop中定义好的正则表达式 获取所需字段
eg:filter{
grok{
patterns_dir=>[“/User/lee/logstash/patterns”]
match=>[“message”,”%{LOGDATE:logdate IP:ip}”]
add_field=>{“newfield”=>”value”}
remove_field=>[“field1”,”field2”]
}
}
patterns_dir :自定义正则表达式存放目录 logstash 默认已经有了大量的
正则表达式 如:上边的IP 但是若是不满足需求可以自定义
正则 如上边的LOGDATE
match : 匹配message 获取我们所需要的字段 上边将获取到
logdate与ip
add_field :添加字段
remove_field: 删除不需要的字段

注意: grok虽然为使用很广泛的插件 但是比较消耗资源

2:dissect 解析

dissect{
mapping=>{
message=>”<%{line}><%{logdate}><%{logtag}><%{logcomm}><%{msg}>”
}
covert_datatype=>{
line=>”int”
}
}
mapping 如上边 message将根据<> 将切换为所需的数据
covert_datatype 指定特定字段数据类型

3 :data时间处理
filter{
grok{
match=>{“path”=>
”%{GREEDYDATA}/%{ GREEDYDATA:userId}_%{ GREEDYDATA :logdata}”}
}
date{
match=>[“logdata”,”yyyy-MM-dd HH:mm:ss SSS”]
target=>”@timestamp”
locale=”en”
timezone=>”+00:00”
}
}
注释:上边获取到我们写log、的时间 但是elasticsearch默认使用timestamp时间 因此将我们获取到的时间赋值给timestamp 但是由于时区问题 比北京时间慢了8个小时 locale 与timezone 将时间转换为北京时间

三:输出 output
1;默认输出 到控制台
output{
stdout{}
}
2:输出到文件中
output{
file{
path =>”/User/lee/logstash/log.txt”
}
}
注释:输出到logstash目录下的log.txt中

3:输出到elasticsearch 中

output{
elasticsearch{
hosts=>http://172.16.16.132:9200
user=>”vrv”
password=>”123456”
}
}
hosts :elasticsearch 的地址
user :x-pack中设置的用户名
password x-pack中设置的用户密码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值