Logstash的插件:

input插件:

File:从指定的文件中读取事件流;

使用FileWatch(Ruby Gem库)监听文件的变化。

.sincedb:记录了每个被监听的文件的inode, major number, minor nubmer, pos;

一下是一个收集日志简单的示例:

input {

file {

path => ["/var/log/messages"]

type => "system"

start_position => "beginning"

  }

}

output {

stdout {

codec => rubydebug

  }
}

["/var/log/messages"]中可以包含多个文件[item1, item2,...] start_position => "beginning"表示从第一行开始读

udp:通过udp协议从网络连接来读取Message,其必备参数为port,用于指明自己监听的端口,host则用指明自己监听的地址

collectd:性能监控程序,基于c语言开发,以守护进程方式运行,能够收集系统性能各方面的数据,并将收集的结果存储下来,能够通

过network插件,把自己在本机收集到的数据发送给其他主机

collectd的包在epel源中,yum -y install epel-release;yum -y install collectd, collecctd的配置文件为/etc/collectd.conf

vim /etc/collectd.conf,将Global settings for the daemon下的Hostname设置一个名字:Hostname "node1"

找到LoadPlugin section,将LoadPlugin df去掉注释,LoadPlugin network启动

在<Plugin network> </Plugin> 的下面再定义一段:

<Plugin network>

<Server "192.168.204.135" "25826">

</Server>

</Plugin>

表示将数据传给192.168.204.135主机,此主机监听的端口为25826

service collectd start

192.168.204.135安装了lostash,下面是一个UDP的配置文件示例

input {

udp {

port => 25826

codec => collectd {}

type => "collectd"
  }
}

output {

stdout {

codec => rubydebug
  }
}

codec => collectd {} 将collectd发送过来的信息做专门的编码

type => "collectd" 类型可以随意取名

logstash -f /etc/logstash/conf.d/udp.conf --configtest logstash -f /etc/logstash/conf.d/udp.conf

这是就可以收到来之collectd的信息了

redis插件:

从redis读取数据,支持redis channel和lists两种方式

filter插件:

用于在将event通过output发出之前对其实现某些处理功能

grok:用于分析并结构化文本数据;目前 是logstash中将非结构化日志数据转化为结构化的可查询数据的不二之选。

syslog, apache, nginx

模式定义位置:/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-0.3.0/patterns/grok-patterns

语法格式:

%{SYNTAX:SEMANTIC}

SYNTAX:预定义模式名称;

SEMANTIC:匹配到的文本的自定义标识符;

例如:1.1.1.1 GET /index.html 30 0.23

