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 {
        ...
    }

原文地址:https://www.cnblogs.com/fansik/p/6806272.html