大数据入门第二十五天——logstash入门
一、概述
1.logstash是什么
根据官网介绍:
Logstash 是开源的服务器端数据处理管道,能够同时 从多个来源采集数据、转换数据,然后将数据发送到您最喜欢的 “存储库” 中。(我们的存储库当然是 Elasticsearch。)
//属于elasticsearch旗下产品(JRuby开发,开发者曾说如果他知道有scala,就不会用jruby了。。)
也就是说,它是flume的“后浪”,它解决了“前浪”flume的数据丢失等问题!
2.基础结构

输入:采集各种来源数据
过滤:实时解析转换数据
输出:选择存储库导出数据
补充:Logstash 每读取一次数据的行为叫做事件。
更多详细介绍,包括具体支持的输入输出等,参考:https://www.elastic.co/guide/index.html
用法博文推荐:https://blog.csdn.net/chenleiking/article/details/73563930
二、安装
logstash5.x 6.x需要JDK1.8+,如未安装,请先安装JDK1.8+
1.下载
https://www.elastic.co/downloads/past-releases
选择合适的版本,下载即可
2.解压
[hadoop@mini1 ~]$ tar -zxvf logstash-5.6..tar.gz -C apps/
三、入门使用
1.HelloWorld示例
运行启动命令,并直接给出配置
bin/logstash -e 'input { stdin { } } output { stdout {} }'
常用的启动参数如下:

