Logstash:多个配置文件(conf)

对于多个配置的处理方法,有多个处理方法:

  • 多个pipeline
  • 一个pipleline处理多个配置文件

一个pipeline含有一个逻辑的数据流,它从input接收数据,并把它们传入到队列里,经过worker的处理,最后输出到output。这个output可以是Elasticsearch或其它。下面针对这两种情况,来分别进行描述。

多个pipeline

cat apache.conf

    input {
file {
path => "/Users/liuxg/data/multi-input/apache.log"
start_position => "beginning"
sincedb_path => "/dev/null"
# ignore_older => 100000
type => "apache"
}
} filter {
grok {
match => {
"message" => '%{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] "%{WORD:verb} %{DATA:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:response:int} (?:-|%{NUMBER:bytes:int}) %{QS:referrer} %{QS:agent}'
}
}
} output {
stdout {
codec => rubydebug
} elasticsearch {
index => "apache_log"
template => "/Users/liuxg/data/apache_template.json"
template_name => "apache_elastic_example"
template_overwrite => true
}
}
# cat daily.conf

    input {
file {
path => "/Users/liuxg/data/multi-pipeline/apache-daily-access.log"
start_position => "beginning"
sincedb_path => "/dev/null"
type => "daily"
}
} filter {
grok {
match => {
"message" => '%{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] "%{WORD:verb} %{DATA:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:response:int} (?:-|%{NUMBER:bytes:int}) %{QS:referrer} %{QS:agent}'
}
}
} output {
stdout {
codec => rubydebug
} elasticsearch {
index => "apache_daily"
template => "/Users/liuxg/data/apache_template.json"
template_name => "apache_elastic_example"
template_overwrite => true
}
}

接下来,修改pipelines.yml文件。在logstash的安装目录下的config文件目录下,修改pipelines.yml文件。

- pipeline.id: daily
pipeline.workers: 1
pipeline.batch.size: 1
path.config: "/Users/liuxg/data/multi-pipeline/daily.conf"
- pipeline.id: apache
queue.type: persisted
path.config: "/Users/liuxg/data/multi-pipeline/apache.conf"

在上面的配置中,把daily.conf和apache.conf分别置于两个不同的pipleline中。

这样操作配置已经完成了。进入到longstash的安装目录。我们通过如下的命令来运行:

./bin/logstash

在terminal中,可以看到有两个piple在同时运行,也可以在Kibana中看到我们的index结果。

一个pipeline

同样可以修改位于Logstash安装目录下的config子目录里的pipleline.yml文件,并把它修改为:

- pipeline.id: my_logs
queue.type: persisted
path.config: "/Users/liuxg/data/multi-pipeline/*.conf"

把所有位于/Users/liuxg/data/multi-pipeline/下的所有的conf文件都放于一个pipeline里。

按照上面同样的方法来运行我们的应用:

./bin/logstash

从运行的结果中看到了两个同样的输出。这是为什么呢?这是因为我们把两个.conf文件放于一个pipleline里运行,那么我们有两个stdout的输出分别位于两个.conf文件了。

在Kibana里可以看到我们的最终的index数据:

我们可以看到在apache_log里有20条数据,它包括两个log文件里所有的事件,这是因为它们都是一个pipleline。同样我们可以在apache_daily看到同样的20条数据。

