1.日志监控架构
监控系统采用业界主流的运维日志监控相关开源技术,具体架构图如下:

Elasticsearch
ElasticSearch是一个基于Lucene的搜索服务器。使用其来完成日志的检索、分析工作。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。并且其有丰富的插件资源,可快速高效实现对应功能的扩展。
Logstash
Logstash是一个用于管理日志和事件的工具,使用其去收集日志、转换日志、解析日志并将他们作为数据提供给其它模块调用,例如搜索、存储等。
Kibana
Kibana是一个优秀的前端日志展示框架,它可以非常详细的将日志转化为各种图表,为用户提供强大的数据可视化支持。我们使用Kibana来进行日志数据的展示工作。
2.数据采集
日志监控系统的数据采集模块具有实时输入数据能力。可以把来自不同源的数据动态的写入指定的数据处理模块并对采集的数据进行规范化。根据需求进行分析和展示。
1.数据采集类型
•处理所有类型的日志记录数据
o可采集众多的Apache和类似的log4应用程序的应用日志
o可采集许多其他日志格式,如syslog, Windows事件日志,网络和防火墙日志等
•使用Filebeat享受互补的安全日志转发功能
•通过TCP和UDP 从Ganglia,collectd, NetFlow,JMX以及许多其他基础架构和应用程序平台收集指标
2.数据采集方式
• 将HTTP请求转换为事件
• 根据需要轮询HTTP端点来 创建事件
3.数据处理和搜索
日志监控系统的数据处理可以简单的通过HTTP方式,使用JSON来操作数据,支持对分布式集群的搜索。并对外提供基于Restful API的相关接口。
• 实时全文索引,每个字段都被索引并可被搜索
• 可分布式实时文件存储
• 可实时分析的分布式搜索引擎
• 可横向扩展服务器
基于时间序列的索引,通过采集的数据中时间关键字进行数据的索引,可做放大和缩小结果的时间区间操作,以快速揭示趋势、高峰和异常情况。同时如果发现数据时间缺失,进行数据清洗,保证数据的时间有效性。
基于关键字的索引,通过设置相关关键字对采集的数据进行关键字索引。可进行动态深入分析,和自定义相关数据分析场景并降噪。
通过时序和关键字可做基于样本数据的优化查询,实时分析大型日志数据.并可在数据中发现关系,关联多数据源及复杂时间,建立相关的数据模型,并提供更有意义的监控功能。
4.机器学习
日志监控系统集成机器学习模块,可通过时间序列进行机器学习:
• 猜测那些特性可能对相关性的预测有所帮助, 比如指定域匹配的 TF*IDF , 新近程度, 搜索用户的个性特征等等。
• 对一个模型进行训练使其能够精确地将特性匹配到一个相关度等级上去。
• 将模型部署到你的搜索设施上去,利用它来在生产环境中对搜索结果进行排名。
并且可通过脚本语言ranklib进行学习模型的自定义.
5.数据安全
提供对数据的保护,以及基于角色的权限控制,IP 过滤,审计等功能。
1.数据通讯加密通信
使用SSL/TLS加密相应端口(9300),防止集群被未授权的机器监听或干扰
2.权限控制
• 防止未授权的访问:基于 Password-Protect,基于角色的权限控制,IP过滤;
• 被保护的资源Secured Resource:权限所应用到的对象,比如某个索引,集群等等
• 许可Permissions:对被保护的资源拥有的一个或多个特权,如read on the "products" index。
• 用户Users:用户实体,可以被赋予0种,1种或多种角色,他们可以对被保护的资源执行相应角色所拥有的各种特权。
3.动态数据脱敏功能
脱敏操作在整个日志监控系统中的多环节发生,数据采集环节和数据处理起始阶段,对敏感数据进行多重脱敏,保证数据处理过程后的存储数据以及后续的数据展示均为脱敏后的数据.
4.审计跟踪
对用户的操作过程进行监控,并落实到相关存储中,可进行用户操作的历史追溯等操作.
6.数据展示
数据展示模块具有如下特性:
• 丰富、可定制的可视化界面
• 自定义报告生成为PDF等常用格式
一个仪表板显示保存的一系列可视化。你可以根据需要安排和调整可视化,保存仪表盘,并可以被加载和共享。