logstash概诉:

是一个数据采集、加工处理、以及传输的工具

特点:

所有类型的数据集中处理、不同模式和格式的数据的正常化、自定义日志格式的迅速扩展、为自定义数据源轻松添加插件

Logstash配置和部署_正则表达式

软件使用前注意:logstash使用Java开发、logstash没有默认配置文件需要手动配置、*需要在/usr/share/logstash目录下创建一个指向/etc/logstash的软链接。

[root@logstash ~]# /usr/share/logstash/bin/logstash   -----
  • 1.
[root@logstash ~]# dnf install -y logstash
  • 1.
[root@logstash ~]# ln -s /etc/logstash /usr/share/logstash/config
  • 1.

1)最简单,最基本的配置(3模块必须有)

[root@logstash ~]# vim /etc/logstash/conf.d/my.conf
input { 
  stdin {}
}

filter{ 

}

output{ 
  stdout{}
}
[root@logstash ~]# /usr/share/logstash/bin/logstash
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.


2)插件与调试格式

[root@logstash ~]# vim /etc/logstash/conf.d/my.conf
input { 
  stdin { codec => "json" }
}

filter{ 

}

output{ 
  stdout{ codec => "rubydebug" }
}
[root@logstash ~]# /usr/share/logstash/bin/logstash
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.


3)file插件应用 --指定书签文件(保存已读信息,第二次不会输出已读信息)

input {
  file {
    path => ["/tmp/a.log", "/tmp/b.log"]
  }
}
。。。。。。。省略
----------------------------------------
input {
  file {
    path => ["/tmp/c.log"]
    start_position => "beginning"
    sincedb_path => "/var/lib/logstash/sincedb"
  }
}
省略。。。。。。。
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.


4)准备测试数据 ==》grok 插件(过滤信息)

正则表达式分组匹配格式: (?<名字>正则表达式) 正则表达式宏调用格式: %{宏名称:名字} 宏文件路径 : /usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-patterns-core-4.3.4/patterns

# 调试技巧:设置路径为 /dev/null 可以多次反复测试
[root@logstash ~]# vim /etc/logstash/conf.d/my.conf
input {
  file {
    path => ["/tmp/c.log"]
    start_position => "beginning"
    sincedb_path => "/dev/null"
  }
}

使用宏格式化日志

filter{ 
  grok {
    match => { "message" => "%{HTTPD_COMBINEDLOG}" }
    remove_field => ["message"]
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.


5)elasticsearch 插件(用于连接elasticsearch数据库)

[root@logstash ~]# vim /etc/logstash/conf.d/my.conf

# input { 不做任何修改 }
# filter { 不做任何修改 }

output{ 
  stdout{ codec => "rubydebug" }
  elasticsearch {
    hosts => ["es-0002:9200","es-0003:9200"]
    index => "weblog-%{+YYYY.MM.dd}"
  }
}

[root@logstash ~]# /usr/share/logstash/bin/logstash

访问页面,查看 Head 插件,验证数据写入 Elasticsearch  成功
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.