Logstash:多个配置文件(conf)的更多相关文章

  1. logstash 对配置文件conf敏感信息,密码等加密

    logstash的配置文件conf经常会涉及敏感信息,比如ES,mysql的账户密码等,以下使用logstash导入mysql为例子,加密隐藏mysql的密码. 在向keystore中添加key及其s ...

  2. ELK - logstash 多个配置文件及模板的使用

    目录 - 前言 - 多配置文件的实现方式 - 为logstash 增加模板 - 将 logstash 作为服务启动 1. 前言 在使用 logstash 编写多个配置文件,写入到 elasticsea ...

  3. 增加nginx虚拟主机配置文件(conf.d)

    有时候我们按照了nginx后发现配置文件只有一个,/etc/nginx/nginx.conf 所有的配置包括虚拟目录也在此文件中配置, 这样当虚拟主机多了管理就有些不方便了, 这是需要我们把配置文件拆 ...

  4. nginx 分离配置文件 conf.d和default.conf

    1. 在 nginx.conf 文件中引用 conf.d 下的所有配置文件 #在http配置节的末尾添加配置引用 http { ... #gzip on; include /etc/nginx/con ...

  5. 解决clover配置文件conf.plist中nv_disable=1或者nvda_drv=1不生效或者说不能删除的问题

    情况一:U盘安装MacOS的时候conf.plist中设置了nv_disable=1,但是启动的时候任然显示nvda_drv=1. 这种情况一般出现在该机器曾经安装过MacOS,MacOS会将这个参数 ...

  6. redis配置文件.conf和常用配置

    1,配置文件在哪 2,Units单位 1 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit 2 对大小写不敏感 3,INCLUDES包含 和我们的spring配置文件类似,可 ...

  7. mongodb配置文件.conf

    启动方式 ./bin/mongod -f MongoDB.conf 会看到 about to fork child process, waiting until server is ready for ...

  8. 数据库配置文件 conf.properties

    #数据库配置 #mysql hibernate.dialect =org.hibernate.dialect.MySQLDialect jdbc.driverClassName =com.mysql. ...

  9. zookeeper 配置文件conf目录下 zoo文件 配置详解

    clientPort:客户端尝试连接server的端口号 (对外服务端口) 通常为2181 dataDir:存放快照文件snapshot的目录.(储存数据的目录) dataLogDir:事务日志存放位 ...

  10. logstash报错401 需要在logstash启动的配置文件中增加es的用户名和密码

随机推荐

  1. Razor_02 第一个应用程序+Model+EF 添加

    第一个应用程序+Model+EF 添加 小试牛刀 今天 也试了试 边说边写,但是 有时候 编辑器不给力,或者网路不给力,倒是浪费大家时间,所以今天录制完了就裁切了 部分视频,如果有不清楚的地方,可以留 ...

  2. go-gui-控件和信号

    go-gui-控件和信号 控件 控件简介 控件是对数据和方法的封装.控件有自己的属性和方法.属性是指控件的特征.方法是指控件的一些简单而可见的功能.如按钮就是一个控件,这个按钮是方形的,里面有张图片, ...

  3. 致Python初学者的六点建议

    Python是最容易学习的编程语言之一,其语法近似英语.通常,初学者只会遇到一些小麻烦,如强制缩进.在函数中使用self等. 然而,当开始阅读.复制和编辑他人代码时,麻烦就接踵而至了. 这里,我将解释 ...

  4. SpringCloud服务调用源码解析汇总

    相信我,你会收藏这篇文章的,本篇文章涉及Ribbon.Hystrix.Feign三个组件的源码解析 Ribbon架构剖析 这篇文章介绍了Ribbon的基础架构,也就是下图涉及到的6大组件: Ribbo ...

  5. 证书锁定SSL/TLS Pinning

    前言 APP端抓包中, 设置抓包代理后会发现部分APP(如app store.Facebook)直接无法访问,其他部分app又功能正常,为什么呢?这涉及 ssl-pinning,证书锁定. 证书锁定( ...

  6. 关于 SONY WF1000XM3 在 Windows 10 下蓝牙连接只有 Handfree 没有 Stereo 模式

    应该是驱动适配问题,目前粗暴的解决方案貌似下载安装一个 Intel APTX 驱动就可以了: https://www.dell.com/support/home/cn/zh/cndhs1/driver ...

  7. 认识Metasploit框架

    Metasploit基础 认识Metaspliot框架 ​ Metaspliot(MSF)渗透测试框架,提供众多的接口.选项.变量.模块以供渗透工作人员使用它完成一系列的渗透攻击. 渗透攻击(Expl ...

  8. 【转载】Gradle for Android 第四篇( 构建变体 )

    当你在开发一个app,通常你会有几个版本.大多数情况是你需要一个开发版本,用来测试app和弄清它的质量,然后还需要一个生产版本.这些版本通常有不同的设置,例如不同的URL地址.更可能的是你可能需要一个 ...

  9. 靠谱的CSS样式

    0. 引言 记录一些用到的CSS样式,只要可以使用CSS3的地方都可以使用. 1. CSS样式 flex布局:引用 阮一峰的网络日志http://www.ruanyifeng.com/blog/201 ...

  10. 【LeetCode】746. 使用最小花费爬楼梯

    使用最小花费爬楼梯 数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i](索引从0开始). 每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或 ...