logstash入门
此文只是logstash的简单入门,作者也只是简单了解logstash,本文只能简单介绍logstash,对完全不懂logstash是啥的人做个引导,因为我就是这样过来的~
1.logstash是什么?有什么用?
在网上搜索logstash,搜索结果中logstash一般是和elasticsearch、kibana一起讲的。感觉似乎logstash、elasticsearch、kibana一定要一起用,其实并不是这样的。logstash是用来收集日志用的,完全可以单独使用,只是这几个组合在一起疗效比较好。
做过项目的都知道,传统的日志一般是直接写文件。这些日志文件里面可能写了函数调用次数、服务请求失败的日志(比如请求内容、时间、IP什么的),这些日志往往内含丰富的内容。通过分析这些日志可以让我们知道系统主要运行哪些服务、什么时候是服务的高峰期、错误比较集中的地方是哪儿,通过了解这些内容,我们可以提升系统的性能、提供更好的服务。日志文件一般是写在本地的,如果一个分布式系统的日志全部都写在本地,我们要聚合、分析这些日志也是相当麻烦的事。这时候logstash就派上用场了,日志还是原来那样写,只不过不是写文件了,而是写到RabbitMQ、Redids这些地方,然后logstash在另一头不断的取出这些日志,然后对这些日志进行一些处理,输出到另外一个地方,比如说elasticsearch或者在线分析的平台什么的。这时候日志就写到一起了,就方便使用了。
2.logstash基础
在logstash中,一条条的日志其实都是事件。logstash事件中有一个个不同的字段,每个字段中都有不同的值。在logstash中,值可以有布尔、数值、字符串、数组和Hash表这5种类型。前三种就不说了,数组的写法是这样的["hello", "world", "!"],Hash表的写法是这样的{key1=>value1,key2=>value2}。前面说到logstash就是收集日志、处理日志然后再输出出去。所以logstash就是一种input->filter->output的过程,故logstash中就有input、filter、output这三种类型的插件来处理收集到的日志。我们在配置文件中写好相关的内容、配置好插件,logstash就会按照我们所需要的那样收集、处理并输出日志。一个logstash配置文件至少包含input、output插件,filter插件根据实际需求选择。一个logstash事件的例子(瞎写的)如下:
1 { 2 message => "Hello, world!", 3 @timestamp => "2016-07-17T12:02:58.322Z" 4 host => "XXX-PC" 5 }
刚才说了logstash可以从RabbitMQ、Kafka、Redis这些消息中间件中抽取日志,这需要配置不同的input插件。如果要从某个消息中间件、文件或者其他地方收集日志,那么就需要在配置文件中配置相应的input插件。当然很多时候,实际收集到的日志和我们实际想存储的数据模型有些差别,这时候我们就可以配置filter插件来处理这些日志。一般来说单个filter插件是不能完成任务的,那我们就配置多个,然后日志就按照filter1->filter2->....->filterN这样的顺序处理。处理完了以后就通过output插件推送到不同的地方。
3.logstash运行
使用logstash最关键的是写好配置文件,写好配置文件了,logstash就会好好的陪你玩耍。下面举几个例子:
标准输入到标准输出,并且不做任何处理:
1 input { 2 stdin { 3 } 4 } 5 output { 6 stdout { 7 codec => rubydebug 8 } 9 }
这个例子相当简单,将它保存成xxx.conf, 然后运行logstash -f xxx.conf,windows下输入 logstash.bat -f xxx.conf。你在屏幕上输入什么,就会输出一个还有message为什么的logstash事件。
从redis读取,输出到elasticsearch中:
1 input { 2 redis { 3 key => "logstash-*" 4 host => "localhost" 5 port => 6379 6 } 7 } 8 filter { 9 kv { 10 } 11 } 12 output { 13 elasticsearch{ 14 hosts => ["localhost:9200"] 15 index => "logstash" 16 type => "logstah123" 17 } 18 stdout{ 19 codec => rubydebug 20 } 21 }
打开Redis客户端,以logstash-为前缀保存"key1=val1 key2=val2 key3=val3",你会在屏幕上看到key1、key2、key3都成了不同的字段,而且val1 val2 val3就是对应的值,在elasticsearch也以这种方式保存好了。这是因为kv插件可以处理这种有规则的字符串,默认以空格区分一组key-value,以等号区分key和value。可以更改kv插件的field_split和value_split来改变kv插件的运行表现。
4.相关链接
logstash官方文档(内含各种插件的用法):
https://www.elastic.co/guide/en/logstash/current/index.html
中文书籍:
http://udn.yyuap.com/doc/logstash-best-practice-cn/get_start/index.html
转载于:https://www.cnblogs.com/DennisXie/p/5785994.html
logstash入门相关推荐
- 实战ELK(5) Logstash 入门
实战ELK(5) Logstash 入门 Logstash 是一个开源的数据收集引擎,它具有备实时数据传输能力.它可以统一过滤来自不同源的数据,并按照开发者的制定的规范输出到目的地. 一.原理 Log ...
- Logstash入门简介
Logstash入门简介 介绍 Logstash是一个开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到最喜欢的存储库中(我们的存储库当然是ElasticSearch) ...
- Logstash:Logstash 入门教程 (一)
Logstash 是一个功能强大的工具,可与各种部署集成. 它提供了大量插件,可帮助你解析,丰富,转换和缓冲来自各种来源的数据. 如果你的数据需要 Beats 中没有的其他处理,则需要将 Logsta ...
- Logstash【从无到有从有到无】【简介】【L2】Logstash入门
目录 1.Logstash入门 1.1.安装Logstash 1.1.1.从下载的二进制安装 1.1.2.从包存储库安装 1.1.3.使用Homebrew在Mac上安装Logstash 1.1.4.使 ...
- Logstash【从无到有从有到无】【L2】Logstash入门
目录 1.Logstash入门 1.1.安装Logstash 1.1.1.从下载的二进制文件安装 1.1.2.从包存储库安装(Package Repositories) 1.1.3.APT 1.1.3 ...
- ElasticSearch集群安装,Kibana安装,Logstash安装,Logstash-input-plugin-jdbc的配置使用
1.安装elasticsearch 参考:https://www.2cto.com/kf/201802/723573.html 1.1 三台机器创建es运行的用户 Es不能再root用户下启动,需要为 ...
- [Logstash]使用详解
Logstash是一款轻量级的日志搜集处理框架,可以方便的把分散的.多样化的日志搜集起来,并进行自定义的处理,然后传输到指定的位置,比如某个服务器或者文件. 本文针对官方文档进行翻译以及实践,希望有更 ...
- 日志搜集、过滤及推送处理框架logstash及fluentd总结
简介 Logstash是一个接收,处理,转发日志的工具.支持系统日志,webserver日志,错误日志,应用日志,总之包括所有可以抛出来的日志类型.怎么样听起来挺厉害的吧? 在一个典型的使用场景下(E ...
- Logstash原理介绍及应用
目录 1.Logstash安装 2.Logstash原理 2.1 输入.过滤器和输出 2.2 采集各种样式.大小和来源的数据 2.3 实时解析和转换数据 2.4 导出数据 3. LogStash入门使 ...
最新文章
- 企业级 SpringBoot 教程 (十二)springboot集成apidoc
- Context类(上下文)
- PAT_B_1059_Java(14分)_C++(20分)
- Linux C高级编程——文件操作之系统调用
- 空字符python_Python中的None与 NULL(即空字符)的区别详解
- Windows学习总结(5)——【IIS建站】Windows10怎么打开站点服务?
- Windows Server 2008 R2更新永恒之蓝 补丁包方法
- Adobe Photoshop裁剪和拉直照片改善构图
- 计算机表格出现value,excel中出现#value!的解决办法
- SDUT OJ 2144 数据结构实验之图论九:最小生成树
- 数据挖掘—Autistic Spectrum Disorder Screening Data For Children
- Caused by: java.lang.ClassNotFoundException: org.jbpm.pvm.internal.processengine.SpringHelper
- Linux管理员权限的相关命令
- Roboware studio字体断续问题
- rh5885v3服务器查看配置信息,rh5885 v3 服务器配置
- 一场中国顶级赛事掀起的浪潮:AI人才,应该这么培养!
- crypto-js aes 加解密
- OpenWrt路由器无线中继、信号放大实现
- 小程序在线支付教程一
- 【SystemVerilog基础】SystemVerilog语法之逻辑等(==)、全等(===)和匹配等(==?)