ELK日志分析系统
ELK概述:
ELK平台是一套完整的日志集中处理解决方案,将ElasticSearch、Logstash和Kiabana三个开源工具配合使用,完成更强大的用户对日志的查询、排序、统计需求。
1、ElasticSearch:
- 是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志
- 是用Java开发的,可通过RESTful Web接口,让用户可以通过浏览器与ElasticSearch通信
- 是个分布式搜索和分析引擎,优点是能对大容量的数据进行接近实时的存储、搜索和分析操作
2、Logstash:
- 作为数据收集引擎。它支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置,一般会发送给ElasticSearch。
- Logstash由JRuby语言编写,运行在Java虚拟机(JVM)上,是一款强大的数据处理工具,可以实现数据传输、格式处理、格式化输入。Logstash具有强大的插件功能,常用于日志处理。
3、Kiabana:
是基于Node.js开发的展示工具,可以为Logstash和ElasticSearch提供图形化的日志分析web界面展示,可以汇总、分析和搜索重要数据日志。
4、Filebeat:
轻量级开源日志文件数据搜集器。通常需要采集数据的客户端安装Filebeat,并指定目录与日志格式,Filebeat就能快速收集数据,并发送给logstash进行解析,或直接发给ElasticSearch存储,性能上相比运行于JVM上的logstash优势明显,是对它的替代。
为什么要使用ELK:
日志主要包括系统日志,应用程序日志和安全日志。系统运维和开发人员可以通过日志了解诶服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。
往往单台机器的日志我们使用grep、awk等工具就能基本实现简单分析,但是当日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统的方法查阅日志。这样是不是感觉和繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用grep、awk和wc等Linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数据依然使用这样的方法难免有点力不从心。
一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据需要问题暴露的关键信息,定位到具体的服务器和服务模块,构建一套集中式日志系统,可以提高定位问题的效率。
完整日志系统基本特征:
- 收集:能够采集多种来源的日志数据
- 传输:能够稳定的把日志数据解析过滤并传输到存储系统
- 存储:存储日志数据
- 分析:支持UI分析
- 警告:能够提供错误报告,监控机制
ELK工作原理:
- 在所有需要收集日志的服务器上部署Logstash:或者先将日志进行集中化管理在日志服务器上,在日志服务器上部署Logstash
- Logstash收集日志,将日志格式化并输出到ElasticSearch集群中
- ElasticSearch对格式化后的数据进行索引和存储
- Kibana从ES集群中查询数据生成图像,并进行前端数据的展示
部署Elasticsearch集群
1、环境准备


2、部署Elasticsearch软件
(1)安装elasticsearch包

(2)加载系统服务

(3)修改elasticsearch主配置文件





(4)创建数据存放路径并授权

(5)启动服务

(6)查看



3、安装Elasticsearch-head插件
使用上述方式查看集群的状态对用户不太友好,可以安装Elasticsearch-head插件更方便的管理集群
(1)编译安装node



(2)安装phantomjs


(3)安装Elasticsearch-head数据可视化工具


(4)修改主配置文件



(5)启动服务

(6)查看

(7)插入索引


Logstash部署
1、更改主机名

2、安装Apache服务(httpd)


3、安装Java环境


4、安装logstash



5、测试Logstash
常用选项
| -f | 通过这个选项可以指定Logstash的配置文件,根据配置文件配置Logstash的输入和输出流 |
| -e | 从命令中获取,输入、输出后面跟着字符串,该字符串可以被当作Logstash的配置(如果是空,则默认使用stdin作为输入,stdout作为输出) |
| -t | 测试配置文件是否正确,然后退出 |
定义输入和输出流

使用rubydebug输出详细格式显示

使用Logstash将信息写入Elasticsearch中


6、定义logstash配置文件
三个部分组成:input、output以及filter(根据需求选择使用)



Kiabana部署
1、安装包

2、设置Kibana的主配置文件




3、验证


Filebeat部署:
1、安装包


2、设置filebeat的主配置文件



3、在logstash组件所在的节点上新建一个logstash配置文件


4、验证



浙公网安备 33010602011771号