美文网首页ELK文集
搭建ELK(ElasticSearch+Logstash+Kib

搭建ELK(ElasticSearch+Logstash+Kib

作者: 933952e4f1d6 | 来源:发表于2017-09-12 15:30 被阅读50次

    Logstash通常被分为shipper和indexer两种角色,其中shipper负责收集转发日志至redis,而indexer负责将redis传送过来的日志输出到elasticSearch,如下图(图片来自网络,如有侵权,可联系我删除)


    1、数据定义与类型
    1)Logstash用 {} 来定义区域,用 字段名=>字段内容 来定义变量,变量都是以键值对的形式体现的,例如

        mutate{  
            add_field{  
                debug=>true ##bool类型  
                ip=>"192.168.1.1" ##string类型  
                port=>5602 ##number类型  
            }  
        }  
    }  
    

    2)Logstash支持少量的数据值类型

    debug=>true ##bool类型  
    ip=>"192.168.1.1" ##string类型  
    port=>5602 ##number类型  
    match => ["windows", "linux", "mac"]  ##array类型  
    ##hash类型  
    options => {  
        today=>"Monday",  
        tommrow=>"Tuesday"  
    }  
    

    2、字段引用于条件判断
    1)在logstash中引用一个字段,只需在[]里写上字段名即可,如

    if [port] == 5602 {  
       ##...  
    }  
    

    2)条件判断

    ==(等于), !=(不等于), <(小于), >(大于), <=(小于等于), >=(大于等于)  
    =~(匹配正则), !~(不匹配正则)  
    in(包含), not in(不包含)  
    and(与), or(或), nand(非与), xor(非或)  
    ()(复合表达式), !()(对复合表达式结果取反)  
    

    例如,我们经常会用到的一个判断:

    if "_grokparsefailure" not in [tags] {  
        elasticsearch{  
            ##...  
        }  
    }  
    

    3、常见命令行参数
    1)-e 即立即执行,这个在上一节已经介绍过了
    bin/logstash -e ''

    1. --config 或者 -f 即使用配置文件。在实际运用中,我们可能会写很大的配置,所以我们一般把它写在conf文件里,然后通过-f指定配置文件来运行,如
      bin/logstash -f test.conf

    2. --log 或者 -l 指定日志文件(logstash运行的日志)的位置,如
      bin/logstash -l logs/logstash.log

    3. --pipline-workers 或者 -W ,指定运行filter和output的线程数量。默认是CPU核数

    还有其他一些不常见的这里就没有列举了。并且从Logstash 5.0开始,所有的命令行参数文件都可以在Logstash文件夹/config/logsatsh.yml文件里配置了。

    相关文章

      网友评论

        本文标题:搭建ELK(ElasticSearch+Logstash+Kib

        本文链接:https://www.haomeiwen.com/subject/rvvcsxtx.html