ELK Stack 技术栈各个组件虽然都是开源,但是在6.8版本之前,如果需要使用安全认证、角色控制相关功能,通过购买官方的商业收费服务就可以非常简单地实现,唯一缺点就是费用不菲,如果不想购买官方收费服务,则需要进行自研扩展定制开发,但是这种时间成本和后期维护成本也很大。庆幸的是,从6.8和7.1版本开始,官方免费提供了多项安全功能,例如加密通信,基于角色访问控制(RBAC),基本上可以满足大部分公司的需求。本系列文章针对ELK7.3.0版本,搭建一套支持多系统、多用户安全认证日志平台,基本上可以作为公司的基础设施日志管理平台。
该日志管理平台的架构图如下:
大概流程介绍:
1. 两个应用系统Application1, Applicaiton2,每个应用服务器上都安装Filebeat组件,由于Logstash在进行清洗和过滤数据的时候比较耗用系统资源,如果直接把Logstash和应用系统部署在一起,可能会影响应用系统的运行,所以日志采集组件基本都是由轻量级的Filebeat替代。
2. Filebeat组件将收集到的日志发送到Redis服务器(或kafka消息中间件),Filebeat可以通过fields.log_type属性可以设置当前收集日志属于哪个应用。通过设置Redis不同的key来区别对应的应用。
3. Logstash从Redis队列中采集日志信息,通过fields.log_type来区分不同的应用服务,然后发送到Elasticsearch集群,针对不同的应用创建不同的索引文件。
4. 通过Kibana管理平台进行日志的搜索,以及用户的创建及权限设置,根据不同引用创建对应的用户,普通用户只能访问搜索自己系统的日志索引文件,无法查看其它系统生成日志索引文件。
5. Elasticsearch高可用集群部署完毕后,同时部署Elastcisearch-head插件来查看es集群信息。
本篇内容先到这里,从下一篇开始介绍各个组件的安装部署流程,其中把自己搭建过程中遇到的一些问题也会列举出来供大家参考,如果搭建过程中遇到类似的问题,可以很快得到处理,避免走一些不必要的弯路。因为有些问题也是通过摸索比较长的时间才得到解决。网上虽然有很多类似的搭建流程,但是有一些重要细节没有提到,如果完全按照网上某些流程去操作,你可能会发现根本就无法运行。只有自己真正的摸索和实践过才能加深印象和理解。
欢迎大家留言一起讨论,共同学习,一起进步!