设置高级的Logstash 管道:

一个Logstash 管道在很多实用例子有一个或者多个输入,filter,和output 插件。

本节中 创建Logstash 配置文件来指定那些插件和讨论每个插件做什么

Logstash 配置文件定义你的Logstash 管道。当你开始一个Logstash 例子,实用 -f <path/to/file> 

选项来指定配置文件,定义实例的管道。

一个Logstash 管道有2个需要的元素, 输入和输出,和一个可选的元素,filter.

input 插件吸收源数据,

filter 插件修改你指定的数据,

ouput 插件写数据到一个目的地

下面的文本表示配置管道的骨架:

# The # character at the beginning of a line indicates a comment. Use
# comments to describe your configuration.
input {
}
# The filter part of this file is commented out to indicate that it is
# optional.
# filter {
#
# }
output {
} filter 部分是注释掉的表明它是可选的 这个骨架是非功能的,因为输入 和输出章节没有任何有效的定义。在本教程中的例子创建配置文件来解决特定的使用案例。 解析 Apache Logs 到Elasticsearch: 这个例子 创建一个Logstash 管道让Apache web logs 作为输入, 解析那些logs 来创建特定的,命令的字段从logs, 写解析的数据到一个Elasticsearch cluster. 你可以下载相同的数据集用于这个例子,解压文件: 配置Logstash 用于文件输入: 开始你的Logstash 管道, 配置Logstash 实例从一个使用文件输入的插件读取数据 Edit the first-pipeline.conf file to add the following text: input {
file {
path => "/path/to/logstash-tutorial.log"
start_position => beginning
ignore_older => 0
}
} 默认文件的行为input 插件来监控一个文件对于新的信息, 方式类似于UNIX tail -f 命令。 改变这个默认的行为和处理整个文件, 我们需要指定位置 Logstash 开始处理文件的位置 默认的文件输入插件的行为是忽视文件最后修改是大于86400s,来改变这个默认行为和处理文件(一天前的文件), 我们需要指定忽略的日期 解析 Web Logs 使用Grok Filter 插件: grok filter 插件是 其中的一种插件默认在Logstash里是可用的,对于细节如何管理Logstash 插件, 查看插件管理器的文档内容。 因为grok 过滤插件寻找模式在进来的日志数据,配置需要你做出如何确定模式 。 从Web服务器典型的行看起来像这样: 83.149.9.216 - - [04/Jan/2015:05:13:42 +0000] "GET /presentations/logstash-monitorama-2013/images/kibana-search.png
HTTP/1.1" 200 203023 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel
Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" 在开始行的IP地址 是很容易识别, 在括号中的时间戳,在这种情况下,使用 %{COMBINEDAPACHELOG} grok 模式,Apache log 使用下面的模式 : Information Field Name IP Address clientip User ID ident User Authentication auth timestamp timestamp HTTP Verb verb Request body request HTTP Version httpversion HTTP Status Code response Bytes served bytes Referrer URL referrer User agent agent filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}"}
}
} 在处理后,简单的行有下面的JSON 输出: {
"clientip" : "83.149.9.216",
"ident" : ,
"auth" : ,
"timestamp" : "04/Jan/2015:05:13:42 +0000",
"verb" : "GET",
"request" : "/presentations/logstash-monitorama-2013/images/kibana-search.png",
"httpversion" : "HTTP/1.1",
"response" : "200",
"bytes" : "203023",
"referrer" : "http://semicomplete.com/presentations/logstash-monitorama-2013/",
"agent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36"
} Indexing Parsed 数据到elasticsearch: 现在web日志 是被分解成多个特定的字段,Logstash 管道可以索引数据到一个Elasticsearch cluster. output {
elasticsearch {
}
} 在这个配置里,Logstash 使用http 协议来连接Elasticsearch。 上面的例子假设Logstash和Elasticsearch 运行在相同的实例。 你可以指定一个远程的实例使用主机配置像 hosts => "es-machine:9092". 加强你的数据使用 Geoip 过滤插件 除了解析log data 一伙的更好的搜索,filter 插件可以得到补充的信息从存在的数据。 比如一个例子,geoip 插件查找ip地址,获得地理位置信息从地址,增加位置信息到logs. 配置你的Logstash 实例 使用geoip 过滤插件通过增加下面的行到你的filter 章节: geoip {
source => "clientip"
} geoip plugin 配置需要数据是已经定义作为单独的字段,确保geoip 章节是在grok章节后面 指定字段的名字 包含IP地址来查询,在这里,字段名是clientip 测试你的初始化管道: 在这一点上,你的first-pipeline.conf 有input,filter,和output 章节合适的配置,看起来像这样; input {
file {
path => "/Users/palecur/logstash-1.5.2/logstash-tutorial-dataset"
start_position => beginning
}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}"}
}
geoip {
source => "clientip"
}
}
output {
elasticsearch {}
stdout {}
} 校验你的配置,使用下面的命令: bin/logstash -f first-pipeline.conf --configtest 多个输入和输出插件; 信息你需要管理经常来自多个不同的源,使用例子可以需要多个目的地对于你的数据。 你的Logstash 管道可以使用多个input 和output 插件来处理那些需求: 这个例子创建一个Logstash 管道 输入从一个 Twitter feed 和 Filebeat client, 然后发送信息到 Elasticsearch cluster 也写信息到文件

