• Logstash简介


    支持多种数据获取机制,通过TCP/UDP协议、文件、syslog、windows、EventLogs及STDIN等;获取到数据口,支持对数据进行过滤、修改等操作
    JRuby语言研发,工作在JVM中
        agent/server
    Logstash安装
    yum install logstash-5.2.2.rpm
    配置logstash的环境变量:
    vim /etc/profile.d/logstash.sh加入:
    export PATH=$PATH:/opt/logstash/bin
    logstash的配置文件目录:
    /etc/logstash/conf.d/下的以.conf结尾的文件
    简单的输入输出语法配置:
    vim /etc/logstash/conf.d/sample.conf
    input {
            stdin {}
    }

    output {
            stdout {
                    codec => rubydebug
            }
    }
    语法检测:
    logstash -f /etc/logstash/conf.d/sample.conf --configtes
    启动logstash:
    logstash -f /etc/logstash/conf.d/sample.conf

    Logstash配置框架:
        input{
            ...
        }
        filter{
            ...
        }
        output{
            ...
        }
    四种类型的插件:
        input,filter,codec,output
    数据类型:
        Array:[item1,item2,...]
        Boolean:true,false
        Bytes:
        Codec:编码
        Hash:key => value
        Number:
        Password:
        Path:文件系统路径
        String:字符串

    字段引用:[]

    条件判断:
        ==,!=,<,<=,>,>=
        =~,!~
        in,not in
        and,or
        ()
        
    Logstash的工作流程:input | filter | output,如无需对数据进行额外的处理,filter可以省略
    高度插件化:input,codec,filter,output
    input插件:
        File:从指定的文件中读取事件流;其工作特性类似于tail -f,第一次读取的时候是从文件的第一行开始的;
                使用FileWatch(Linux内核功能)来监视文件是否发生变化(Ruby Gem库支持以监听多个文件)
                每个文件上一次读取的位置保存在.sincedb数据库中
                .sincedb:记录了每个被监听的文件的inode,major,number,minor number,pos;

    Logstash的时间戳问题:
    请参考该贴:http://blog.csdn.net/shan1369678/article/details/51375537
                
    Logstash的插件:
        input {
            file {
            path => ["/usr/local/tomcat/logs/catalina.out"]
            type => "tomcat"
            start_position => "beginning"
            }
        }
        
        output {
            stadout {
            codec => rubydebug
            }    
        }

    redis插件:
        从redis读取数据,支持redis channel和list两种方式;
        redis查看数据是否写入的方法:LLEN logstash-tomcat
        查看写入数据的内容:LINDEX logstash-tomcat 1

    elasticsearch插件kopf的安装
    下载地址:https://github.com/lmenezes/elasticsearch-kopf/releases
    下载版本:v2.1.2
    安装:
    /usr/share/elasticsearch/bin/plugin install file:///opt/elasticsearch-kopf-2.1.2.zip
    注意这里要修改elastisearch的监听地址,因为默认是监听在127.0.0.1上的
    然后即可通过浏览器访问elasticsearch集群:http://IP:9200/_plugin/kopf

    kibana4.6.2安装:
    yum install -y kibana-4.6.2-x86_64.rpm
    配置文件位置:/opt/kibana/config/kibana.yml
    启动kibana:systemctl start kibana

        
    filter插件:
        用于在将event通过output发出之前对其实现某些处理功能;
        grok,用于分析并结构化文本数据;目前是logstash中将非结构化日志数据转化为结构化的可查询数据的不二选择。
        syslog,apache,nginx
        模式定义位置:/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-2.0.5/patterns/grok-patterns
        语法格式:
        %{SYNTAX:SEMANTIC}
            SYNTAX:预定义模式名称;
            SEMANTIC:匹配到的文本的自定义标识符;

    output插件:
        stdout {}
        elasticsearch {
            ...
        }

  • 相关阅读:
    Attribute+Reflection,提高代码重用
    类型安全的EventHandlerList
    简单一招,使解决方案下的项目版本号统一
    T-SQL 随机返回特定行数据和分页查询
    2013年中国系统架构师大会随想
    C#实现在注册表中保存信息
    滤镜
    蒙版
    图层样式和混合模式
    布尔运算
  • 原文地址:https://www.cnblogs.com/fansik/p/6806272.html
Copyright © 2020-2023  润新知