ELK:
E代表Elasticsearch K代表Kibana L代表LogStash
什么是LogStash?
Logstash是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的"存储库"中。
为什么使用LogStash?
通常当系统发生故障时,工程师需要登录到各个服务器上,使用grep / sed/ awk 等Linux脚本工具去日志里查找故障原因。在没有日志系统的情况下,首先需要定位处理请求的服务器,如果这台服务器部署了多个实例,则需要去每个应用实例的日志目录下去找日志文件。每个应用实例还会设置日志滚动策略(如:每天生成一个文件),还有日志压缩归档策略等。
这样一系列流程下来,对于我们排查故障以及及时找到故障原因,造成了比较大的麻烦。因为,如果我们能把这些日志集中管理,并提供集中检索功能,不仅可以提高诊断的效率,同时对系统情况有个全面的理解,避免事后救火的被动。
所以日志集中管理功能就可以使用ELK技术栈进行实现,Elasticsearch只有数据存储和分析的能力,Kibana就是可视化管理平台。还缺少数据收集和整理的角色,这个功能就是Logstash负责的。
基于Docker安装Logstash
拉取LogStash 镜像
docker pull logstash:7.6.2
启动容器
docker run -it -p 4560:4560 --name logstash -d logstash:7.6.2
修改配置
进入容器
docker exec -it logstash /bin/bash
修改配置文