前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ELK学习笔记之logstash安装logstash-filter-multiline(在线离线安装)

ELK学习笔记之logstash安装logstash-filter-multiline(在线离线安装)

作者头像
Jetpropelledsnake21
发布2019-04-25 09:46:54
1.8K0
发布2019-04-25 09:46:54
举报
文章被收录于专栏:JetpropelledSnakeJetpropelledSnake

0x00 概述

ELK-logstash在搬运日志的时候会出现多行日志,普通的搬运会造成保存到ES中单条单条,很丑,而且不方便读取,logstash-filter-multiline可以解决该问题

github地址:https://github.com/logstash-plugins/logstash-filter-multiline

其他插件的地址:https://github.com/logstash-plugins

官网地址:https://www.elastic.co/cn/products/logstash

普通日志如下:

记录到es会的记录则是:

我们希望的结果肯定是这样的

0x01 原生安装

代码语言:javascript
复制
# /usr/share/logstash/bin/logstash-plugin install logstash-filter-multiline
Validating logstash-filter-multiline
Installing logstash-filter-multiline
WARNING: can not set Session#timeout=(0) no session context

0x02 改镜像源安装

给 Ruby 加上国内的镜像站:https://gems.ruby-china.com/,替代https://rubygems.org。

注意原https://gems.ruby-china.org/目前已经可用,需要使用https://gems.ruby-china.com/

1. 安装Gem并更新

代码语言:javascript
复制
# yum install -y gem
# gem -v
2.0.14.1
# gem update --system
# gem -v
2.6.13

2. 检查并修改镜像源

代码语言:javascript
复制
# gem sources -l
*** CURRENT SOURCES ***
 
https://rubygems.org/
代码语言:javascript
复制
# gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
https://gems.ruby-china.com/ added to sources
https://rubygems.org/ removed from sources
代码语言:javascript
复制
# cat ~/.gemrc 
---
:backtrace: false
:bulk_threshold: 1000
:sources:
- https://gems.ruby-china.com/
:update_sources: true
:verbose: true

3. 安装 bundle 并更改镜像源

代码语言:javascript
复制
# gem install bundler
# bundle config mirror.https://rubygems.org https://gems.ruby-china.com

4. 修改 logstash的 gem 镜像源

代码语言:javascript
复制
# vim /usr/share/logstash/Gemfile
 
# This is a Logstash generated Gemfile.
# If you modify this file manually all comments and formatting will be lost.
 
source "https://rubygems.org"
gem "logstash-core", :path => "./logstash-core"
......
代码语言:javascript
复制
# 更改默认的 https://rubygems.org 为https://gems.ruby-china.com

Gemfile.jruby-1.9.lock文件不用改,会自动更新。

5. 安装 logstash-filter-multiline

代码语言:javascript
复制
# /usr/share/logstash/bin/logstash-plugin install logstash-filter-multiline
Validating logstash-filter-multiline
Installing logstash-filter-multiline
Installation successful

我们看看logstash都安装了哪些插件

