logstash 的output插件

nginx,logstash和redis在同一台机子上

yum -y install redis,vim /etc/redis.conf 设置bind 0.0.0.0 ,使redis监听在所有端口上

systemctl start redis.service, cd /etc/logstash/conf.d

vim nglogredissample.conf

input {

file {

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

type => "nginxlog"

start_position => "beginning"

}

}

filter {

grok {

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

}

}

output {

redis {

port => "6379"

host => ["127.0.0.1"]

data_type => "list"

key => "logstash-%{type}"

}

}

其中output是将nginx的日志发送给redis的list,list是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等,操作中

key理解为链表的名字,Redis的list类型其实就是一个每个子元素都是string类型的双向链表。链表的最大长度是(2的32次方)。我们

可以通过push,pop操作从链表的头部或者尾部添加删除元素。这使得list既可以用作栈,也可以用作队列

%{type}是调用前面的nginxlog, date_type是将数据存入redis的list中

刷新一下nginx的页面,使用redis-cli登陆redis,并使用命令LLEN logstash-nginxlog 就可查看到该list有多少个元素了,使用

lindex logstash-nginxlog 0命令可以查看第一个元素,如果这些元素没被取出将会一直存在于此list中

再启动一台logstash服务器,yum -y install logstash-1.5.4-1.noarch.rpm, cd /etc/logstash/conf.d/,

vim server.conf

input {

redis {

port => "6379"

host => "192.168.204.135"

data_type => "list"

key => "logstash-nginxlog"

}

}

output {

stdout {

codec => rubydebug

}

}

这台logstash服务器的目的是到redis上去取数据,并把数据输出到标准输出,这时刷新一下nginx的页面就可以看到数据了

开启一台elasticsearch服务器,yum -y install java-1.7.0-openjdk-devel, yum -y elasticsearch-1.7.2.noarch.rpm

编辑配置文件:vim /etc/elasticsearch/elasticsearch.yml

编辑:cluster.name: loges node.name: "node1"

service elasticsearch start

/usr/share/elasticsearch/bin/plugin -i bigdesk -u file:///root/bigdesk-master.zip 安装插件

浏览器中http://192.168.204.131:9200/_plugin/bigdesk/ 访问此插件

安装kibana 4.1.4, kibana是一个前端展示数据工具,可以安装在elasticsearch集群中的某一个节点,也可以安装在一台单独的节点

上

tar xf kibana-4.1.4-linux-x64.tar.gz -C /usr/local/ cd /usr/local

ln -s kibana-4.1.4-linux-x64 kibana cd kibana/config

vim kibana.yml

修改:其实默认无需修改什么,因为kibana和上面的elasticsearch服务器在同一台主机上

启动程序在/usr/local/kibana/bin目录下,在/usr/local/kibana目录下使用bin/kibana -h 查看命令帮助

bin/kibana 运行在前台, bin/kibana &运行在后台 ss -tnl 查看5601端口是否开启

浏览器中http://192.168.204.131:5601访问kibana

现在将日志输出到ES集群中去,并有kibana展示

修改前面一台logstash服务器的配置文件,vim server.conf

input {

redis {

port => "6379"

host => "192.168.204.135"

data_type => "list"

key => "logstash-nginxlog"

}

}

output {

elasticsearch {

cluster => "loges"

index => "logstash-%{+YYYY.MM.dd}"

}

}

logstash -f ./server.conf --configtest

[2016-07-21 08:27:28.434] WARN -- Concurrent: [DEPRECATED] Java 7 is deprecated, please use Java 8.

Java 7 support is only best effort, it may not work. It will be removed in next release (1.0).

Configuration OK

检查配置文件时告诉我,虽然java 7尽力支持但见我我使用java 8 因此以后要用java 8咯

实验做到这里报错了,可能是版本的问题,架构是部署logstash在web服务器上收集日志,并将日志传给redis,另外部署一台

logstash到redis上去取日志,然后将取到的日志传给elasticsearch服务器

