Logstash 简介
- ELK
- 2020-08-03
- 16热度
- 0评论
ELK介绍:
所谓ELK就是指:ElasticSearch、Logstash、Kibana 这三个组件,这三个组件往往是配合使用的。我们将这三个组合起来的技术称之为 ELKStack,所以说 ELKStack 指的是 ElasticSearch、Logstash、Kibana 技术栈的结合。
ES:负责数据的存储和索引。
Logstash:负责数据采集和过滤转换(logstash在ELK中负责收集转化数据,从日志中获取的数据由它传给elasticsearch)。
Kibana:负责图形界面处理。
Logstash工作原理:
Logstash 是一款强大的数据处理工具,它可以实现数据传输,格式处理,格式化输出,还有强大的插件功能,常用于日志处理。

Logstah处理事件有三个阶段:input、filter、output。
1、input:输入,以下是常见得输入内容:
1、file:从文件系统上的文件读取,与UNIX命令非常相似 tail -0F
2、syslog:在已知端口上侦听syslog消息进行解析
3、redis:使用redis通道和redis列表从redis服务器读取。Redis通常用作集中式Logstash安装中的“代理”,该安装将Logstash事件从远程Logstash“托运人”排队。
4、beats:处理Beats发送的事件,beats包括filebeat、packetbeat、winlogbeat。
2、filter:过滤,以下是常见得过滤器:
结合条件语句对符合标准的事件进行处理。
1、grok:解析和结构化任何文本。Grok目前是logstash最好的方式对非结构化日志数据解析成结构化和可查询化。
2、mutate:在事件字段执行一般的转换。可以重命名、删除、替换和修改事件字段。
3、drop:完全丢弃事件,如debug事件
4、clone:复制事件,可能添加或者删除字段。
5、geoip:添加有关IP地理位置信息。
3、output:输出,以下是常见得输出内容:
output是logstash管道的最后一个阶段,一个事件可以经过多个output。但是一旦所有输出处理完,该事件已经执行完。
1、elasticsearch:将事件数据发送给Elasticsearch。如果您计划以高效,方便且易于查询的格式保存数据,Elasticsearch是最佳选择。
2、file:将事件数据写入磁盘上的文件。
3、graphite:将事件数据发送到graphite,这是一种用于存储和绘制指标的流行开源工具。
4、statsd:将事件数据发送到statsd,这是一种“侦听统计信息,如计数器和定时器,通过UDP发送并将聚合发送到一个或多个可插入后端服务”的服务。
编解码器:
编解码器基本上是流过滤器,可以作为输入或输出的一部分运行。使用编解码器可以轻松地将消息传输与序列化过程分开。流行的编解码器包括json, multiline等。
json:以JSON格式编码或解码数据。
multiline:将多行文本事件(例如java异常和堆栈跟踪消息)合并到一个事件中。
Logstash优点:
1、可伸缩性
a、节点应该在一组Logstash节点之间进行负载平衡。
b、建议至少使用两个Logstash节点以实现高可用性。
c、每个Logstash节点只部署一个Beats输入是很常见的,但每个Logstash节点也可以部署多个Beats输入,以便为不同的数据源公开独立的端点。
2、弹性
Logstash持久队列提供跨节点故障的保护。对于Logstash中的磁盘级弹性,确保磁盘冗余非常重要。对于内部部署,建议配置RAID。在云或容器化环境中运行时,建议使用具有反映数据SLA的复制策略的永久磁盘。
3、可过滤
对事件字段执行常规转换。可以重命名,删除,替换和修改事件中的字段。
4、可扩展插件生态系统
Logstash缺点
Logstash 耗资源较大,运行占用CPU和内存高。另外没有消息队列缓存,存在数据丢失隐患。

鲁ICP备19063141号
鲁公网安备 37010302000824号