ELk之Logstash

ELK=ElasticSerch+Logstash+kibana

Logstash 是一个类似于kafka的开源的服务器端数据处理管道,能够同时从多个来源采集数据、转换数据,然后将数据发送到您最喜欢的 “存储库” 中,一般都是到ElasticSerch里

原理跟flume一样,直接从官网下载解压就能用

  • Logstash requires Java 8
  • Java 9 is not supported
  • 系统配置文件:$home/config/logstash.yml
  • 查看java -version
  • 创建业务配置文件 xxx.conf 配置如下:文档下一章节
  • 下载tar.gz包解压直接运行 bin/logstash -f xxx.conf

 常用命令:

输入input插件--file插件内的小插件

bin]# ./logstash-plugin list查看插件列表

输入源插件详细列表及使用:https://www.elastic.co/guide/en/logstash/current/input-plugins.html

常用的输入命令

file {
        //path表示监控文件名的路径,如果您使用/var/log/**/*.模糊匹配*.log文件
        //则路径必须是绝对的,不能是相对的
        path => "/data1/export/increment/day/*.es.wifiauth.*.gz"

        //排除不想监听的文件
        exclude => "1.log"

        //添加自定义的字段
        add_field => {"test"=>"test"}

        #增加标签
        tags => "tag1"

        #设置新事件的标志
        delimiter => "\n"
        
        //对监听的文件读取到的信息记录的位置,必须是一个文件路径
        sincedb_path => "/data1/export/logstash-6.4.2/data/es.increment.wifiauth.sdb"
        
        //设置多长时间会写入读取的位置信息
        sincedb_write_interval => 15

        //监听文件的起始位置,默认是将数据当作一种流,所以从end开始,处理旧数据则设为beginning
        start_position => "beginning"
    
        //多长时间扫描一次目录发现新文件,时间是stat_interval的整数倍,默认是15
        //每40*0.1秒扫描
        discover_interval => 40
        
        //设置多长时间检测文件是否修改,默认是1秒
        stat_interval => 0.1
        
        //您希望文件输入以何种模式进行操作。跟踪几个文件或读取许多内容完整的文件
        mode => "read"
        
        //值可以是:delete、log、log_and_delete中的任意一个。默认值是delete。
        //在读取模式下,当文件完成时应该执行什么操作。如果指定了delete,那么文件将被删除。
        //如果指定了log,则将被监视的文件的完整路径记录到file_completed_log_path设置中指定的文件中。也就是说当指定为log时,将path的路径记录到file_completed_log_path指定的文件中。
        //如果指定了log_and_delete,则执行上述操作。
        file_completed_action => "log"

        //将完全读取的文件路径附加到哪个文件。只有当file_completed_action为log或log_and_delete时,才指定文件的这个路径
        file_completed_log_path => "/data1/export/logstash-6.4.2/logs/gz-read-file-increment-wifiauth-completed.log"

        //对监视的文件以那种属性排序,时间或字典顺序
        file_sort_by => "path"

        //激活筛选器,并可以让kibana搜索到,filter阶段会用到
        type => "increment-wifiauth"
    }

过滤器

实时解析和转换数据,插件详细列表及使用:https://www.elastic.co/guide/en/logstash/current/filter-plugins.html

    //解析json事件
    json {
        source => "message"       //这个message是你json格式的一行行数据
    }
    //grok是将非结构化事件数据解析为字段,里面是用的正则表达式match函数
    grok {
        match => ["path","%{GREEDYDATA}/%{GREEDYDATA:file_type:WORD}\.es.*\.%{GREEDYDATA:file_year:WORD}-%{GREEDYDATA:file_month:WORD}-%{GREEDYDATA:file_day:WORD}\.gz"]
    }

//聚合由单个任务发起的多个事件的信息
aggregate
	
//对变异筛选器无法处理的字段执行一般更改
alter

//根据网络块列表检查IP地址
cidr

//为每个事件弄一个新的克隆
clone

//将逗号分隔的值数据解析为单个字段
csv

//解析字段中的日期
date

//把进入过滤器的都删除
drop

//添加关于IP地址的地理信息
geoip

//将非结构化事件数据解析为字段
grok

//解析键值对
kv

//检查指定字段是否保持在给定的大小或长度限制内
range

//睡眠一段指定的时间
sleep

//将多行消息分割为不同的事件
split

//截断超过给定长度的字段
truncate

 

输出

输出插件列表:https://www.elastic.co/guide/en/logstash/current/output-plugins.html

//以csv分割格式输出文件
csv

//在Elasticsearch中存储日志
Elasticsearch

//当收到输出时,将电子邮件发送到指定的地址
emil

//将事件写到kafka主题
kafka

//将事件写入磁盘上的文件
file

插件里都包含了自己的小专属插件,用的时候点击并查看样例

 

执行

-f:通过这个命令可以指定logstash的xx.conf文件,根据文件处理数据

-e:后面一般是指定配置文件内容,后加字符串 bin>./logstash -e ""

在输入内容后,会自动补上输入类型type,主机名hostname,版本号versio, 你输入的信息message,时间戳timestamp

参考:https://www.cnblogs.com/xing901022/p/4805586.html

大部分都是官网的,一切还得看官网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值