{ "message" => "%{IP:clientip} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %

{NUMBER:duration}" }

vim groksample.conf 一个配置示例

input {

stdin {}
  }

filter {

grok {

match => { "message" => "%{IP:clientip} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %

{NUMBER:duration}" }
  }
}

output {

stdout {

codec => rubydebug
  }
}

logstash -f /etc/logstash/conf.d/groksample.conf --configtest

logstash -f /etc/logstash/conf.d/groksample.conf

输入1.1.1.1 GET /index.html 30 0.23, 得出结果

1.1.1.1 GET /index.html 30 0.23

{

"message" => "1.1.1.1 GET /index.html 30 0.231.1.1.1 GET /index.html 30 0.23",

"@version" => "1",

"@timestamp" => "2016-07-20T11:55:31.944Z",

"host" => "centos7",

"clientip" => "1.1.1.1",

"method" => "GET",

"request" => "/index.html",

"bytes" => "30",

"duration" => "0.231"

}

自定义grok的模式:grok的模式是基于正则表达式编写,其元字符与其它用到正则表达式的工具awk/sed/grep/pcre差别不大

自定义的机会一般不大

匹配apache log示例 vim apachesample.conf

input {

file {

path => ["/var/log/httpd/access_log"]

type => "apachelog"

start_position => "beginning"
  }
}

filter {

grok {

match => { "message" => "%{COMBINEDAPACHELOG}" }

  }
}

output {

stdout {

codec => rubydebug
  }
}

nginx log的匹配方式:

将如下信息添加至 /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-0.3.0/patterns/grok-patterns文

件的尾部

#Nginx log

NGUSERNAME [a-zA-Z\.\@\-\+_%]+

NGUSER %{NGUSERNAME}

NGINXACCESS %{IPORHOST:clientip} - %{NOTSPACE:remote_user} \[%{HTTPDATE:timestamp}\] \"(?:%

{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})\" %

{NUMBER:response} (?:%{NUMBER:bytes}|-) %{QS:referrer} %{QS:agent} %{NOTSPACE:http_x_forwarded_for}

yum -y install epel-release;yum -y install nginx;systemctl start nginx

vim nginxsample.conf

input {

file {

path => ["/var/log/nginx/access.log"]

type => "nginxlog"

start_position => "beginning"
  }
}

filter {

grok {

match => { "message" => "%{NGINXACCESS}" }
  }
}

output {

stdout {

codec => rubydebug
  }
}
logstash -f /etc/logstash/conf.d/nginxsample.conf

Logstash的插件的更多相关文章

  1. logstash常用插件解析

    官方地址:https://www.elastic.co/guide/en/logstash-versioned-plugins/current/index.html 配置文件写法: # 日志导入inp ...

  2. logstash过滤器插件filter详解及实例

    1.logstash过滤器插件filter 1.1.grok正则捕获 grok是一个十分强大的logstash filter插件,他可以通过正则解析任意文本,将非结构化日志数据弄成结构化和方便查询的结 ...

  3. ElasticSearch7.3学习(三十二)----logstash三大插件(input、filter、output)及其综合示例

    1. Logstash输入插件 1.1 input介绍 logstash支持很多数据源,比如说file,http,jdbc,s3等等 图片上面只是一少部分.详情见网址:https://www.elas ...

  4. Logstash——multiline 插件,匹配多行日志

    本文内容 测试数据 字段属性 按多行解析运行时日志 把多行日志解析到字段 参考资料 在处理日志时,除了访问日志外,还要处理运行时日志,该日志大都用程序写的,比如 log4j.运行时日志跟访问日志最大的 ...

  5. logstash date插件介绍

    时间处理(Date) 之前章节已经提过, filters/date 插件可以用来转换你的日志记录中的时间字符串,变成 LogStash::Timestamp 对象,然后转存到 @timestamp 字 ...

  6. Logstash filter 插件之 grok

    本文简单介绍一下 Logstash 的过滤插件 grok. Grok 的主要功能 Grok 是 Logstash 最重要的插件.它可以解析任意文本并把它结构化.因此 Grok 是将非结构化的日志数据解 ...

  7. 如何进行Logstash logstash-input-jdbc插件的离线安装

    我们单位的服务器位于隔离区,不允许链接互联网,因此整理了在ELK集群上离线安装Logstash的jdbc input插件的方法,供大家参考. 总体思路是需要一台中转的机器,这台机器需要能够访问互联网, ...

  8. 第二章 logstash - 输出插件之redis与es

    最常用的两个输出插件: redis es 一.redis 1.用法 output { redis{ batch => false batch_events => 50 batch_time ...

  9. Logstash zabbix 插件

    zabbix 监控 logstash 安装社区扩展包wget http://download.elasticsearch.org/logstash/logstash/logstash-contrib- ...

随机推荐

  1. $.ajax 温故而知新坑

    $.ajax的配置项中使用 contentType: "application/json" 时,Data选项允许为String类型,如JSON.stringify({abc:123 ...

  2. 修改NameNode端口后,hive表查询报错

    在进行使用hive查询表数据的时候,抛出异常 hive> select*from blackList;FAILED: SemanticException Unable to determine ...

  3. 使用jstl标签报错:According to TLD or attribute directive in tag file, attribute value

    原来jstl标签版本不一样,标签支持不一样. jstl1.0标签库不支持表达式,如: <c:if test="${query01 == null}">   <js ...

  4. 今天学习Ibatis,花了我一个下午的时间,程序猿呀,你上点心吧

    今天花了半天的时间完成了一个小小小的项目 烦了两个错误:第一个没有对Dao层进行实例化, 第二个错误是: 给数据表其错了名字,现在很混乱呀 不能其Content相似的名字呀! 还是等心情平复了再写日记 ...

  5. HBase中我认为比较常用的两个类:Scan和Filter

    学习HBase一段时间后,我认为HBase中比较常用,同时也是必须掌握的两个API是Scan和Filter.如下是我的理解: 1.Scan  ---- 扫描类 作用:用来对一个指定Table进行按行扫 ...

  6. IIS 实现一个主机部署多个网站 共享80端口

    如果一个主机只是建立一个80端口的网站就有点浪费了,通过本文你就可以实现,在一个主机上建立多个80端口的站点,并通过不同的域名进行访问. 打开iis软件:控制面板-->管理工具-->Int ...

  7. DJI SDK iOS 开发之中的一个:前言

    写这个开发教程之前,还是先说点什么. 首先要声明的是我并非DJI的员工.仅仅是DJI 飞行器的爱好者. 在DJI的phantom出来之后.我就一直期待着能够推出SDK.之前最早是Parrot的AR D ...

  8. Oracle中NVL、NVL2、NULLIF 三个函数的区别?

    首先说明:NULL指的是空值,或者非法值. 1.NVL (expr1, expr2)expr1为NULL,返回expr2:不为NULL,返回expr1.注意两者的类型要一致 2.NVL2 (expr1 ...

  9. 你须知道的30个CSS选择器 »

    你也许已经掌握了id.class.后台选择器这些基本的css选择器.但这远远不是css的全部.下面向大家系统的解析css中30个最常用的选择器,包括我们最头痛的浏览器兼容性问题.掌握了它们,才能真正领 ...

  10. 宇视摄像机/NVR OCX插件插件安装出现:Failed to register ocx, error code 14001 错误的解决方法

    最近在使用EasyNVR接入海康.宇视的摄像机进行景观直播的项目时,需要进入宇视设备进行音视频编码参数的调整,要说呢,海康的产品好就是要好很多: 海康的设备后台管理页面,不需要装插件也能进去,而且能调 ...