
影刀RPA ELK日志分析自动化异常日志采集与告警作者林焱什么情况用什么开发团队每天要登录Kibana查日志看有没有ERROR、有没有慢查询、有没有异常流量——这活说难不难就是重复且占时间。而且问题往往在凌晨发生第二天早上才看到日志时已经影响了几个小时。用影刀RPA自动查ELK日志定时调Kibana API → 查询过去X小时的ERROR日志 → 提取关键字段 → 格式化后推送告警。适合按小时检查生产环境ERROR日志每天汇总慢查询TOP 10监控特定接口的响应时间超过阈值统计异常IP访问频率怎么做拼多多店群自动化报活动上架第一步配置Kibana访问Kibana的搜索API比手动点页面高效得多。影刀操作步骤1. 【HTTP请求】POST请求 Kibana搜索API URL: http://kibana.company.com/api/console/proxy Headers: {kbn-xsrf: true, Content-Type: application/json} Body: {path: _search, method: POST, body: {搜索条件}}实际的Elasticsearch搜索条件这样写{query:{bool:{must:[{match:{level:ERROR}},{range:{timestamp:{gte:now-1h,lte:now}}}]}},size:100,sort:[{timestamp:desc}]}注意如果你用的是ES 8.x版本API路径和认证方式有变化需要带API Key或用户名密码。第二步解析响应Kibana返回的JSON结果需要提取关键信息。importjson responsejson.loads(api_response)# 从影刀变量获取hitsresponse.get(hits,{}).get(hits,[])errors[]forhitinhits:sourcehit[_source]errors.append({时间:source.get(timestamp,),级别:source.get(level,),服务:source.get(service,),消息:source.get(message,)[:200],# 截取前200字符主机:source.get(host,{}).get(name,),traceId:source.get(traceId,)})第三步去重与分类同一个错误可能在1小时内出现几百次全部推送不现实。fromcollectionsimportCounter# 按错误消息去重统计error_counterCounter()foreinerrors:# 提取错误的关键词去掉时间戳、ID等变量部分keyre.sub(r\d,N,e[消息])keyre.sub(r[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12},UUID,key)error_counter[key]1# Top 5 高频错误top_errorserror_counter.most_common(5)第四步推送告警根据错误类型和频率决定告警级别。alert_level普通iflen(errors)50:# 1小时内超过50条ERRORalert_level严重elifany(OutOfMemoryine[消息]orConnection refusedine[消息]foreinerrors):alert_level紧急messagef 【{alert_level}】日志异常告警 时间范围{(datetime.now()-timedelta(hours1)).strftime(%H:%M)}~{datetime.now().strftime(%H:%M)}异常总数{len(errors)}条 TOP 5 高频错误{chr(10).join(f{i1}. [{cnt}次]{err[:100]}fori,(err,cnt)inenumerate(top_errors))}影刀操作步骤1. 【发送消息】发送到企业微信群Webhook机器人 URL: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?keyxxx 内容告警消息 2. 如果告警级别紧急 3.  - 【打电话】调用电话告警APITEMU店群矩阵自动化运营核价报活动有什么坑坑1ES索引名带日期很多ELK集群按天建索引app-logs-2026.06.27。查询时要拼出正确的索引名否则查出来是空的。建议用通配符app-logs-*。坑2Kibana session过期Kibana的session过期时间可能只有几小时。每次查询前先检查是否需要重新登录或者直接改用ES API绕过KibanaES API: http://es.company.com:9200/app-logs-*/_search坑3POST请求Body嵌套Kibana的Console API要求在body里再嵌套一层body很容易写错。建议先在Kibana Dev Tools里验证查询语句能跑通再搬到影刀里。坑4告警疲劳如果每小时的ERROR日志都推送很快就会被忽略。一定要做去重和频率控制——同一类错误24小时内只告警一次除非频率突然飙升。总结日志监控自动化的价值在告警质量而非数量。宁可漏掉几条不重要的小错误也不要让告警变成没人看的噪音。