背景:在开发调试阶段,发现bug后开始在服务器上查找日志,但是这个过程真的好痛苦.
一种方式是直接在服务器上tail -f 或者tail -n 直接查看,但是日志太多,不容易发现问题
另一种方式导出最近的日志到本地,打开本地编辑器一点一点查看
但是两种方式都很麻烦,有没有轻松一点的方法呢?
在这个开源的时代,一直听说elk架构,那就搭建这个日志系统,感受下这个系统的魅力吧
基本服务介绍
什么是elasticsearch
Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎, 一切设计都是为了提高搜索的性能
1. 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
2. 实时分析的分布式搜索引擎。
3. 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。
什么是Filebeat
go语言开发的,一个轻量级的日志收集的工具,消耗更少的cpu 和 内存。
什么是Logstash
Logstash 是一个轻量级、开源的服务器端数据处理管道,允许您从各种来源收集数据,进行动态转换,并将数据发送到您希望的目标
但是logstash java开发,依赖jvm,相对filebeat还是比较消耗服务器资源
主要工作过程是是 input->filter->output
获取输入, 过滤解析, 重新输出,配置比较简单
什么是Kibana
Kibana 是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之一,设计用于和 Elasticsearch 协作。
可以使用 Kibana 对 Elasticsearch 索引中的数据进行搜索、查看、交互操作。
可以很方便的利用图表、表格及地图对数据进行多元化的分析和呈现。
怎么使用?
因为logstash服务比较重,所以我们主要是通过filebeat来采集日志信息,都交给logstash,通过logstash过滤输出到elasticsearch中.
建议的服务搭建
1. 独立的es集群
2. 每个服务器上安装filebeat进行日志采集
3. 单独的logstash服务,来接收filebeat日志,过滤并输出到es中
4. 单独的kibana服务,来做数据段web页面展示
来贴张常用的架构图
安装服务
官网 https://www.elastic.co/cn/downloads/
首先我选择安装目录为
mkdir -p /usr/local/elk
0 服务器先安装 jdk环境, 版本jdk8 以上
推荐yum安装
1 下载安装 elasticsearch
下载e