代码语言:javascript
复制
# /usr/share/logstash/bin/logstash-plugin list
logstash-codec-cef
logstash-codec-collectd
logstash-codec-dots
logstash-codec-edn
logstash-codec-edn_lines
logstash-codec-es_bulk
logstash-codec-fluent
logstash-codec-graphite
logstash-codec-json
logstash-codec-json_lines
logstash-codec-line
logstash-codec-msgpack
logstash-codec-multiline
logstash-filter-multiline
logstash-codec-netflow
logstash-codec-plain
logstash-codec-rubydebug
logstash-filter-aggregate
logstash-filter-anonymize
logstash-filter-cidr
logstash-filter-clone
logstash-filter-csv
logstash-filter-date
logstash-filter-de_dot
logstash-filter-dissect
logstash-filter-dns
logstash-filter-drop
logstash-filter-elasticsearch
logstash-filter-fingerprint
logstash-filter-geoip
logstash-filter-grok
logstash-filter-jdbc_static
logstash-filter-jdbc_streaming
logstash-filter-json
logstash-filter-kv
logstash-filter-metrics
logstash-filter-mutate
logstash-filter-ruby
logstash-filter-sleep
logstash-filter-split
logstash-filter-syslog_pri
logstash-filter-throttle
logstash-filter-translate
logstash-filter-truncate
logstash-filter-urldecode
logstash-filter-useragent
logstash-filter-xml
logstash-input-beats
logstash-input-dead_letter_queue
logstash-input-elasticsearch
logstash-input-exec
logstash-input-file
logstash-input-ganglia
logstash-input-gelf
logstash-input-generator
logstash-input-graphite
logstash-input-heartbeat
logstash-input-http
logstash-input-http_poller
logstash-input-imap
logstash-input-jdbc
logstash-input-kafka
logstash-input-pipe
logstash-input-rabbitmq
logstash-input-redis
logstash-input-s3
logstash-input-snmptrap
logstash-input-sqs
logstash-input-stdin
logstash-input-syslog
logstash-input-tcp
logstash-input-twitter
logstash-input-udp
logstash-input-unix
logstash-output-cloudwatch
logstash-output-csv
logstash-output-elasticsearch
logstash-output-email
logstash-output-file
logstash-output-graphite
logstash-output-http
logstash-output-kafka
logstash-output-lumberjack
logstash-output-nagios
logstash-output-null
logstash-output-pagerduty
logstash-output-pipe
logstash-output-rabbitmq
logstash-output-redis
logstash-output-s3
logstash-output-sns
logstash-output-sqs
logstash-output-stdout
logstash-output-tcp
logstash-output-udp
logstash-output-webhdfs
logstash-patterns-core

6. 离线打包

这里安装好了,那么就可以打个离线的 zip 包,方便生产环境直接安装。离线包将包含所有依赖的包。

代码语言:javascript
复制
# cd /usr/share/logstash/bin
# ./logstash-plugin prepare-offline-pack --overwrite --output logstash-filter-multiline.zip logstash-filter-multiline
Offline package created at: logstash-filter-multiline.zip
 
You can install it with this command `bin/logstash-plugin install file:///usr/share/logstash/bin/logstash-filter-multiline.zip`

7. logstash-filter-multiline使用方法

代码语言:javascript
复制
codec =>multiline {
     charset=>...          #可选                    字符编码        
     max_bytes=>...        #可选     bytes类型       设置最大的字节数
     max_lines=>...        #可选     number类型      设置最大的行数,默认是500行
     multiline_tag...      #可选     string类型      设置一个事件标签,默认是multiline
     pattern=>...          #必选     string类型      设置匹配的正则表达式
     patterns_dir=>...     #可选     array类型       可以设置多个正则表达式
     negate=>...           #可选     boolean类型     默认false不显示,可设置ture
     what=>...             #必选                    向前previous , 向后 next
 }
代码语言:javascript
复制
## negate  只支持布尔值,true 或者false,默认为false。
如果设置为true,表示与正则表达式(pattern)不匹配的内容都需要整合,
具体整合在前还是在后,看what参数。如果设置为false,即与pattern匹配的内容

## what  前一行 或者后一行,指出上面对应的规则与前一行内容收集为一行,还是与后一行整合在一起

negate默认是 false,不显示与patten匹配的行
由what决定 向前或向后 匹配

negate 设置为true
则与patten 不匹配的行
由what决定 向前或向后 匹配
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-04-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x00 概述
  • 0x01 原生安装
  • 0x02 改镜像源安装
    • 1. 安装Gem并更新
      • 2. 检查并修改镜像源
        • 3. 安装 bundle 并更改镜像源
          • 4. 修改 logstash的 gem 镜像源
            • 5. 安装 logstash-filter-multiline
              • 6. 离线打包
                • 7. logstash-filter-multiline使用方法
                相关产品与服务
                Elasticsearch Service
                腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档