logstash系列-入门整理
2020-06-10 16:02:30来源:博客园 阅读 ()
logstash系列-入门整理
logstash原理图示,入门理解定位:采集日志源和解析处理日志事件
一、理解input,queue,pipline运行的线程模型
简述:
(1)每个Input启动一个线程,从对应数据源获取数据
(2)Input会将数据写入一个队列:默认为内存中的有界队列(意外停止会导致数据丢失)。为了防止数丢失Logstash提供了两个特性:
Persistent Queues:通过磁盘上的queue来防止数据丢失
Dead Letter Queues:保存无法处理的event(仅支持Elasticsearch作为输出源)
(3)Logstash会有多个pipeline worker, 每一个pipeline worker会从队列中取一批数据,然后执行filter和output(worker数目及每次处理的数据量由配置确定)
二、Persistent Queue说明
https://www.elastic.co/guide/en/logstash/current/persistent-queues.html
提供at-least-once保证消息不丢失,但不保证不重复
局限性:tcp,udp,ZeroMQ,以及没有ack机制的input类型,无法保证数据不丢失;持久化硬盘损坏,故障情况无法处理
三、配置处理三阶段
四、Reload过程
https://www.elastic.co/guide/en/logstash/current/reloading-config.html
命令:bin/logstash -f xxx.config --config.reload.automatic,(reload和-e命令不能同时使用)
可选参数:--config.reload.interval <interval>:指定检查时间间隔(单位s,参数值中需要带上单位s),logstash默认每3秒检查一次配置参数变化
如果启动logstash时未启用reload,在运行中想强制reload,可以使用SIGHUP(signal hangup)参数执行如下命令:
kill -SIGHUP <pid>
原理:
- 检测到配置文件变化
- 通过停止所有输入停止当前pipline
- 用新的配置创建一个新的管道
- 校验配置文件语法是否正确
- 校验所有的输入和输出是否可以初始化
- 校验成功使用新的pipeline替换当前的pipeline,
- 校验失败,使用旧的继续工作,将校验信息输出到控制台
在重载过程中,jvm不会重启
备忘:syslog的重载配置文件会崩溃
五、4类插件
Inputs:file,syslog,kafka,beats,log4j,jdbc 等
Filters:处理数据如格式转换,数据派生等,常见:grok, mutate, drop, clone等
Outputs:kafka, elastcisearch,file,
Codecs:Codecs不是一个单独的流程,而是在输入和输出等插件中用于数据转换的模块,用于对数据进行编码处理,常见的如json,multiline
原文链接:https://www.cnblogs.com/yb38156/p/13054004.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Spring系列.ApplicationContext接口 2020-06-11
- Java 入门教程 2020-06-09
- 秒懂系列,超详细Java枚举教程!!! 2020-06-08
- RocketMQ4.4 入门进阶+实战 2020-06-08
- 因为 MongoDB 没入门,我丢了一份实习工作 2020-06-07
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash