Elasticsearch的机器学习功能内置于Elastic Stack中,主要通过Machine Learning Job对时间序列数据进行统计建模,自动识别偏离正常行为模式的异常数据。其核心特性包括:
node.roles: ["ml"]),避免与data/ingest节点共享资源,保障性能。Elasticsearch机器学习的工作流程由以下关键组件构成:
.ml-config索引中;high_count检测高频事件、rare检测罕见组合),是Job的核心模块;.ml-anomalies-*索引存储异常分数,.ml-notifications索引存储告警信息)。适用场景:日志分析(如服务器错误突增)、运维监控(如CPU使用率异常)、安全审计(如异常登录行为)。
配置步骤:
logs-*)、时间字段(@timestamp)、检测器(如{ "function": "high_count", "field_name": "error_count" });bucket_span(如300s,即5分钟),避免过于碎片化;POST _ml/anomaly_detectors/{job_id})启动。适用场景:销量预测(如电商商品未来销量)、航班延误预测(如根据天气预测延误时间)。
配置步骤:
kibana_sample_data_flights),包含特征字段(DistanceMiles、DayOfWeek)和目标字段(FlightDelay);适用场景:语义搜索(如根据上下文查找相似文档)、文本分类(如垃圾邮件识别)、实体识别(如提取日志中的IP地址)。
配置步骤:
splade-v3-distilbert用于文本扩展)或第三方模型(如Hugging Face的BERT模型);eland_import_hub_model)将模型上传至ES;inference处理器将文本字段(如content)嵌入为稀疏向量(content_embedding),存储至索引;knn查询(如{ "knn": { "field": "content_embedding", "query_vector": [...], "k": 5 } })查找相似文档。ml角色的节点上,避免与data/ingest节点竞争CPU、内存资源;model_memory_limit:根据数据基数(cardinality)设置模型内存上限(如10MB~1GB),防止内存溢出。bucket_span:建议≥数据采集频率的2倍(如数据每分钟采集一次,bucket_span设置为120s),避免过于碎片化;model_plot:通过model_plot_config查看模型拟合效果(如是否捕捉到数据的趋势和周期性),辅助调试。influencers字段:定位异常根因(如by_field_name="user_id"识别异常用户,over_field_name="sku_id"识别异常商品)。ml、许可证是否有效、ml功能是否开启(xpack.ml.enabled: true);model_memory_limit参数,或增加ML节点的内存资源;GET _ml/datafeeds/{datafeed_id}/_stats),或数据源索引是否存在延迟。免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。