开始使用Logstash

本节将指导处理安装Logstash 和确认一切是运行正常的,

后来的章节处理增加负载的配置来处理选择的使用案例。

这个章节包含下面的主题:

Installing Logstash

Stashing Your First Event: Basic Logstash Example

Parsing Logs with Logstash

Stalled Shutdown Detection

Logstash Processing Pipeline

基本的Logstash的例子:

测试你的Logstash 安装,运行做基本的Logstash 管道:

cd logstash-2.4.0

bin/logstash -e 'input { stdin { } } output { stdout {} }'

-e flag 让你指定一个配置直接从命令行, 指定配置作为命令行让你快速的测试配置不需要编辑文件在迭代期间。

这个管道从一个标准输入,stdin,和移动 输入到标准输出

使用Logstash 解析日志:

一个Logstash 管道 在很多使用情况下有一个或者多个input,和输出插件。

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

Logstash 配置文件定义你的Logstash 管道。当你启动一个Logstash 实例,使用-f 选项

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

一个Logstash 管道有2个需要的参数, input和output, 以及一个可选的元素,filter.

input 插件 消费源的数据, filter 插件 修改你指定的数据,

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

在这个章节,你创建一个Logstash 管道,让Apache web logs 作为输入,

解析那些日志来创建特定的,命名命名的字段, 写解析好的数据到Elasticsarch集群。

相比定义管道配置在命令行,你可以定义管道在一个配置文件里。

下面的文本表示配置管道的概略:

# 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 {
} 这个骨架是非功能的, 因为input和output 章节没有任何正确的选项定义: 开始, 复制和黏贴骨架配置管道到一个文件叫做 first-pipeline.conf 在你的Logstash 目录。 然后下载示例数据用于下面的例子 配置Logstash 用于文件输入: 注意: 这个例子 使用文件输入插件, tail files 在真实的世界, 你可以使用Filebeat 来传输日志到Logstash. 开始你的Logstash 管道,配置Logstash 实例从一个文件读取使用file input 插件: input {
file {
path => "/path/to/file/*.log"
start_position => beginning
ignore_older => 0
}
} 默认的文件input 插件的行为是监控一个文件对于新的信息, 类似于UNIX tail -f 命令的方式。 改变这个默认的行为,处理整个文件,我们需要 指定位置 logstash 开始处理文件的位置: 设置ignore_older to 0 来禁用文件年龄检查 ,这样文件是被处理的,即使它是一天前的 替换 /path/to/file 为你的决定路径 解析 Web logs 使用Grok 过滤插件: grok 过滤插件 是几种插件的一种 默认是可用的在logstash里。 对于细节关于如何管理logstash 插件,查看插件管理文档。 Grok filter 插件让你解析非结构化的数据到一些结构化的可以查询的 日志数据 因为grok 过滤插件寻找模式在进来的log data,配置需要你做决定关于如何识别模式,你使用情况感兴趣的。 web server 日志看起来像: 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 pattern, 增强你的数据使用Geoip 过滤插件: 除了分析日志数据为了更好的搜索, filter plugins 可以得到补充信息从现有的数据。 作为一个例子, geoip 插件 查找IP地址, 得到地理位置信息从ip地址,增加位置信息到logs 配置你的Logstash 实例使用geoip 过滤插件通过增加下面的行到filer 章节 geoip {
source => "clientip"
} geoip 插件配置需要你指定 source field 的名字 包含IP地址用于查找,在这里例子中, Clientip 字段包含IP地址。 由于过滤器是顺序评估的, 确保geoip 部分是在grok 部分后面,grok和geoip 部分是嵌套的在filter 部分像这样: filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}"}
}
geoip {
source => "clientip"
} 索引你的数据到Elasticsearch: 现在web logs 是被分成特定的字段,Logstash 管道可以索引数据到一个Elasticsearch cluster. 编辑first-pipeline.conf file 替换整个输出部分使用下面的文本: output {
elasticsearch {
hosts => [ "localhost:9200" ]
}
} 在这个配置里, Logstash 使用http 协议连接到Elasticsearch 上面的例子 假设Logstash 和Elasticsearch 运行在相同的实例上。 你可以指定一个远程的Elasticsearch 通过使用hosts配置来指定像这样 hosts => [ "es-machine:9092" ]. 测试你的初始化管道 在这个点上,你的 first-pipeline.conf file 已经有input,filter和output 部分配置,看起来像这样: input {
file {
path => "/Users/myusername/tutorialdata/*.log"
start_position => beginning
ignore_older => 0
}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}"}
}
geoip {
source => "clientip"
}
}
output {
elasticsearch {
hosts => [ "localhost:9200" ]
}
} 检验你的配置,运行下面的命令: bin/logstash -f first-pipeline.conf --configtest --configtest 选项 解析你的配置文件和报告任何错误。 当配置文件解析 配置test,启动Logstash 使用下面的命令: bin/logstash -f first-pipeline.conf 整合多个input和output 插件 你需要管理来自多个不同的源,使用例子可以需要多个目的地用于你的数据。 你的logstash 管道可以使用多个input 和output 来处理那些请求: 在这个章节, 你创建一个Logstash 管道 从一个Twitter feed 输入, 写Logstash到文件: 你可以配置你的Logstash 管道写数据直接到一个文件使用file output插件。 配置你的Logstash 实例来使用实例来使用file output 插件通过增加下面的行到你的输出部分 file {
path => /path/to/target/file
}

