大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力。
最近被安排去做日志分析、排障等相关主题的工作,发现了 loglizer 这个日志分析神器,特地分享给大家。
什么是 loglizerLoglizer is a machine learning-based log analysis toolkit for automated anomaly detection.
在很多软件系统的开发和维护过程中,日志是必不可少的,其在系统运行期间记录详细的运行时信息,使开发人员和运维工程师能够实时监控系统并跟踪异常行为和错误。
Loglizer 提供了一个工具包,该工具包实现了许多基于机器学习(Machine learning is an application of AI)的日志分析技术,用于自动异常检测。用于异常检测的日志分析框架通常包含以下组件:
日志收集:日志在运行时生成,并通过数据流管道(例如:Flume 和 Kafka)聚合到集中的地方。日志解析:日志解析的目标是将非结构化日志消息转换为结构化事件映射,在此基础上可以应用复杂的机器学习模型。特征提取:结构化日志可以通过间隔窗口、滑动窗口或会话窗口切分成短日志序列。 然后,执行特征提取以向量化每个日志序列,例如:使用事件计数向量。异常检测:训练异常检测模型来检查给定的特征向量是否异常。目前,loglizer 支持监督、无监督两种方式,支持众多算法模型,比如:
监督模型 (Supervised models):LR、Decision Tree、SVM 等无监督模型 (Unsupervised models):LOF、One-Class SVM、Isolation Forest、PCA、Invariants Mining、Clustering、DeepLog、AutoEncoder 等等。目前 loglizer 在 Github 通过 MIT 协议开源,有超过 1.2k 的 star,是一个值得关注的前端开源项目。
如何使用 loglizer首先克隆官方项目:
// 克隆项目并安装 python 依赖git clone https://github.com/logpai/loglizer.gitcd loglizerpip install -r requirements.txt接着通过以下方式进行 API 调用:
// 加载 HDFS 数据集,如果想尝试自己的日志则需要重写加载函数(x_train, y_train), (x_test, y_test) = dataloader.load_HDFS(...)// 特征提取与转换feature_extractor = preprocessing.FeatureExtractor()feature_extractor.fit_transform(...)// 模型训练model = PCA()model.fit(...)// 拟合后特征变换x_test = feature_extractor.transform(...)// 使用标记数据进行模型评估model.evaluate(...)// 异常预测x_test = feature_extractor.transform(...)model.predict(...) # predict anomalies on given data关于 loglizer 的原理和更多用法可以参考文末资料,本文不再过多展开。
参考资料https://github.com/logpai/loglizer
https://sciencelogic.com/blog/log-analysis-with-machine-learning-an-automated-approach-to-analyzing-logs-using-ml-ai
https://neptune.ai/blog/machine-learning-approach-to-log-analytics