设置高级的Logstash 管道的更多相关文章

  1. Linux网络设置高级指南

    from:http://www.oschina.net/question/23734_117144 Linux网络设置高级指南 本文面向的是被Linux复杂的有线无线网络架构弄得头昏脑胀:或者被网上半 ...

  2. UNIX环境高级编程——无名管道和有名管道

    一.进程间通信 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2 ...

  3. python3百度设置高级搜索例子

    #=======================================#作者:邓沛友#2018.12.16=============================coding:utf-8f ...

  4. Yii2.0 多语言设置(高级版配置方法) - 新的方法

    1.设置默认语言:在mail.php配置文件加上:'language'=>'zh_CN'; 2.多语言切换 (我这边是在site控制器里面操作的所以用的'/site/language') htm ...

  5. Redis05——Redis高级运用(管道连接,发布订阅,布隆过滤器)

    Redis高级运用 一.管道连接redis(一次发送多个命令,节省往返时间) 1.安装nc yum install nc -y 2.通过nc连接redis nc localhost 6379 3.通过 ...

  6. 深入浅出Redis(三)高级特性:管道

    Redis是一个响应式的服务,当client发送一个请求后,就处于堵塞状态等待Redis返回结果. 这样一次命令消耗的时间就包含三个部分:请求从client到server的时间.结果从server到c ...

  7. 设置让ASP.NET管道接收所有类型的请求

    在web.config文件添加如下一段配置: <configuration> <system.webServer> <modules runAllManagedModul ...

  8. Logstash: 如何创建可维护和可重用的Logstash管道

  9. Navicat(连接) -1高级设置

    高级设置 设置位置当创建一个新的连接,Navicat 将在设置位置创建一个子文件夹.大多数文件都保存在该子文件夹: Navicat 对象 服务器类型 扩展名 查询 全部 .sql 导出查询结果设置文件 ...

随机推荐

  1. wampserver php 设置时间

    php.ini 查找date.timezone = Europe/Paris 修改成亚洲地区 date.timezone = Asia/Shanghai

  2. swift笔记05

    数组的定义: var 北京十号线 = ["国家图书馆","巴沟"] 北京十号线.count    //或者数组的长度 var a = [Int]() //创建一 ...

  3. PHP简单socket编程

    今天再看一点邮件发送的功能,所以了解一下socket变成,看到了一篇不错的文章,转发过来做个笔记吧. 原文链接:http://www.cnblogs.com/thinksasa/archive/201 ...

  4. Gartner Publishes 2014 Magic Quadrant for SIEM and Critical Capabilities for SIEM Reports

    http://securityintelligence.com/gartner-2014-magic-quadrant-siem-security/#.SzNnhshk https://www.net ...

  5. C语言的本质(21)——预处理之三:其它预处理特性及总结

    C标准规定了几个特殊的宏,在不同的地方使用可以自动展开成不同的值,预编译程序对于在源程序中出现的这些串将用合适的值进行替换.这些宏有下面这些: __FILE__ 展开为当前源文件的文件名,是一个字符串 ...

  6. hdu 5093 Battle ships 匈牙利 很巧妙的建图思路

    //这题逼我把匈牙利学了 之前一直很勤快敲网络流 而且不以为耻反以为荣 解:首先按行扫描编号,如果在同一块中(即可以相互攻击),那么将其标为相同的数组,对列也做同样的操作. 然后扫描整张图,如果行编号 ...

  7. 【POJ 3009 Curling2.0 迷宫寻径 DFS】

    http://poj.org/problem?id=3009 模拟冰壶的移动,给出到达终点的最少投掷次数(不可达时为-1). 具体移动规则如下: 每次选四个方向之一,沿此方向一直前进,直到撞到bloc ...

  8. Unity doesn't load, no Launcher, no Dash appears

    1. 重新安装 ubuntu-desktop不起作用. Enter the following commands:- Ctrl+Alt+F1 login there by user name and ...

  9. OpenStack IdentityService Keystone V3 API Curl实战

    v3 API Examples Using Curl <Tokens> 1,Default scope 获取token Get an token with default scope (m ...

  10. 网易云课堂_C++程序设计入门(上)_第3单元:更上一层楼 – 超越C的语法_第3单元作业【3】-在线编程(难度:中;10分)

    1 本题要求实现两个重载的swap函数,每个swap函数都可交换3个整数a,b,c的值.将a的值存入b,b的值存入c,c的值存入a, 并且返回三个整数中最大的数的值.例如a,b,c的值为1,2,3,则 ...