快速认识ELK中的L - Logstash

原创 2016-12-07 杜亦舒

简介

Logstash 是一个开源的数据采集引擎。

Logstash 就像是一个管子,左面接数据源接收数据,右面接存储目的地,管子中间有过滤器,对接收到的数据进行过滤,只存储符合要求的数据。

例如

左面可以对接 日志文件ReidsKafka ……

右面可以对接 ElasticsearchKafkaMongoDB……

所以 Logstash 的核心构成就是 inputfilteroutput

Logstash 可以整合那么多技术,与每个技术进行对接时,是不是都需要我们自己写代码呢?

Logstash 已经准备了200多个插件,接入这些主流技术时,只需要简单配置一下就行了,在不满足需求时,也可以自己进行扩展。

下面就实际体验一下Logstash,看看如何对接 ElasticsearchRedis

安装

Logstash 不需要安装,只要已经安装好了JAVA环境,下载解压后就可以用。

  • 下载

https://www.elastic.co/downloads/logstash

解压

tar zxvf logstash-5.0.2.tar.gz
  • 运行

进入解压目录,执行bin目录下的logstash命令

cd logstash-5.0.2
bin/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的更多相关文章

  1. 使用Docker快速搭建ELK环境

    今天由于Win系统的笔记本没带回家,其次Docker在非Linux系统下都需要安装额外的软件去镜像才行 所以感觉没有差别,先直接用Mac搭建一遍呢, 本篇部分命令和配置内容为摘抄 Mac下使用Dock ...

  2. 快速搭建ELK日志分析系统

    一.ELK搭建篇 官网地址:https://www.elastic.co/cn/ 官网权威指南:https://www.elastic.co/guide/cn/elasticsearch/guide/ ...

  3. 使用Docker快速部署ELK分析Nginx日志实践(二)

    Kibana汉化使用中文界面实践 一.背景 笔者在上一篇文章使用Docker快速部署ELK分析Nginx日志实践当中有提到如何快速搭建ELK分析Nginx日志,但是这只是第一步,后面还有很多仪表盘需要 ...

  4. .NetCore快速搭建ELK分布式日志中心

    懒人必备:.NetCore快速搭建ELK分布式日志中心   该篇内容由个人博客点击跳转同步更新!转载请注明出处! 前言 ELK是什么 它是一个分布式日志解决方案,是Logstash.Elastaics ...

  5. 使用Docker快速部署ELK分析Nginx日志实践

    原文:使用Docker快速部署ELK分析Nginx日志实践 一.背景 笔者所在项目组的项目由多个子项目所组成,每一个子项目都存在一定的日志,有时候想排查一些问题,需要到各个地方去查看,极为不方便,此前 ...

  6. ELK技术栈之-Logstash详解

    ELK技术栈之-Logstash详解   前言 在第九章节中,我们已经安装好Logstash组件了,并且启动实例测试它的数据输入和输出,但是用的是最简单的控制台标准输入和标准输出,那这节我们就来深入的 ...

  7. [.NET] 《Effective C#》快速笔记 - C# 中的动态编程

    <Effective C#>快速笔记 - C# 中的动态编程 静态类型和动态类型各有所长,静态类型能够让编译器帮你找出更多的错误,因为编译器能够在编译时进行大部分的检查工作.C# 是一种静 ...

  8. elk 日志分析系统Logstash+ElasticSearch+Kibana4

    elk 日志分析系统 Logstash+ElasticSearch+Kibana4 logstash 管理日志和事件的工具 ElasticSearch 搜索 Kibana4 功能强大的数据显示clie ...

  9. 【linux】【ELK】搭建Elasticsearch+Logstash+Kibana+Filebeat日志收集系统

    前言 ELK是Elasticsearch.Logstash.Kibana的简称,这三者是核心套件,但并非全部. Elasticsearch是实时全文搜索和分析引擎,提供搜集.分析.存储数据三大功能:是 ...

随机推荐

  1. 测试-Animator的“当前剪辑CurrentAnimatorStateInfo”

    左边是Transport到Idle,右边是完全到Idle 当进入过渡时,事实上Transport状态并未结束,通过下面打印出来的hash可以看出还是Transport的状态 过渡结束才正式变为Idle ...

  2. hiho 第116周,最大流最小割定理,求最小割集S,T

    小Hi:在上一周的Hiho一下中我们初步讲解了网络流的概念以及常规解法,小Ho你还记得内容么? 小Ho:我记得!网络流就是给定了一张图G=(V,E),以及源点s和汇点t.每一条边e(u,v)具有容量c ...

  3. web前端职业规划

    关于一个WEB前端的职业规划,其实是有各种的答案,没有哪种答案是完全正确的,全凭自己的选择,只要是自己选定了, 坚持去认真走,就好.在这里,我只是简要说一下自己对于这块儿内容的理解.有一个观点想要分享 ...

  4. CentOS 安装Redis

    redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的value类型相对更多,包括strin ...

  5. 2015年江西理工大学C语言程序设计竞赛(初级组)

    JankTao相亲记 解法:排序 #include<stdio.h> #include<string.h> #include<iostream> #include& ...

  6. [webkit移动开发笔记]之如何去除android上a标签产生的边框

    去年年底,做完最后一个项目就可以开开心心回家,可是在测试阶段,发现了不少bug,为了不影响回家时间,加班加点也要解决这些问题,这里算是工作回忆,也算是工作的一点小总结. 在ios4+和android2 ...

  7. Nginx架构的企业级应用

    Nginx架构的企业级应用 ==================================================== 实现HA高可用集群 实现LB负载均衡集群 Nginx实现反向代理 ...

  8. Twitter数据抓取

    说明:这里分三个系列介绍Twitter数据的非API抓取方法.有兴趣的QQ群交流: BitCrawler网络爬虫QQ群 322937592 1.Twitter数据抓取(一) 2.Twitter数据抓取 ...

  9. SqlSever基础 select 用+号连接两个字符串

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...

  10. [HDOJ3718]Similarity(KM算法,二分图最大匹配)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3718 题意:有一堆答题情况和正确答案,问每一个答题情况的正确率最大是多少. 给每一对答案和答题情况的字 ...