一、简介
日常工作中会面临很多问题,处理问题时候。怎么解决问题?
- 通过工作经验,迅速判断问题出在哪。
- 通过日志
- 系统日志:/var/log 目录下的问题的文件
- 程序日志: 代码日志(项目代码输出的日志)
- 服务应用日志
nginx、HAproxy、lvs
tomcat、php-fpm
redis、mysql、mongo
RabbitMq、kafka
Glusterfs、HDFS、NFS
等等
通过日志排除,发现问题根源解决问题
如果1台或者几台服务器,我们可以通过 linux命令,tail、cat,通过grep、awk等
过滤去查询定位日志查问题
但是如果几十台、甚至几百台。通过这种方式肯定不现实。
怎么办?
一些聪明人就提出了建立一套集中式的方法,把不同来源的数据集中整合到一个地方。
一个完整的集中式日志系统,是离不开以下几个主要特点的。
- 收集-能够采集多种来源的日志数据
- 传输-能够稳定的把日志数据传输到中央系统
- 存储-如何存储日志数据
- 分析-可以支持 UI 分析
- 警告-能够提供错误报告,监控机制
二、ELK 协议栈介绍及体系结构
ELK
其实并不是一款软件,而是一整套解决方案,是三个软件产品的首字母缩写,Elasticsearch
**,**Logstash
和 Kibana
。这三款软件都是开源软件,通常是配合使用,而且又先后归于 Elastic.co 公司名下,故被简称为ELK
**协议栈。**
三、集中式日志协议栈组件功能简介
- ElasticSearch : 主要是用于做全文检索功能、数据的存储和数据的查询
- Logstash: 主要是用于进行数据的传递采集工作,将数据从一个地方 搬运到另一个地方去
- Kibana : 主要是用于 图标报表展示 以及 数据探索
- Beats : 主要是用于进行数据的写入工作