hi,我是蛋挞,一个初出茅庐的后端开发,希望可以和大家共同努力、共同进步!
开启掘金成长之旅!这是我参与「掘金日新计划 · 4 月更文挑战」的第 16 天,点击查看活动详情
- 起始标记->探索X-Pack套件(6讲):「84 | 用Monitoring和Alerting监控Elasticsearch集群」
- 结尾标记->探索X-Pack套件(6讲):「89 | 用Canvas做数据演示」
用Monitoring和Alerting监控Elasticsearch集群
X-Pack Monitoring
- X-Pack 提供了免费集群监控的功能
- 使用 Elasticsearch 监控 Elasticsearch
- Xpack.monitoring.collection.interval 默认设置 10 秒
- 在生产环境中,建议搭建 dedicated 集群用于 ES 集群的监控。有以下几个好处
- 减少负载和数据
- 当被监控集群出现问题,还能看到监控相关的数据
配置Monitoring
| 配置项 | 含义 |
|---|---|
| xpack.monitoring.collection.indices | 默认监控所有索引。支持配置索引列表(逗号间隔) |
| xpack.monitoring.collection.interva | 搜集数据的时间间隔,默认 10 秒 |
| xpack.monitoring.history.duration | 数据保留的时间,默认7天 |
Watcher for Alerting
- 需要 Gold 账户
- 一个 Watcher 由 5个部分组成
- Trigger - 多久被触发一次(例如: 5 分钟触发一次
- Input - 查询条件 (在所有日志索引中查看“ERROR”相关)
- Condition - 查询是否满足条件 (例如: 大于 1000 条返回
- Actions - 执行相关操作 (例如: 发送邮件)
步骤
可以试用30天
打开后就可以看到,已经提供了多种级别的监控
节点的详细信息都会展示到这个界面上。
Watcher
watcher功能开启一个alert功能,第一种是定义一个阈值
下面演示第一种
需要选择索引,选择索引字段,选择时间
配置什么时候,针对那些文档,数值,以及时间范围。
选择当条件达到时alert的active,最后save就可以保存了
本节知识小节
介绍了如何在X-Pack中对Elasticsearch和Kinbana做一个性能监控,同时也介绍了如何打开三十天的试用,通过在watcher中定义一些阈值,实现一个报警的功能。
用APM进行程序性能监控
Elastic 全栈监控
- Real User Monitoring
- Application Level Monitoring
- Server-Level Monitoring
- Logging
核心应用指标
- 请求响应时间
- 未处理的错误及异常
- 可视化调用关系
- 发现性能瓶颈
- 代码下钻
步骤
找到APM的选项
提供了不同语言不通框架的支持
找到过去发布的版本,注意需要版本都相互对应
安装完成后点击连接即可查看安装说明。
点击查看是否连接成功。
通过这个例子可以知道,结合APM对应用性能做一个监控,结合性能测试的脚本,就可以很方便的去了解这个应用程序在实际运行当中会发生的事情,帮助我们对应用程序做一个优化。
本节知识小节
通过一个具体的实例帮助理解如何在Elastchstash当中通过下载安装APM Server,使用APM Server对我们的应用程序做一个实时性的监控,通过Kinbana的展示可以很方便的很容易的去理解应用程序背后的性能指标,方便对应用程序做一个优化。
用机器学习实现时序数据的异常检测(上)
异常检测所解决的问题
- 解决一些基于规则或者 Dashboard 难以实时发现的问题
- IT 运维
- 如何知道系统正常运行/如何调节值触发合适的报警/如何进行归因分析
- 信息安全
- 哪些用户构成了内部威胁/系统是否感染了病毒
- 物联网/数据采集监控
- 工厂和设备是否正常运营
什么是正常
- 什么是正常
- 随着时间的推移,某个个体一直表现出一致的行为
- 某个个体和他的同类比较,一直表现出和其他个体一致的行为
什么是异常
- 什么是异常
- 和自己比 - 个体的行为发生了急剧的变化
- 和他人比 - 个体明显区别于其他的个体
判定异常需要一定的指导
相关术语
- Elastic 平台的机器学习功能
- Elastic 的ML,主要针对时序数据的异常检测和预测
- 非监督机器学习
- 不需要使用人工标签的数据来学习,仅仅依靠历史数据自动学习
- 贝叶斯统计
- 一种概率计算方法,使用先验结果来计算现值或者预测未来的数值
- 异常检测
- 异常代表的是不同的,但未必代表的是坏的 /定义异常需要一些指导,从哪个方面去看
如何学习“正常“
- 观察不同的人每天走路的步数,由此预测明天他会走多少步
- 需要观察不同的人,需要观察多久?
- 一天 /一周 /一个月 /一年 /十年
- 直觉: 观察的数据多,你的预测越准确
- 使用这些观察来创建一个模型
- 概率分布函数;使用这个模型找出什么事几乎不可能的事件
机器学习帮你自动挑选模型
- 使用成熟的机器学习技术,挑选适合数据的正确的统计模型
- 更好的模型=更好的异常检测=更少的误报和漏报
- 出现在低概率区域,发现异常
模型与需要考虑任何的周期
- 周期选择
- 需要一定周期的学习,才能使的置信区间的范围更小
- 时间太长:影响因素太多,导致随机分布
- 时间大短·宗全是随机波动
ES ML: 单指标/多指标/种群分析
步骤
Bucket Span:时间分割
Field:字段
Aggregation:表
计算
预测
定制化
保存
结合创建新的异常检测集
相关阅读
- mkdir server_metrics cd server_metrics wget download.elasticsearch.org/demos/machi… tar -xvf server_metrics.tar.gz
本节知识小节
学习了Elastic 的machine learning异常检测的相关知识,学习了相关的概念,知道如何去定义一个正常和异常,通过对一个导入数据集,进行单指标的异常检测的实际操作。
用机器学习实现时序数据的异常检测(下)
接上一章
可以指定多个Fields进行指标的检测
选择后可以生成机器学习
运行完成后查看结果
结果集
选择Population
第一个Population指的是以怎样的方式去区分这个用户
Fields代表这个用户发送的数据包
添加新的calendar
本节知识小节
演示了如何创建一个机器学习的任务,如何使用Population的方式发现一系列用户当中的异常行为,也介绍了如何使用calendar的方式避免在一些节假日的日期对数据做异常的检测。
用ELK进行日志管理
日志的重要性
- 为什么重要
- 运维:医生给病人看病。日志就是病人对自己的陈述
- 恶意攻击,恶意注册,刷单,恶意密码猜测
- 挑战
- 关注点很多,任何一个点都有可能引起问题
- 日志分散在很多机器,出了问题时,才发现日志被删了
- 很多运维人员是消防员,哪里有问题去哪里
集中化日志管理
日志搜集 -> 格式化分析 -> 检索与可视化 -> 风险告警
Filebeat 简介
- 简介
- A log data shipper for local files
- 加工处理读取日志文件,Filebeat 不做数据的解析
- 日志是非结构化数据
- 需要进行处理后,以结构化的方式保存到 Elasticsearch
- 保证数据至少被读取一次
- 处理多行数据,解析 JSON 格式 ,简单的过滤
Filebeat 简介
Filebeat 执行流程
- 定义数据采集: Prospector 配置。通过 filebeat.yml
- 建立数据模型: Index Template
- 建立数据处理流程:Ingest Pipeline
- 存储并提供可视化分析: ES + Kibana Dashboard
步骤
非常多的自定义控制显示的内容
CodeDemo
./filebeat modules list
./filebeat modules enable system
./filebeat modules enable elasticsearch
## 进 modules.d 编辑相应的文件,修改log路径
./filebeat setup –dashboards
./filebeat export template | more
./filebeat -e
本节知识小节
介绍了如何使用Elasticstak去做日志的集中化的管理,可以通过Filebeat的方式到服务器上收集相关的文件,因为Filebeat本身不会做过多的数据的转换,我们可以通过Ingest Pipeline,在Elasticsearch上Ingest Nodes上去做处理,同时Filebeat提供了大量的开箱即用的Module,通过这些Module只需要简单的一些指令就可以把很多Index Template,Ingest Pipeline写入到Elasticsearch当中,还可以为Kinbana创建丰富的相关日志的Dashboard,在kibana上还提供了logs应用,通过这个应用就可以使实时的查看感兴趣的日志,在kibana上还可以对感兴趣的日志进行搜索。
用Canvas做数据演示
实时展示数据,并且达到完美像素级要求
- 用更加酷炫的方式,演绎你的数据
- 基于ES实现准实时的数据分析
- 更好的想法,更大的屏幕
- 品牌宣传,会议大屏
- 高度定制化
- 调色板 / CSS / 拖放元素
步骤
创建Canvas
自己定制
可以设定刷新时间
CodeDemo
POST elasticoffee/_search { "size": 0, "aggs": { "by": { "terms": { "field": "beverage.keyword", "size": 10 } } } }
本节知识小节
介绍了Elasticsearch的Canvas的功能,使用Canvas不但可以实时的展示数据,还可以以一种非常炫酷的方式去演绎数据背后的故事。
此文章为4月Day16学习笔记,内容来源于极客时间《Elasticsearch 核心技术与实战》