logstash的output插件
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插件的更多相关文章
- logstash之OutPut插件
output插件是经过了input,然后过滤结构化数据之后,接下来我们需要借助output传到我们想传到的地方.output相当于一个输出管道. 2.3.1: 将采集数据标准输出到控制台 配置示例: ...
- 五十八.Kibana使用 、 Logstash配置扩展插件
1.导入数据 批量导入数据并查看 1.1 导入数据 1) 使用POST方式批量导入数据,数据格式为json,url 编码使用data-binary导入含有index配置的json文件 ]# ...
- 使用logstash的grok插件解析springboot日志
使用logstash的grok插件解析springboot日志 一.背景 二.解决思路 三.前置知识 四.实现步骤 1.准备测试数据 2.编写`grok`表达式 3.编写 logstash pipel ...
- logstash的output配置中指定elasticsearch的template
转自:https://blog.csdn.net/felix_yujing/article/details/78930389 之前采用的是通过filebeat收集nginx的日志,直接到elastic ...
- ELK 学习笔记之 Logstash之output配置
Logstash之output配置: 输出到file 配置conf: input{ file{ path => "/usr/local/logstash-5.6.1/bin/spark ...
- logstash之multiline插件,匹配多行日志
在外理日志时,除了访问日志外,还要处理运行时日志,该日志大都用程序写的,比如log4j.运行时日志跟访问日志最大的不同是,运行时日志是多行,也就是说,连续的多行才能表达一个意思. 在filter中,加 ...
- logstash 安装zabbix插件
<pre name="code" class="html">[root@xxyy yum.repos.d]# yum install ruby Lo ...
- Logstash使用grok插件解析Nginx日志
grok表达式的打印复制格式的完整语法是下面这样的: %{PATTERN_NAME:capture_name:data_type}data_type 目前只支持两个值:int 和 float. 在线g ...
- logstash实战filter插件之grok(收集apache日志)
有些日志(比如apache)不像nginx那样支持json可以使用grok插件 grok利用正则表达式就行匹配拆分 预定义的位置在 /opt/logstash/vendor/bundle/jruby/ ...
随机推荐
- 《HTML 5网页开发实例具体解释》样章、内容简单介绍、前言
http://spu.jd.com/1167757597.html http://product.dangdang.com/23484942.html 样章 http://download.csdn. ...
- xcode下载低版本模拟器速度缓慢解决方案
随着苹果系统的更新和迭代,现在app开发中需要适配的除了需要适配屏幕尺寸以外,还需要适配系统版本.系统版本测试如果有条件可以使用各种系统版本的真机进行适配,如果没有这个条件,也可以采用xcode的模拟 ...
- 禁止"Windows Media Player Network Sharing Service"服务自动启动
开始 -> 运行 -> gpedit.msc -> 计算机配置 -> 管理模板 -> Windows 组件 -> Windows Media Player -> ...
- Redis源码阅读-sds字符串源码阅读
redis使用sds代替char *字符串, 其定义如下: typedef char *sds; struct sdshdr { unsigned int len; unsigned int free ...
- 【Mac系统 + Mysql】之安装Mysql数据库
安装Mysql步骤: 一.下载 参考文章<mac 安装MySQL> 到Mysql官网下载.dmg格式的文件 先放弃了,看下面的简易安装. 二.使用homebrew安装MySQL(推荐) 如 ...
- 多媒体开发之--- h264 图像、帧、片、NALU
图像.帧.片.NALU 是学习 H.264的人常常感到困惑的一些概念,我在这里对自己的理解做一些阐述,欢迎大家讨论: H.264 是一次概念的革新,它打破常规,完全没有 I 帧.P帧.B 帧的概念,也 ...
- Java学习篇之---json-lib(Maven)
json-lib(Maven) java中用于解释json的主流工具有org.json.json-lib与gson.本篇文章介绍json-lib. 项目中要用到json-lib.在pom.xml文件里 ...
- swift中的?和!理解
本文转载至 http://www.cnblogs.com/dugulong/p/3770367.html 首先贴cocoachina上某位大大的帖子: Swift语言使用var定义变量,但和别 ...
- WinForm开发----关闭window窗体最好的办法
最近有一人问道,如何切换窗体.一想到这,我就想,不就是new一个form,然后就show么? 可是我发现,当你控制某个属性的时候,不是不能控制,只是很麻烦而已.有没有好的办法?当然有,咋办? 最简单最 ...
- docker笔记一
docker概念介绍: docker 是一个装在linux上的普通的软件.利用docker的命令,可以创建一个带有linux操作系统的镜像文件,docker命令运行这个带的linux操作系的镜像文件, ...