Logstach的语法和插件介绍

发表时间:2017-09-25 15:21:06 浏览量( 32 ) 留言数( 0 )

学习目标:

1、Logstash配置得基本语法

2、了解Logstach得插件操作


学习过程:

一、Logstash得基本语法

上一节课我们介绍了一个非常简单得输入和输出,logstash还可以指定编码和过滤一些没有用得信息。Logstash得具体语法很好得体现了这些功能。

处理输入的input

处理过滤的filter

处理输出的output

我们可以先看看下面这个例子

input {
  file {
    path => "/tmp/access_log"
    start_position => beginning
  }
}

filter {
  if [path] =~ "access" {
    mutate { replace => { "type" => "apache_access" } }
    grok {
      match => { "message" => "%{COMBINEDAPACHELOG}" }
    }
  }
  date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
  }
}

output {
  elasticsearch {
    host => localhost
  }
  stdout { codec => rubydebug }
}

虽然我们可能暂时看不懂,但是没有关系,后面我们再慢慢学习。

区域

logstash中,是用{}来定义区域的 区域内,我们可以定义插件 一个区域内是可以定义多个插件

数据类型(布尔值,字符串,数值,数组,哈希)

布尔 boolean : ssl_enable => true

字节 Bytes :my_bytes => "10MiB"  # 10485760 bytes

字符串 String:name => "Hello world“

数值 Number:port => 514

数组 Array:match => ["datetime", "UNIX", "ISO8601"]

哈希 Hash: options => {      key1 => "value1",     key2 => "value2" }

编码解码: codec :codec => “json”

密码型: my_password => “password”

路径: my_path => "/tmp/logstash“

注释: #

条件判断

==(等于), !=(不等于), <(小于), >(大于), <=(小于等于), >=(大于等于)

=~(匹配正则), !~(不匹配正则)

in(包含), not in(不包含) and(与), or(或), nand(非与), xor(非或)

():复合表达式,    !():对复合表达式结果取反

if "_grokparsefailure" not in [tags] {

} else if [status] !~ /^2\d\d/ and [url] == "/noc.gif" {

} else {

}

字段引用

Logstash 还支持变量内插,在字符串里使用字段引用的方法是这样:

"the longitude is %{[geoip][location][0]}"


二、Logstash得插件机制和操作

logstash得输入来源可以是文件,网络,输出源也可以是文件、网络、邮件、数据库等等,大家也知道链接数据库需要对应得驱动才行得,logstash默认并不会把所有得得这些链接得插件都安装了。你可以根据自己得需要去安装logstash得相关插件。logstash支持在线安装,所以非常简单

主要就是分为四类插件

inputs        就是输入

codecs       就是解码

filters         就是过滤

outputs      输出

1、安装准备先安装ruby

因为国内网络问题,大家也懂得,我们需要修改ruanby得地址才行。

安装rubygem包

yum install -y rubygems

删除原来ruby的网址

gem sources --remove https://rubygems.org/

gem sources --remove http://rubygems.org/

添加国内得

[root@newrun1 ~]# gem sources -a http://gems.ruby-china.org/

http://gems.ruby-china.org/ added to sources

查看是否成功

[root@newrun1 ~]# gem sources -l

*** CURRENT SOURCES ***


http://gems.ruby-china.org/

可以看到只有一个地址了。

2、安装一个插件得示例

可以登陆一下得网址看看logstash有多少插件可以安装

插件获取地址: https://github.com/logstash-plugins 


下面是我们安装一个jdbc得插件得示例:

可以通过这个命令查看已安装的插件

cat Gemfile

其实大部分插件已经安装得了。


如果有没有安装的可以通过下面的按钮操作。

在线安装: ./bin/logstash-plugin  install  logstash-input-jdbc

升级插件: ./bin/logstash-plugin  update logstash-input-jdbc

卸载插件: ./bin/logstash-plugin  uninstall  logstash-input-jdbc


具体的操作

[root@newrun1 logstash]# cd /opt/logstash

[root@newrun1 logstash]# ./bin/logstash-plugin install logstash-input-jdbc

Validating logstash-input-jdbc

Installing logstash-input-jdbc

Installation successful


看看是不是已经安装了

cat Gemfile