logstash的output插件的更多相关文章

  1. logstash之OutPut插件

    output插件是经过了input,然后过滤结构化数据之后,接下来我们需要借助output传到我们想传到的地方.output相当于一个输出管道. 2.3.1: 将采集数据标准输出到控制台 配置示例: ...

  2. 五十八.Kibana使用 、 Logstash配置扩展插件

    1.导入数据 批量导入数据并查看    1.1 导入数据   1) 使用POST方式批量导入数据,数据格式为json,url 编码使用data-binary导入含有index配置的json文件 ]# ...

  3. 使用logstash的grok插件解析springboot日志

    使用logstash的grok插件解析springboot日志 一.背景 二.解决思路 三.前置知识 四.实现步骤 1.准备测试数据 2.编写`grok`表达式 3.编写 logstash pipel ...

  4. logstash的output配置中指定elasticsearch的template

    转自:https://blog.csdn.net/felix_yujing/article/details/78930389 之前采用的是通过filebeat收集nginx的日志,直接到elastic ...

  5. ELK 学习笔记之 Logstash之output配置

    Logstash之output配置: 输出到file 配置conf: input{ file{ path => "/usr/local/logstash-5.6.1/bin/spark ...

  6. logstash之multiline插件,匹配多行日志

    在外理日志时,除了访问日志外,还要处理运行时日志,该日志大都用程序写的,比如log4j.运行时日志跟访问日志最大的不同是,运行时日志是多行,也就是说,连续的多行才能表达一个意思. 在filter中,加 ...

  7. logstash 安装zabbix插件

    <pre name="code" class="html">[root@xxyy yum.repos.d]# yum install ruby Lo ...

  8. Logstash使用grok插件解析Nginx日志

    grok表达式的打印复制格式的完整语法是下面这样的: %{PATTERN_NAME:capture_name:data_type}data_type 目前只支持两个值:int 和 float. 在线g ...

  9. logstash实战filter插件之grok(收集apache日志)

    有些日志(比如apache)不像nginx那样支持json可以使用grok插件 grok利用正则表达式就行匹配拆分 预定义的位置在 /opt/logstash/vendor/bundle/jruby/ ...

随机推荐

  1. Python读取文件文件夹并检索

    import os import os.path f=open("Shouldlist.txt") ShouldList=[] while 1: line =f.readline( ...

  2. 使用js生成下拉列表项

    在项目中经常会使用到一个简单的表单元素,那就是下拉列表.但是由于企业的列表项并不是固定的,因此列表项的内容需要到数据库或者接口中取,因此怎样获取,并且能应用到 多个相似的下拉列表就需要思考一下. 我这 ...

  3. Hibernate: 数据持久层框架

    Hibernate 是一种Java语言下的对象关系映射解决方案. 它是使用GNU宽通用公共许可证发行的自由.开源的软件.它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架.Hi ...

  4. C++中多态性学习(上)

    多态性学习(上) 什么是多态? 多态是指同样的消息被不同类型的对象接收时导致不同的行为.所谓消息是指对类的成员函数的调用,不同的行为是指不同的实现,也就是调用了不同的函数.虽然这看上去好像很高级的样子 ...

  5. ios 10 sticker pack application

    看了WWDC2016直播,我们发现变得谨慎而开放的苹果在新一版四大平台系统中展示了很多变化,当然重中之重还是伟大的iOS.通过试用iOS10beta版,除了长大了的更强大的Siri主要感受到iMess ...

  6. PHP-Manual的学习----【语言参考】----【基本语法】

    2017年6月28日11:29:311.当解析一个文件时,PHP 会寻找起始和结束标记,也就是 <?php 和 ?>,这告诉 PHP 开始和停止解析二者之间的代码.此种解析方式使得 PHP ...

  7. PHP中使用POST发送请求的常用方式

    前提概要: 在PHP进行项目开发过程中,使用post发送请求的情况很多,以下总结了项目中主要用的两种方式. 总结下: 在我接触到的项目中用到第二种情况较多,比如写:短信接口.....总体来说比较简单便 ...

  8. jQuery Easy UI Draggable(拖动)组件

    上文已经提到过了 jQuery EasyUI插件引用一般我们经常使用的有两种方式(排除easyload载入方式),所以本篇要总结的Draggable组件相同有两种方式载入: (1).使用class载入 ...

  9. phpcms的基础知识和配置

    一.设置界面 1.站点设置:相当于服务器上的站点 (1)站点修改:“关键词”和“描述”的修改,便于网络优化和搜索引擎对本网站的搜索. (2)点击站点后边的修改,模板的修改,引用自己模板 2.基本设置: ...

  10. python模块, 包的初识

    Python 模块(Module), 是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python 代码段. 把相关的代 ...