背景
logstash在对日志的进行处理的时候,特别是对于欸之中存在换行的情况下显示的不是很友好,诸如tomcat日志中ERROR换行或者EXCEPTION等,但恰恰这些都是一条日志,因为为了更便于过滤,logstash-filter-multiline应运而生。
logstash-filter-multiline简介
- logstash-filter-multiline是logstash的一个插件
- 功能:多行日志,根据匹配规则,进行合并
- github地址:
https://github.com/logstash-plugins/logstash-filter-multiline
- 其他插件的地址:
https://github.com/logstash-plugins
- 官网地址:
https://www.elastic.co/cn/products/logstash
logstash-filter-multiline安装
step1:gem更新
yum install -y gem
gem -v #2.0.14.1自带版本比较低,需要升级
gem update --system
gem -v #2.7.7
step2:检查并修改镜像源
gem sources -l #查看镜像源
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/ #修改镜像源
cat ~/.gemrc #查看镜像源文件
---
:backtrace: false
:bulk_threshold: 1000
:sources:
- https://gems.ruby-china.com/
:update_sources: true
:verbose: true
step3:安装 bundle 并更改镜像源
gem install bundler #此处报错,提示ruby版本低,升级ruby
升级ruby
wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.3.tar.gz #下载ruby
tar -xf ruby-2.5.3.tar.gz #解压
cd ruby-2.5.3
./configure --prefix=/usr/local/ruby
make -j 4 #此处比较耗时,进行多核编译
make install
mv /usr/bin/ruby /usr/bin/ruby.bak #备份低版本的ruby
ln -s /usr/local/ruby/bin/ruby /usr/bin/ruby #建立软连接,指向最新版的ruby
再次安装 bundle
gem install bundler
step4:修改 logstash的 gem 镜像源
因为我是在logstash的当前目录下安装的bundler,所以会生成Gemfile这个文件,需要对此文件进行修改,Gemfile.lock无需更改。
将修改为source "https://rubygems.org"
修改为source "https://gems.ruby-china.com"
,保存即可。
step5:安装 logstash-filter-multiline
cd /u01/isi/application/index/logstash-7.10.0
./bin/logstash-plugin install logstash-filter-multiline
./bin/logstash-plugin list | grep 'logstash-filter' #查看
至此安装结束。