开始使用Logstash的更多相关文章

  1. Logstash实践: 分布式系统的日志监控

    文/赵杰 2015.11.04 1. 前言 服务端日志你有多重视? 我们没有日志 有日志,但基本不去控制需要输出的内容 经常微调日志,只输出我们想看和有用的 经常监控日志,一方面帮助日志微调,一方面及 ...

  2. logstash file输入,无输出原因与解决办法

    1.现象 很多同学在用logstash input 为file的时候,经常会出现如下问题:配置文件无误,logstash有时一直停留在等待输入的界面 2.解释 logstash作为日志分析的管道,在实 ...

  3. logstash服务启动脚本

    logstash服务启动脚本 最近在弄ELK,发现logstash没有sysv类型的服务启动脚本,于是按照网上一个老外提供的模板自己进行修改 #添加用户 useradd logstash -M -s ...

  4. Logstash时区、时间转换,message重组

    适用场景 获取日志本身时间 日志时间转Unix时间 重组message 示例日志: hellow@,@world@,@2011-11-01 18:46:43 logstash 配置文件: input{ ...

  5. logstash日志分析的配置和使用

    logstash是一个数据分析软件,主要目的是分析log日志.整一套软件可以当作一个MVC模型,logstash是controller层,Elasticsearch是一个model层,kibana是v ...

  6. logstash+elasticsearch+kibana管理日志(安装)

    logstash1.先安装jdk2.wget https://download.elastic.co/logstash/logstash/logstash-2.4.0.tar.gz tar -xzvf ...

  7. 使用Logstash进行日志分析

    LogStash主要用于数据收集和分析方面,配合Elasticsearch,Kibana用起来很方便,安装教程google出来很多. 推荐阅读 Elasticsearch 权威指南 精通 Elasti ...

  8. LogStash filter介绍(九)

    LogStash plugins-filters-grok介绍 官方文档:https://www.elastic.co/guide/en/logstash/current/plugins-filter ...

  9. kafka(logstash) + elasticsearch 构建日志分析处理系统

    第一版:logstash + es 第二版:kafka 替换 logstash的方案

  10. 海量日志分析方案--logstash+kibnana+kafka

    下图为唯品会在qcon上面公开的日志处理平台架构图.听后觉得有些意思,好像也可以很容易的copy一个,就动手尝试了一下. 目前只对flume===>kafka===>elacsticSea ...

随机推荐

  1. Android手机音量的控制

    1.AudioManager audio=(AudioManager) super.getSystemService(Context.AUDIO_SERVICE);//获得手机的声音服务 //设置加音 ...

  2. Vanya and Triangles 暴力枚举

    枚举法: 枚举法是利用计算机速度快, 精度高的特点, 对要解决的问题所有可能情况进行霸道的, 一个不漏检验, 从中找出符合要求的答案. 特点: 1. 得到的结果一定正确. 2. 可能做了很多无用功,效 ...

  3. windows 自动安装

    msiexec

  4. Scala学习1

    Scala是一种静态语言.面向对象的函数式编程语言.它的程序代码以.scala结尾,编译时会编译成.class字节码在jvm上运行. 类和方法默认是public的,不必显式声明public. retu ...

  5. DVP

    债券结算方式是指在债券结算业务中,债券的所有权转移或权利质押与相应结算款项的交收这两者执行过程中的不同制约形式.中央债券簿记系统中所设计的结算方式有:纯券过户.见券付款.见款付券.券款对付(DVP)四 ...

  6. Css定位-定位

    在CSS中一共有N种定位方式,其中,static ,relative,absolute三种方式是最基本最常用的三种定位方式.他们的基 本介绍如下. static默认定位方式 relative相对定位, ...

  7. Shell入门第一课

    Shell是用C语言编写的程序. 几种常见的shell:bash.sh.csh.ksh等 bash是linux的默认标准shell, 完全兼容sh sh 是unix的默认 标准shell ash 是l ...

  8. Graph Databases—The NOSQL Phenomenon阅读笔记

    本章内容着重对了NOSQL和RDBMS(关系型数据库管理系统)的不同,以及其各自背后设计时考虑的因素.然后接下来,着重讲述了NOSQL的4种分类方法.下面我们将对重要知识点进行汇总. 1.We def ...

  9. Javascript:数组和字符串的相互转化

    中午吃饭的时候,和室友讨论前端的问题,然后一个有趣的问题被抛出来: javascript用什么方法可以把“hello world”位置反转输出,即输出:"dlrow olleh"? ...

  10. Ubuntu16.04下部署 nginx+uwsgi+django1.9.7(虚拟环境pyenv+virtualenv)

    由于用的新版本系统,和旧的稍有差别,在网上搜了很多相关资料,搞了三天终于搞好在Ubuntu16.04下的部署,接下来就详细写写步骤以及其中遇到的问题.前提是安装有虚拟环境pyenv+virtualen ...