快速认识 ELK 中的 L:Logstash
来源:互联网 发布:mac大型网游 编辑:程序博客网 时间:2024/06/03 16:41
简介
Logstash 是一个开源的数据采集引擎。
Logstash 就像是一个管子,左面接数据源接收数据,右面接存储目的地,管子中间有过滤器,对接收到的数据进行过滤,只存储符合要求的数据。
例如
左面可以对接 日志文件 、 Reids 、 Kafka ……
右面可以对接 Elasticsearch 、 Kafka 、 MongoDB ……
所以 Logstash 的核心构成就是 input
、 filter
、 output
。
Logstash 可以整合那么多技术,与每个技术进行对接时,是不是都需要我们自己写代码呢?
Logstash 已经准备了200多个插件,接入这些主流技术时,只需要简单配置一下就行了,在不满足需求时,也可以自己进行扩展。
下面就实际体验一下Logstash,看看如何对接 Elasticsearch 、 Redis 。
安装
Logstash 不需要安装,只要已经安装好了JAVA环境,下载解压后就可以用。
下载
https://www.elastic.co/downloads/logstash
解压
tar zxvf logstash-5.0.2.tar.gz
运行
进入解压目录,执行bin目录下的logstash命令
cd logstash-5.0.2bin/logstash -e 'input { stdin { } } output { stdout {} }'
这个命令是在启动时指定了一个简单的配置:input 和 output 都是标准的输入输出 - 屏幕
启动过程需要一小段时间,等待一下,启动完成后,会显示信息“Successfully started Logstash ... ”
然后输入一个字符串试试,例如
hello world
就会得到一条反馈
2016-12-07T08:38:18.711Z MacbookPro.local hello world
这样我们就完成了一个最简单的体验。
输出到Elasticsearch
上个例子中把output指向了屏幕,现在试试输出到 elasticsearch
使用下面的命令启动logstash
bin/logstash -e 'input { stdin { } } output { elasticsearch { } }'
input 还是屏幕,output 指向了 elasticsearch,其中没有任何参数,就是使用默认参数,连接到本地的9200端口,如果是其他地址,可以通过参数 host
指定。
启动后,会自动在 elasticsearch 中创建索引,查看一下 es 的所有索引
curl 'localhost:9200/_cat/indices?v'
会看到一个 logstash
开头的索引
然后在 logstash 中随意输入字符串测试一下,这时就没有反馈信息了
到 elasticsearch 中查看一下
curl -XGET 'localhost:9200/logstash-2016.12.03/_search?pretty' -d'{ "query": { "match_all": {} }, "size": 100}'
会显示出刚刚输入的字符串。
从Redis读取数据
下面把input改为redis,output还使用屏幕,便于查看
新建配置文件 conf/redis.conf
input { redis { data_type => "pattern_channel" key => "logstash-*" host => "localhost" port => 32768 }}output { stdout { codec => rubydebug }}
input 中配置了redis的连接信息和key的匹配规则
output 中的 codec 用来对输出信息进行美化
启动
bin/logstash -f conf/redis.conf
启动完成后,等待redis的数据
然后在redis中输入命令
PUBLISH logstash-demo "hello world"
在logstash的控制台中就可以看到接收到的信息:
{ "@timestamp" => 2016-12-07T09:37:51.533Z, "@version" => "1", "message" => "hello world", "tags" => [ [0] "_jsonparsefailure" ]}
小结
上面我们体验了3个示例:
1)最简单的屏幕输入屏幕输出
2)屏幕输入,输出到elasticsearch
3)Redis输入,屏幕输出
可以感受到logstash的简单便利和使用方法。
ELK是一套很强大的组合,以后再深入介绍,希望本文能让您明白了logstash的使用思路。
点击“阅读原文”查看 文章列表
- 快速认识ELK中的L - Logstash
- 快速认识 ELK 中的 L:Logstash
- ELK中的logstash启动后无输出
- ELK -Logstash
- ELK(二)安装logstash
- ELK之Logstash
- ELK(一)Logstash
- ELK logstash 学习一
- ELK 之 Logstash
- ELK--Logstash入门
- ELK-ElasticSearch+Logstash+Kibana
- ELK-Logstash(1)
- ELK 之 Logstash
- ELK学习3_使用redis+logstash+elasticsearch+kibana快速搭建日志平台
- ELK日志收集存储分析-----logstash+elasticsearch+kibana快速搭建日志平台
- ELK学习3_使用redis+logstash+elasticsearch+kibana快速搭建日志平台
- Logstash ELK Stack Install & Configuration
- Elasticsearch, Logstash, Kibana (ELK) 搭建
- 并查集
- 最小生成树Prim算法Kruskal算法
- Uva-156 Ananagrams
- 病毒&烦人的幻灯片
- 生成随机数
- 快速认识 ELK 中的 L:Logstash
- 素数
- 《将博客搬至CSDN》
- Pandoc —— 标记语言转换工具(中文乱码问题)
- [置顶]图论算法大集锦(持续更新中)
- 二叉树的所有路径
- 程序员加班解读
- 2017-04-21(#考虑是否使用long long !!!!!!!!!)
- 74. Search a 2D Matrix