前言 |
上一章节,我们讲了Elasticsearch集群的监控,除了腾讯云自己平台提供了丰富的监控参数外,Kibana Monitor也提供了丰富的监控特性。作为信息管理人员我们有必要去结合两者的监控去管理我们的集群服务。那么,我们知道,监控其实是一种被动式的管理,而且需要维护者时时去管理调试。那么能不能在监控到系统有问题的时候提前告警通知呢??答案是肯定的。腾讯云 ES 提供一些关键指标的配置告警功能,配置告警可帮助您及时发现集群问题并进行处理。可以毫不夸张的说集群告警在信息管理中是非常重要的一部分,那么,本文为您介绍通过控制台配置告警的操作。
一、配置告警步骤
1,查看集群是否已配置告警
第一步:登录ES 控制台,在集群列表单击集群 ID/名称,进入集群详情页。我们发现在主界面有这么一条告警信息:大概的意思是提醒您设置告警联系人。如下图
第二步:在集群列表中,选择【自己的ES集群】,--点击【云监控】,如下图
第三步:选择【集群监控】主页,在【云监控】区域,可查看集群是否已经配置了告警,如果没有,强烈建议您配置告警策略,以便及时获取并处理集群运行的状况及风险,保障服务的稳定。
点击“集群监控策略”,看是否有设置监控策略:发现存在策略。我们点击右边的操作按钮,把它移除。
2、自定义告警配置
第一步:登录云监控控制台,在左边菜单栏【告警策略】页,单击【新建】。如下图:
第二步:在新建策略页面,配置策略参数。信息如下,如下截图所示:
策略类型:选择【Elasticsearch 服务】
告警对象:选择需要配置告警策略的集群
触发条件:支持【触发条件模板】和【配置触发条件】,默认选择自定义配置触发条件,自定义配置参见以下说明,新建模板参见下文 “新建触发条件模板”。见下图过程
告警渠道:选择接收组、有效时段、接收渠道 见下图过程
注意
这里触发条件可以选择自定义也可以按照模板来定义。默认是模板来定义。点开“新增触发条件模板”,我们可以新建一个模板,然后后面可以应用到更多的集群上去。可以按照下图来定义:
告警渠道设置:可以选择接受组或者接收人:
接受渠道:如下图 可以使用微信、电话、邮件、短信告警
如果接收对象你想更改,那就按照下面的方式进行接受人的添加授权。
3、验证告警设置
第一步:在菜单栏的告警策略中--检查刚新增的策略。
第二步:点开告警策略,我们发现以下策略:
第三步:查看告警历史,如图。如果成功的话,手机、微信、短信、邮件都会有告警通知。
第四步:如果要修改策略的话,可以在下面修改保存即可。如下图:
那么以上就是腾讯云Elasticsearch监控告警的部署过程。
同时我们发现,设置告警功能后,ES控制台就没有提示我们要去配置告警联系设置了。下面的告警就消失了:
二、监控告警配置建议
使用 ES 集群过程中需要重点关注的一些指标及其告警建议配置:
指标 | 告警建议配置 | 详细说明 |
---|---|---|
集群健康状态 | 统计周期1分钟,>=1,持续5个周期,每30分钟告警一次 | 集群健康状态取值为:0:绿色,表示集群所有主分片和副本分片都可用,集群处于最健康的状态。1:黄色,表示所有的主分片均可用,但存在不可用副本分片。此时,搜索结果仍然是完整的,但集群的高可用性在一定程度上受到影响,数据面临较高的丢失风险。2:红色,表示至少一个主分片以及它的全部副本分片均不可用。集群处于红色状态意味着已有部分数据不可用,搜索只能返回部分数据,而分配到丢失分片上的请求会返回异常。集群健康状态是集群当前运行情况的最直接体现,当集群处于黄色或红色状态时,应立即排查产生原因,并及时修复,防止数据丢失和服务不可用。 |
平均磁盘使用率 | 统计周期1分钟,>80%,持续5个周期,每30分钟告警一次 | 平均磁盘使用率表示集群各节点磁盘使用率的平均值。磁盘使用率过高会导致节点没有足够的磁盘空间容纳分配到该节点上的分片,从而导致创建索引,添加文档等基本操作执行失败。建议在平均磁盘使用率超过75%时及时清理数据或扩容集群。另外可以参考 使用 Curator 在腾讯云 Elasticsearch 中自动删除过期数据,为集群配置定时清理任务。 |
平均 JVM 内存使用率 | 统计周期1分钟,>85%,持续5个周期,每30分钟告警一次 | 平均 JVM 内存使用率表示集群各节点 JVM 内存使用率的平均值。JVM 内存使用率过高会导致读写操作被拒绝,集群 GC 频繁,甚至出现 OOM 等问题。当发现 JVM 内存使用率超过阈值时,建议通过纵向扩容的方式提高集群节点的规格。 |
平均 CPU 使用率 | 统计周期1分钟,>90%,持续5个周期,每30分钟告警一次 | 平均 CPU 使用率表示集群各节点 CPU 使用率的平均值。该值过高会导致集群节点处理能力下降,甚至宕机。发现 CPU 过高时,应根据集群当前节点配置情况和业务情况,提高节点规格或降低业务请求量。 |
bulk 拒绝率 | 统计周期1分钟,>0%,持续1个周期, 每30分钟告警一次 | bulk 拒绝率表示单周期内集群执行 bulk 操作被拒绝次数占 bulk 总操作次数的百分比。当 bulk 拒绝率大于0%,即出现 bulk 拒绝时,说明集群已经达到了 bulk 操作处理能力的上限,或集群出现异常,应及时排除出现 bulk 拒绝的原因并及时解决,否则会影响业务的 bulk 操作,甚至出现数据丢失情况。 |
查询拒绝率 | 统计周期1分钟,>0%,持续1个周期,每30分钟告警一次 | 查询拒绝率表示单周期内集群执行查询操作被拒绝次数占查询总操作数的百分比。当查询拒绝率大于0%,即出现查询拒绝时,说明集群已经达到了查询操作处理能力的上限,或集群出现异常,因及时排查出现查询拒绝的原因并及时解决,否则会影响业务的查询操作。 |
三、总结:
集群的监控、告警功能对服务器运维有非常大的帮助,监测集群的运行情况,如存储、IO、CPU、内存使用率等。您可以根据这些指标实时了解集群服务的运行状况,针对可能存在的风险及时处理,保障集群的稳定运行。通过对服务器各指标进行告警设置,我们能及时获取并处理集群运行的状况及风险,保障服务的稳定。腾讯云告警功能的设置流程大概就是:
1,先确定有无告警策略
2,如果没有我们就新建告警策略、然后定制自己的告警触发条件、应用到我们的监控对象上
3,去控制台-告警管理栏中查看各设置细节。
<<附:官方推荐的ES集群监控的必要参数及相关解释>>
摘自:Tencent Elasticsearch Document
监控指标 | 统计方式 | 详情 |
---|---|---|
集群健康状态 | ES 集群健康状态:0:表示绿色,集群正常;1:表示黄色,告警,部分副本分片不可用;2:表示红色,异常,部分主分片不可用。 | green:表示所有的主分片和副本分片都可用,集群处于最健康的状态。yellow:表示所有的主分片均可用,但部分副本分片不可用,此时搜索结果仍然是完整的。但集群的高可用性在一定程度上受到影响,数据面临较高的丢失风险。在集群健康状态变为 yellow 后,应及时调查和定位问题,并修复,防止数据丢失。red:表示至少一个主分片以及它的全部副本均不可用。集群处于 red 状态意味着已有部分数据丢失:搜索只能返回部分数据,而分配到丢失分片上的写入请求会返回异常。在集群健康状态变为 red 后,应及时定位异常分片,并进行修复。 |
平均磁盘使用率 | 每单位统计周期内(1分钟),集群各个节点的磁盘使用率的平均值。 | 磁盘使用率过高会导致数据无法正常写入。解决方法:及时清理无用的索引。对集群进行扩容,增加单节点的磁盘容量或增加节点个数。 |
最大磁盘使用率 | 每单位统计周期内(1分钟),集群各个节点中最大磁盘使用率。 | - |
平均 JVM 内存使用率 | 每单位统计周期内(1分钟),集群各个节点的 JVM 内存使用率的平均值。 | 该值过高会导致集群节点 GC 频繁,甚至有出现 OOM。导致该值过高的原因,一般是节点上 ES 处理任务超出节点 JVM 的负载能力。您需要注意观察集群正在执行的任务,或调整集群的配置。 |
最大 JVM 内存使用率 | 每单位统计周期内(1分钟),集群各个节点中最大 JVM 内存使用率。 | - |
平均 CPU 使用率 | 每单位统计周期内(1分钟),集群各个节点的 CPU 使用率的平均值。 | 当集群各节点处理的读写任务超出节点 CPU 的负载能力时,该指标就会过高,CPU 使用率过高会导致集群节点处理能力下降,甚至宕机。您可以从以下几点解决平均 CPU 使用率过高的问题:观察该指标是持续性较高,还是临时飙升。若是临时飙升,确定是否有临时性复杂任务正在执行。若该指标持续较高,分析业务对集群的读写操作是否可以优化,降低读写频率,减小数据量,从而减轻节点负载。对于节点配置无法满足业务吞吐量的情况,建议对集群节点进行纵向扩容,提高单节点的负载能力。 |
最大 CPU 使用率 | 每单位统计周期内(1分钟),集群各个节点中最大 CPU 使用率。 | - |
集群1分钟平均负载 | 集群1分钟所有节点的平均负载 load_1m,指标来源:ES 节点状态 api:_nodes/stats/os/cpu/load_average/1m。 | load_1m 过高时,建议降低集群负载或调大集群节点规格。 |
集群1分钟最大负载 | 集群1分钟所有节点的最大平均负载 load_1m。 | - |
平均写入延迟 | 写入延迟(index_latency),指单次 index 请求耗时(ms/次),集群平均写入延迟是统计周期内(1分钟)所有节点单次 index 请求耗时的平均值。节点单次 index 请求耗时计算规则:每隔一个统计周期(1分钟)记录一次节点的两个指标,节点历史 index 总次数(_nodes/stats/indices/indexing/index_total),节点历史 index 总耗时(_nodes/stats/indices/indexing/index_time_in_millis),取相邻两次记录的差值,即一个周期内的绝对值并进行计算:index 耗时 ÷ index 次数,得出统计周期内(1分钟)单次 index 平均耗时。 | 写入延迟,是指单个文档写入平均耗时。集群平均写入延迟,是指统计周期内,所有节点的写入用时的平均值。写入延迟过高时,建议调大节点规格或增加节点个数。 |
最大写入延迟 | 写入延迟(index_latency),指单次 index 请求耗时(ms/次),集群最大写入延迟是统计周期内(1分钟)所有节点中单次 index 请求耗时的最大值。节点单次 index 请求耗时计算规则:见平均写入延迟。 | - |
平均查询延迟 | 查询延迟(search_latency),指单次查询请求耗时(ms/次),集群平均查询延迟是统计周期内(1分钟)所有节点单次查询请求耗时的平均值。节点单次查询请求耗时计算规则:每隔一个统计周期(1分钟)记录一次节点的两个指标,节点历史查询总次数(_nodes/stats/indices/search/query_total),节点历史查询总耗时(_nodes/stats/indices/search/query_time_in_millis),取相邻两次记录的差值,即一个周期内的绝对值并进行计算:query 耗时 ÷ query 次数,得出统计周期内(1分钟)单次查询平均耗时。 | 查询延迟,是指单个查询平均耗时。集群平均查询延迟,就是统计周期内,所有节点查询用时的平均值。写入延迟过高时,建议调大节点规格或增加节点个数。 |
最大查询延迟 | 查询延迟(search_latency),指单次查询请求耗时(ms/次),集群最大查询延迟是统计周期内(1分钟)所有节点中单次查询请求耗时的最大值。节点单次查询请求耗时计算规则:见平均查询延迟。 | - |
平均每秒写入次数 | 集群所有节点接收到的每秒 index 请求次数的平均值。节点每秒 index 请求次数计算规则:每隔一个统计周期(1分钟)记录一次节点历史 index 总次数(_nodes/stats/indices/indexing/index_total),取相邻两次记录的差值,即一个周期内的绝对值并进行计算:index 次数 ÷ 60秒,得出统计周期内每秒 index 请求次数的平均值。 | - |
平均每秒完成查询次数 | 集群所有节点接收到的每秒查询请求次数的平均值。节点每秒查询请求次数计算规则:每个统计周期(1分钟)记录一次节点历史查询总次数(_nodes/stats/indices/search/query_total),取相邻两次记录的差值,即一个周期内的绝对值并进行计算:query 次数 ÷ 60秒,得到统计周期内每秒查询请求次数的平均值。 | - |
写入拒绝率 | 单位周期内,集群写入请求被拒绝次数 ÷ 总写入请求次数,得到的比率。具体计算规则:每隔一个统计周期采集两个指标:历史写入请求被拒绝次数(5.6.4版本:_nodes/stats/thread_pool/bulk/rejected,6.4.3及以后版本: _nodes/stats/thread_pool/write/rejected)、历史写入请求次数(5.6.4版本:_nodes/stats/thread_pool/bulk/completed,6.4.3及以后版本:_nodes/stats/thread_pool/write/completed),取相邻两次记录的差值,即一个周期内的绝对值并进行计算,写入请求拒绝次数 ÷ 写入请求完成次数。 | 写入 QPS 过大,CPU、内存、磁盘使用率过高时,可能会造成集群写入拒绝率会增加。一般地,是集群当前配置无法满足业务写操作需求。对于节点配置过低的场景,可以通过提高节点规格或降低写入操作次数来解决。对于磁盘使用率过高的情况,可以通过扩容集群磁盘或删除无用数据来解决。 |
查询拒绝率 | 单位周期内,集群查询请求被拒绝次数 ÷ 总查询请求次数,得到的比率。具体计算规则:每隔一个统计周期采集两个指标:历史查询请求被拒绝次数(_nodes/stats/thread_pool/search/rejected)、历史查询请求次数(_nodes/stats/thread_pool/search/completed),取相邻两次记录的差值,即一个周期内的绝对值并进行计算:查询请求拒绝次数 ÷ 查询请求完成次数。 | 写入 QPS 过大,CPU、内存使用率过高,可能会造成造成集群查询拒绝率上升。一般地,是集群当前配置无法满足业务读操作需求,该值过高时建议对集群调大集群节点配置,提高集群节点的处理能力。 |
集群总文档数 | 集群写入的 doc 总数,计算规则:ES 集群文档数 API:_cluster/stats/indices/docs/count。 | - |
自动快照备份状态 | 集群开启自动快照备份后的备份结果:0:未开启自动备份;1:自动备份正常;-1:自动备份失败。 | 自动快照备份,会把集群的数据定时备份到 COS,以便在需要的时候可以对数据进行恢复,从而更全面保障数据安全,建议开启,更多信息可查看:自动快照备份。 |