运行结果如下:输入helloworld,给出message消息:
[hadoop@mini1 logstash-5.6.]$ bin/logstash -e 'input { stdin { } } output { stdout {} }'
Sending Logstash's logs to /home/hadoop/apps/logstash-5.6.9/logs which is now configured via log4j2.properties
[--18T16::,][INFO ][logstash.modules.scaffold] Initializing module {:module_name=>"fb_apache", :directory=>"/home/hadoop/apps/logstash-5.6.9/modules/fb_apache/configuration"}
[--18T16::,][INFO ][logstash.modules.scaffold] Initializing module {:module_name=>"netflow", :directory=>"/home/hadoop/apps/logstash-5.6.9/modules/netflow/configuration"}
[--18T16::,][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.queue", :path=>"/home/hadoop/apps/logstash-5.6.9/data/queue"}
[--18T16::,][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.dead_letter_queue", :path=>"/home/hadoop/apps/logstash-5.6.9/data/dead_letter_queue"}
[--18T16::,][INFO ][logstash.agent ] No persistent UUID file found. Generating new UUID {:uuid=>"893c481c-85d1-4746-8562-48a74dcbad08", :path=>"/home/hadoop/apps/logstash-5.6.9/data/uuid"}
[--18T16::,][INFO ][logstash.pipeline ] Starting pipeline {"id"=>"main", "pipeline.workers"=>, "pipeline.batch.size"=>, "pipeline.batch.delay"=>, "pipeline.max_inflight"=>}
[--18T16::,][INFO ][logstash.pipeline ] Pipeline main started
The stdin plugin is now waiting for input:
[--18T16::,][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>}
HelloWorld
{
"@version" => "",
"host" => "mini1",
"@timestamp" => --18T08::.798Z,
"message" => "HelloWorld"
}
2.使用配置文件
实际中的 -e 后的配置一般相对更复杂,所以一般会通过 -f 使用配置文件来启动
bin/logstash -f logstash.conf
配置文件大概长这样:
# 输入
input {
...
} # 过滤器
filter {
...
} # 输出
output {
...
}
编写一个示例的配置文件:logstash.conf:
input {
# 从文件读取日志信息
file {
path => "/home/hadoop/apps/logstash-5.6.9/logs/1.log"
type => "system"
start_position => "beginning"
}
}
# filter {
#
# }
output {
# 标准输出
stdout { codec => rubydebug }
}
输出结果如下:
[hadoop@mini1 logstash-5.6.]$ bin/logstash -f logstash.conf
Sending Logstash's logs to /home/hadoop/apps/logstash-5.6.9/logs which is now configured via log4j2.properties
[--18T16::,][INFO ][logstash.modules.scaffold] Initializing module {:module_name=>"fb_apache", :directory=>"/home/hadoop/apps/logstash-5.6.9/modules/fb_apache/configuration"}
[--18T16::,][INFO ][logstash.modules.scaffold] Initializing module {:module_name=>"netflow", :directory=>"/home/hadoop/apps/logstash-5.6.9/modules/netflow/configuration"}
[--18T16::,][INFO ][logstash.pipeline ] Starting pipeline {"id"=>"main", "pipeline.workers"=>, "pipeline.batch.size"=>, "pipeline.batch.delay"=>, "pipeline.max_inflight"=>}
[--18T16::,][INFO ][logstash.pipeline ] Pipeline main started
{
"@version" => "",
"host" => "mini1",
"path" => "/home/hadoop/apps/logstash-5.6.9/logs/1.log",
"@timestamp" => --18T08::.451Z,
"message" => "Apr 16 17:01:01 mini1 systemd: Started Session 5 of user root.",
"type" => "system"
}
四、插件的使用
logstash主要有3个主插件:输入input,输出output,过滤filter,其他还包括编码解码插件等
1.输入插件input
定义的数据源,支持从文件、stdin、kafka、twitter等来源,甚至可以自己写一个input plugin。
输入的file path等是支持通配的,例如:
path => "/data/web/logstash/logFile/*/*.log"
常用输入插件
1.file
file插件的必选参数只有path一项:部分选项如下:

// 原版的完整参数解释参见官网,中文参见上文博文参考处链接
配置示例:
input
file {
path => ["/var/log/*.log", "/var/log/message"]
type => "system"
start_position => "beginning"
}
}
2.过滤插件、输出插件
同输入插件类似,可以参考官网详细配置与参考博文
大数据入门第二十五天——logstash入门的更多相关文章
- 大数据入门第二十五天——elasticsearch入门
一.概述 推荐路神的ES权威指南翻译:https://es.xiaoleilu.com/010_Intro/00_README.html 官网:https://www.elastic.co/cn/pr ...
- 大数据入门第十五天——HBase整合:云笔记项目
一.功能简述 1.笔记本管理(增删改) 2.笔记管理 3.共享笔记查询功能 4.回收站 效果预览: 二.库表设计 1.设计理念 将云笔记信息分别存储在redis和hbase中. redis(缓存):存 ...
- 大数据笔记(十五)——Hive的体系结构与安装配置、数据模型
一.常见的数据分析引擎 Hive:Hive是一个翻译器,一个基于Hadoop之上的数据仓库,把SQL语句翻译成一个 MapReduce程序.可以看成是Hive到MapReduce的映射器. Hive ...
- Spring入门第二十五课
使用具名参数 直接看代码: db.properties jdbc.user=root jdbc.password=logan123 jdbc.driverClass=com.mysql.jdbc.Dr ...
- 孤荷凌寒自学python第二十五天初识python的time模块
孤荷凌寒自学python第二十五天python的time模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 通过对time模块添加引用,就可以使用python的time模块来进行相关的时间操 ...
- 无废话ExtJs 入门教程十五[员工信息表Demo:AddUser]
无废话ExtJs 入门教程十五[员工信息表Demo:AddUser] extjs技术交流,欢迎加群(201926085) 前面我们共介绍过10种表单组件,这些组件是我们在开发过程中最经常用到的,所以一 ...
- NeHe OpenGL教程 第二十五课:变形
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- javaSE第二十五天
第二十五天 399 1:如何让Netbeans的东西Eclipse能访问. 399 2:GUI(了解) 399 (1)用户图形界面 399 (2)两个包: 399 (3) ...
- Bootstrap入门(十五)组件9:面板组件
Bootstrap入门(十五)组件9:面板组件 虽然不总是必须,但是某些时候你可能需要将某些 DOM 内容放到一个盒子里.对于这种情况,可以试试面板组件. 1.基本实例 2.带标题的面板 3.情景效果 ...
随机推荐
- JS---函数名和变量名重名
继续作用域的问题,今天上午看了一会,下午看又看到了一个类型的题,函数名和变量名相同的问题.之前还不会觉得函数名和变量名重名了会有什么冲突.也是没有去测试过..懒了.直接贴代码: 运行之后大家猜测结果是 ...
- 2018-10-17 22:20:39 c language
2018-10-17 22:20:39 c language C语言中的空白符 空格.制表符.换行符等统称为空白符,它们只用来占位,并没有实际的内容,也显示不出具体的字符. 制表符分为水平制表符和垂 ...
- 标准标签、<jsp:include>、<jsp:forward>
使用方法 标准标签在jsp页面直接编写即可,因为标准标签是JSP规范提供的,所有容器都支持. 被替代性 标准标签的许多功能都可以被JSTL与EL表达式语言所替代. 作用 标准标签可协助编写JSP时减少 ...
- 【Kibana】Kibana入门教程
一.Kibana简介及下载安装 Kibana是专门用来为ElasticSearch设计开发的,可以提供数据查询,数据可视化等功能. 下载地址为:https://www.elastic.co/downl ...
- 如何在 Windows 10 中搭建 Node.js 环境?
[编者按]本文作者为 Szabolcs Kurdi,主要通过生动的实例介绍如何在 Windows 10 中搭建 Node.js 环境.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 在本文中 ...
- sysdate()简单用法
环境: create table rq (xm varchar2(10),age number,zw varchar(10),rzrq date);insert into rq values ('小崔 ...
- [IDEA_2] IDEA 问题合集
1. IDEA 通过 Maven 导入的依赖包下面存在红色波浪线 问题描述: 创建的 Maven Project 在添加相关依赖后自动下载,自动添加的依赖包的下面存在红色波浪线,在使用过程中存在问题, ...
- iptables实战演练
iptables禁止 ip 10.10.10.1 访问本地80端口: iptables -t filter -I INPUT -s 10.10.10.1 -p tcp –dport 80 -j DRO ...
- 深入浅出SharePoint——Search疑难排除
通过Search log http://richardstk.com/2013/12/23/using-the-sharepoint-2013-search-query-tool-with-searc ...
- SDN 第三次上机作业
SDN 第三次上机作业 1.创建拓扑 2.利用OVS命令下发流表,实现vlan功能 3.利用OVS命令查看流表 s1: s2: 4.验证性测试 5.Wireshark 抓包验证