华为云用户手册
-
修改企业项目 针对之前已创建的集群,其绑定的企业项目可根据实际情况进行修改。 登录在 云搜索服务 管理控制台, 在左侧导航栏,选择对应的集群类型,进入集群管理页面。 在集群列表中,单击集群名称进入集群“基本信息”页面。 在集群“基本信息”页面,单击“企业项目”右侧的企业项目名称,进入项目管理页面。 在“资源”页签下,“区域”选项中选择当前集群所在的区域,“服务”选项中选“ 云搜索 服务 CSS ”。此时,资源列表将筛选出对应的 CS S集群。 图1 筛选CSS集群 勾选需要修改企业项目的集群,然后单击“迁出”。 在“迁出资源”页面,选择“迁出方式”,再选择“请选择要迁入的企业项目”,然后单击“确定”。 迁出完成后,可以在云搜索服务管理控制台集群管理页面,查看修改后的集群企业项目信息。
-
规划虚拟私有云和子网 CSS服务支持在非共享VPC和共享VPC内创建集群。 共享VPC和非共享VPC相比,有如下优势: 在一个账号内统一创建资源,并将资源共享给其他账号,其他账号无需创建重复资源,可以精简资源数量以及网络架构,提升管理效率并节约成本。 比如不同账号下的VPC网络互通需要建立对等连接,使用共享VPC后,则不同账号用户可以在同一个VPC创建资源,免去了对等连接配置,有效的简化组网结构。 在一个账号内统一管理运维资源,便于企业集中配置业务安全策略,并且利于对资源使用情况的监控和审计,支撑业务的安全诉求。 当选择使用共享VPC创建集群时,需要提前完成共享VPC子网的创建,操作流程请参见表2。有关共享VPC的使用限制及详细操作指导等信息可以参考共享VPC概述。 表2 共享子网创建流程说明 方法 说明 操作指导 方法A 通过 RAM 管理控制台,所有者创建共享,将子网共享给使用者。配置如下: 选择共享子网。 为共享子网选择权限,即指定使用者对该共享子网具备的权限。 CSS服务在共享VPC中创建集群需要选择权限:default vpc subnet statement。 指定共享子网的使用者,可以指定多个。 共享创建完成后,通过RAM管理控制台,使用者可以选择接受或者拒绝共享申请。 使用者接受共享申请,子网共享成功。 如果后续使用者不再需要使用该共享子网,可以退出该共享。 使用者拒绝共享申请,子网共享失败。 创建共享 接受/拒绝共享邀请 退出共享 方法B 通过RAM管理控制台,所有者创建共享,将子网共享给使用者。配置如下: 选择共享子网。 为共享子网选择权限,即指定使用者对该共享子网具备的权限。 CSS服务在共享VPC中创建集群需要选择权限:default vpc subnet statement。 指定共享子网的使用者,可以指定多个。 通过VPC管理控制台,选择上一步中已创建的共享,将子网加入到该共享内。 共享创建完成后,通过RAM管理控制台,使用者可以选择接受或者拒绝共享申请。 使用者接受共享申请,子网共享成功。 如果后续使用者不再需要使用该共享子网,可以退出该共享。 使用者拒绝共享申请,子网共享失败。 创建共享 将VPC子网共享给其他账号 接受/拒绝共享邀请 退出共享
-
规划节点存储 规划节点机型 由于Logstash集群不涉及存储大规格数据,推荐选用计算密集型机型。 规划节点规格 在规划节点规格时,推荐优先考虑高配置但节点数量较少的方案。例如,一个由3个节点组成的集群,每个节点配置为32核CPU和64GB内存,通常比一个由12个节点组成的集群,每个节点配置为8核CPU和16GB内存,在集群的稳定性和扩展性方面更具优势。 优势主要体现在如下方面。 集群稳定性:高配置节点通常能提供更强的处理能力和更大的内存空间,从而提高集群的整体稳定性。 扩容便捷性:当高配置集群遇到性能瓶颈时,可以通过横向扩展轻松解决,即简单地向集群中添加更多具有相同高配置的节点。这种扩展方式简单直接,易于实施。 维护简便:较少的节点数量意味着更少的维护工作和更低的管理复杂性。 相比之下,低配置集群在需要扩容时,往往需要进行纵向扩展,即提升单个节点的配置。这不仅可能涉及更复杂的迁移和升级过程,还可能增加额外的维护成本和技术挑战。 因此,在规划集群时,应综合考虑性能、成本、维护和扩展性,选择最适合业务需求的节点规格。 规划存储容量 Logstash集群的云盘存储容量默认是40GB,且不支持修改,因此无需规划。
-
规划集群可用区 为防止数据丢失,并确保在服务中断情况下能降低集群的停机时间,从而增强集群的高可用性,CSS服务支持跨可用区(即多可用区)部署。用户可以在同一个区域内选择两个不同的可用区进行集群部署。 在创建集群时,如果用户选择了两个可用区,CSS服务将自动开启跨AZ的高可用性特性,确保节点在这些可用区内均匀分配。系统均匀分配的节点满足各个AZ之间节点数量的差小于等于1,具体的节点分布情况,包括不同数量的节点如何在各个可用区中分布,可以参考表1。 在创建集群时,选择的节点数量都要大于等于2,否则跨可用区部署会失败。 部署跨AZ集群时,节点会被均匀的分布在不同的AZ上。 表1 节点数量和AZ分布 集群节点个数 单AZ 两AZ AZ1 AZ1 AZ2 1个节点 1 不支持 2个节点 2 1 1 3个节点 3 2 1 4个节点 4 2 2 … … … …
-
查看集群的监控信息 在集群列表查看集群和集群节点的监控信息。 登录云搜索服务管理控制台。 在左侧导航栏选择“集群管理”,进入对应类型的集群列表。 在集群列表,选择目标集群,单击操作列“监控信息”查看集群和节点监控信息。 图1 查看监控信息 选择“资源实例”页签,查看集群的监控指标。 资源实例:选择要查看监控信息的集群,默认选择当前集群。支持多选,进行数据对比。 支持设置监控时间,以及查看同一集群的同比/环比数据。 添加视图分组:支持在默认分组的基础上新增自定义的分组。当鼠标悬停在左侧分组名称上,右侧会显示修改名称和删除分组的图标,可以修改分组。 设置指标:在“设置监控指标”弹窗中,可以根据页面提示设置“原始指标”和“TopN指标”。 选择“云服务节点”页签,查看集群节点的监控指标。只会显示“资源实例”页签中选择的第一个资源实例的节点监控信息。 云服务节点:选择要查看监控信息的集群节点,默认选择当前集群的第一个节点。支持多选,进行数据对比。 支持设置监控时间,以及查看同一集群的同比/环比数据。 添加视图分组:支持在默认分组的基础上新增自定义的分组。当鼠标悬停在左侧分组名称上,右侧会显示修改名称和删除分组的图标,可以修改分组。 设置指标:在“设置监控指标”弹窗中,可以根据页面提示设置“原始指标”。
-
推荐配置的监控指标 集群的日常监控,推荐重点配置如下监控指标:磁盘使用率、集群健康状态。 监控集群的cpu、jvm使用情况,推荐重点配置如下监控指标:平均JVM堆使用率、最大JVM堆使用率、平均CPU使用率、最大CPU利用率。 监控集群的写入、查询延迟和吞吐量情况,推荐重点配置如下监控指标:平均索引延迟、平均索引速率、平均查询延迟、平均查询速率。 监控集群的写入、查询的排队队列和拒绝情况,推荐重点配置如下监控指标:Write队列中总排队任务数、Search队列中总排队任务数、Write队列中总的已拒绝任务数、Search队列中总的已拒绝任务数。
-
约束限制 最多同时支持20个集群升级,建议在业务低峰期进行升级操作。 待升级的集群不能存在正在进行中的任务。 升级任务一旦启动就无法中止,直到升级任务的“任务状态”显示“失败”或“成功”才结束。 升级过程中,存在节点替换的过程,此时如果有请求发送到替换中的节点,请求可能会失败。为防止该情况出现,建议通过终端节点服务或者独享型负载均衡器接入集群进行访问。 升级过程中会重建Kibana和Cerebro组件,重建过程中,Kibana和Cerebro可能会访问失败。而且,由于不同Kibana版本相互不兼容,升级过程中Kibana还可能因为版本不兼容而无法访问。访问失败的问题,待集群升级成功后会自动恢复。
-
场景描述 升级场景 同版本升级是升级集群的内核补丁,用于修复问题或优化性能。 跨版本升级是升级集群的版本,用于功能加强或版本收编。 跨引擎升级是支持Elasticsearch集群升级至OpenSearch集群。 升级原理 升级过程采用的是one-by-one的方式,不会中断业务。升级时,先下线一个节点,将该节点的数据迁移到其余节点,再创建一个目标版本的新节点,将已下线节点的网卡port挂载到新节点,以此保留节点IP地址,待新节点加入到集群后,再依次将其余节点进行替换。当集群的数据量很大时,升级耗时将依赖数据迁移耗时。 升级流程 进行升级前检查:升级前检查 升级前检查大部分支持系统检查,少部分需要人工检查。 创建快照备份全量索引数据:手动创建快照 升级配置中支持选择进行全量索引快照备份检测,避免升级失败数据丢失。 创建升级任务,启动升级:创建升级任务 版本升级能力 待升级的集群版本不同,支持升级的目标版本也不同,具体请参见表1。 表1 版本升级能力 当前版本 目标版本 Elasticsearch:6.2.3 Elasticsearch:6.5.4,6.8.23 Elasticsearch:6.5.4 Elasticsearch:6.8.23 Elasticsearch:6.8.23 Elasticsearch:7.6.2,7.10.2 Elasticsearch:7.1.1 Elasticsearch:7.6.2,7.10.2 Elasticsearch:7.6.2 Elasticsearch:7.10.2 Elasticsearch:7.9.3 Elasticsearch:7.10.2 Elasticsearch:7.10.2 OpenSearch:1.3.6 说明: Elasticsearch集群以7.6.2 和7.10.2为主力版本,建议其他版本的集群收编到该版本。实际支持的目标版本请以升级页面中“目标镜像”的可选值为准。 5.x版本的Elasticsearch集群不支持跨版本升级,6.2.3和6.5.4版本Elasticsearch集群可先升级到6.8.23版本,再升级到7.x.x版本。 当前仅支持7.10.2版本Elasticsearch集群跨引擎升级至1.3.6版本OpenSearch集群。
-
监控P99时延 执行以下命令,获取当前集群的P99时延。 GET /search/stats/percentile 返回示例如下: { "overall" : { "1.0" : 2.0, "5.0" : 2.0, "25.0" : 6.5, "50.0" : 19.5, "75.0" : 111.0, "95.0" : 169.0, "99.0" : 169.0, "max" : 169.0, "min" : 2.0 }, "last_one_day" : { "1.0" : 2.0, "5.0" : 2.0, "25.0" : 6.5, "50.0" : 19.5, "75.0" : 111.0, "95.0" : 169.0, "99.0" : 169.0, "max" : 169.0, "min" : 2.0 }, "latest" : { "1.0" : 26.0, "5.0" : 26.0, "25.0" : 26.0, "50.0" : 26.0, "75.0" : 26.0, "95.0" : 26.0, "99.0" : 26.0, "max" : 26.0, "min" : 26.0 } } 表2 返回参数说明 参数 说明 overall 表示集群从启动到当前时间的统计数值。 last_one_day 表示最近一天的统计数值。 latest 表示从上次重置到当前时间的统计数值。 P99时延的计算是近似值,不提供精确值,越靠近两端的统计值越准确,即99%的时延比50%的时延更准确。 当重启集群时,P99时延的数据将被清空,会从集群重启成功后重新计算。 监控集群P99时延的命令还可以设置其他配置项。 可以自定义监控的百分百数值。 例如执行如下命令,显示1%、50%和90%的时延数据。 GET /search/stats/percentile { "percents": [1, 50, 90] } 支持手动重置latest统计值。 执行以下命令,重置latest统计值。 POST /search/stats/reset 如下所示,返回“ok”,表示重置成功。 { "nodes" : { "css-c9c8-ess-esn-1-1" : "ok" } }
-
监控HTTP状态码 根据集群版本选择监控HTTP状态码的命令。 Elasticsearch 7.6.2集群执行如下命令,获取HTTP状态码统计。 GET /_nodes/http_stats 返回样例: { "_nodes" : { "total" : 1, "successful" : 1, "failed" : 0 }, "cluster_name" : "css-8362", "nodes" : { "F9IFdQPARaOJI7oL7HOXtQ" : { "http_code" : { "200" : 114, "201" : 5, "429" : 0, "400" : 7, "404" : 0, "405" : 0 } } } } Elasticsearch 7.10.2集群执行如下命令,获取HTTP状态码统计。 GET _nodes/stats/http 返回样例: { ...... "cluster_name" : "css-2985", "nodes" : { ...... "omvR9_W-TsGApraMApREjA" : { ...... "http" : { "current_open" : 4, "total_opened" : 37, "http_code" : { "200" : 25, "201" : 7, "429" : 0, "400" : 3, "404" : 0, "405" : 0 } } } } }
-
场景描述 表1 集群内核监控介绍 集群内核监控增强 描述 支持的集群版本 相关文档 P99时延监控 开源Elasticsearch在监控search请求时仅提供了平均延迟指标,这不足以准确反映集群的实际搜索性能。为了改进这一点,CSS服务新增了P99延迟监控特性,能够有效地监控集群search请求的第99百分位延迟。 Elasticsearch 7.6.2、Elasticsearch 7.10.2、 监控P99时延 HTTP状态码 通过HTTP对Elasticsearch的访问会收到响应和相应的状态码,但开源的Elasticsearch原生不支持对这些状态码进行统计,导致无法精确掌握接口调用的具体状况,用户也无法通过监控了解集群的整个请求情况。为了改进这一点,CSS服务新增了HTTP状态码监控功能,能够获取HTTP状态码统计信息。 Elasticsearch 7.6.2、Elasticsearch 7.10.2、 监控HTTP状态码
-
高基字段直方图聚合 高基字段一般采用直方图分组聚合,利于处理某个区间内的数据。 例如,查询语句如下所示。这条查询是对时间字段timestamp做直方图分组,然后求score的平均值。 POST testindex/_search?pretty { "size": 0, "aggs": { "avg_score": { "avg": { "field": "score" }, "aggs": { "groupbytime": { "date_histogram": { "field": "timestamp", "calendar_interval": "day" } } } } } } 当需要对典型的高基字段“timestamp”进行聚合增强时,则需要对索引进行如下设置。 // 索引设置 "settings" : { "index" : { "search" : { "turbo" : { "enabled" : "true" // 开启优化 } }, "sort" : { // 指定排序键 "field" : [ "timestamp" ] } } }
-
低基字段分组聚合混合高基字段直方图聚合 在低基字段和高基字段混合的场景下,一般先对低基字段做分组聚合,然后再对高基字段做直方图聚合。 假如,查询语句如下所示。 POST testindex/_search { "size": 0, "aggs": { "groupby_region": { "terms": { "field": "region" }, "aggs": { "groupby_host": { "terms": { "field": "host" }, "aggs": { "groupby_timestamp": { "date_histogram": { "field": "timestamp", "interval": "day" }, "aggs": { "avg_score": { "avg": { "field": "score" } } } } } } } } } } 当需要先对“region”低基字段进行分组,再对“host”低基字段进行分组,最后对“timestamp”高基字段进行直方图分组时,聚合增强的索引设置如下。 // 索引设置 "settings" : { "index" : { "search" : { "turbo" : { "enabled" : "true" // 开启优化 } }, "sort" : { // 指定排序键 "field" : [ "region", "host", "timestamp", "other" ] }, "cluster" : { "field" : [ // 指定聚簇键 "region", "host" ] } } } 聚簇键必须是排序键的前缀子集。 高基字段必须在排序键中,且高基字段必须在最后一个低基字段后面。
-
低基字段分组聚合 低基字段一般采用分组聚合,在排序的情况下具备较好的数据聚簇性,利于向量化批量处理数据。 例如,查询语句如下所示。 POST testindex/_search { "size": 0, "aggs": { "groupby_region": { "terms": { "field": "region" }, "aggs": { "groupby_host": { "terms": { "field": "host" }, "aggs": { "avg_cpu_usage": { "avg": { "field": "cpu_usage" } } } } } } } } 当需要对“region”和“host”这两个低基字段进行聚合增强,则需要对索引进行如下设置。 // 索引设置 "settings" : { "index" : { "search" : { "turbo" : { "enabled" : "true" // 开启优化 } }, "sort" : { // 指定排序键 "field" : [ "region", "host", "other" ] }, "cluster" : { "field" : [ // 指定聚簇键 "region", "host" ] } } } 聚簇键必须是排序键的前缀子集。
-
场景描述 聚合增强在数据聚簇的情况下,利用向量化技术,批量处理数据,从而提升聚合性能,优化可观测性业务的聚合分析能力。 在大规模数据的集聚合分析场景下,耗时主要集中在对数据的分组聚合。 提升分组聚合能力依赖排序键和聚簇键。 排序键:数据按照排序键顺序存储。 聚簇键:是排序键的前缀子集,数据按照聚簇键聚簇在一起。 聚合增强常见的使用场景请参见表1。 表1 聚合增强的使用场景 场景 描述 相关文档 低基字段聚合 表示对具有较少不同值的列进行聚合,如对一个存储类别的列进行聚合。 低基字段分组聚合 高基字段聚合 表示对具有较多不同值的列进行聚合,如对一个存储时间的列进行按天的时间聚合。 高基字段直方图聚合 低基字段和高基字段混合聚合 表示对以上两种类型的聚合混合在一起,如先对低基字段做分组聚合,然后再对高基字段做直方图聚合。 低基字段分组聚合混合高基字段直方图聚合
-
性能测试对比 测试环境 数据集: esrally nyc_taxis数据集 集群规格: 4U16G 100GB高IO * 3节点 测试步骤 在集群中创建索引模板,指定排序键和关闭聚合增强。 PUT /_template/nyc_taxis { "template": "nyc_taxis*", "settings": { "index.search.turbo.enabled": false, "index.sort.field": "dropoff_datetime", "number_of_shards": 3, "number_of_replicas": 0 } } 使用esrally执行nyc_taxis数据集的测试,得到关闭聚合增强时的结果。 在同一个集群中创建索引模板,指定排序键和开启聚合增强。 PUT /_template/nyc_taxis { "template": "nyc_taxis*", "settings": { "index.search.turbo.enabled": true, "index.sort.field": "dropoff_datetime", "number_of_shards": 3, "number_of_replicas": 0 } } 使用esrally执行nyc_taxis数据集的测试,得到开启聚合增强时的结果。 测试结果 本次测试仅关注针对“dropoff_datetime”聚合的查询结果,即只关注“autohisto_agg”和“date_histogram_agg”两个任务的结果,以下为该任务的测试结果对比。 Metric Task Unit 关闭聚合增强 开启聚合增强 关闭聚合增强 开启聚合增强 open/close 结论 测试轮次1 测试轮次2 测试轮次3 测试轮次1 测试轮次2 测试轮次3 均值 均值 Min Throughput autohisto_agg ops/s 4.42 4.44 4.43 11.66 11.94 11.96 4.43 11.85 2.68 吞吐量提升2.5倍以上 Mean Throughput autohisto_agg ops/s 4.50 4.46 4.44 11.81 11.99 12.00 4.47 11.93 2.67 Median Throughput autohisto_agg ops/s 4.51 4.46 4.44 11.83 11.98 12.00 4.47 11.94 2.67 Max Throughput autohisto_agg ops/s 4.54 4.48 4.45 11.90 12.07 12.02 4.49 12.00 2.67 100th percentile latency autohisto_agg ms 216.30 - - - 84.56 80.38 216.30 82.47 0.38 时延下降60%以上 100th percentile service time autohisto_agg ms 216.30 - - - 84.56 80.38 216.30 82.47 0.38 error rate autohisto_agg % 0 0 0 0 0 0 0 0 0 - Min Throughput date_histogram_agg ops/s 4.72 4.67 4.65 12.57 12.40 12.59 4.68 12.52 2.68 吞吐量提升2.5倍以上 Mean Throughput date_histogram_agg ops/s 4.73 4.67 4.67 12.61 12.46 12.61 4.69 12.56 2.68 Median Throughput date_histogram_agg ops/s 4.73 4.67 4.67 12.62 12.46 12.60 4.69 12.56 2.68 Max Throughput date_histogram_agg ops/s 4.74 4.67 4.67 12.64 12.49 12.63 4.69 12.59 2.68 50th percentile latency date_histogram_agg ms 202.61 218.09 213.43 77.64 76.02 82.63 211.38 78.77 0.37 时延下降60%以上 100th percentile latency date_histogram_agg ms 207.35 223.88 246.63 77.99 - - 225.95 77.99 0.35 50th percentile service time date_histogram_agg ms 202.61 218.09 213.43 77.64 76.02 82.63 211.38 78.77 0.37 100th percentile service time date_histogram_agg ms 207.35 223.88 246.63 77.99 - - 225.95 77.99 0.35 error rate date_histogram_agg % 0 0 0 0 0 0 0 0 0 - 测试结论 在集群配置相同的情况下,开启聚合增强后,聚合性能显著提升,查询吞吐量提升2.5倍以上,查询时延下降60%以上。
-
管理配置文件 在配置文件列表,支持对创建的配置文件进行编辑、添加到自定义模板、删除等操作。 表3 管理配置文件 功能 使用限制 操作指导 修改配置文件 当配置文件有执行中的管道任务时,不支持修改。 在配置文件列表,单击操作列的“编辑”进入编辑配置文件页面,可以修改“配置文件内容”、“隐藏内容列表”及运行参数。 将配置文件设置为模板 无 在配置文件列表,单击操作列的“添加到自定义模板”进入添加到自定义模板页面,设置模板名称、描述和配置文件内容,单击“确定”添加到自定义模板列表中,方便下次创建配置文件时直接使用。 导出配置文件 无 在配置文件列表,单击右上角的,可以批量导出配置文件到本地,便于本地备份。 删除配置文件 当配置文件有执行中的管道任务时,不支持删除。 在配置文件列表,单击操作列的“删除”,在弹窗中单击“确定”删除配置文件。
-
场景描述 CSS服务支持创建多种安全模式的集群,不同集群的差异请参见表1。 表1 集群类型介绍 集群类型 集群描述 适用场景 非安全集群 非安全模式的集群 非安全模式的集群无需安全认证即可访问,采用HTTP协议明文传输数据。建议确认访问环境的安全性,勿将访问接口暴露到公网环境上。 适合内网业务,用于测试场景。 优点:简单,接入集群容易。 缺点:安全性差,任何人都可以访问集群。 安全集群 安全模式+HTTP协议的集群 安全模式的集群需要通过安全认证才能访问,且支持对集群进行授权、加密等功能。采用HTTP协议明文传输数据。建议确认访问环境的安全性,勿将访问接口暴露到公网环境上。 可以实现用户权限隔离,适用于对集群性能敏感的场景。 优点:访问集群需要安全认证,提升了集群安全性。通过HTTP协议访问集群又能保留集群的高性能。 缺点:无法公网访问集群。 安全模式+HTTPS协议的集群 安全模式的集群需要通过安全认证才能访问,且支持对集群进行授权、加密等功能。采用HTTPS协议进行通信加密,使数据更安全。 有非常高的安全要求,且需要公网访问集群的场景。 优点:访问集群需要安全认证,提升了集群安全性,且HTTPS协议的通讯加密可以实现集群公网访问功能。 缺点:通过HTTPS协议访问集群,集群的读取性能相对HTTP协议来说,会下降20%左右。 同时,CSS服务支持多种安全模式的更改场景,请参见表2。 表2 安全模式的更改场景 场景 相关文档 “非安全模式的集群”切换为“安全模式+HTTP协议的集群” 非安全模式切换为安全模式 “非安全模式的集群”切换为“安全模式+HTTPS协议的集群” “安全模式+HTTP协议的集群”切换为“非安全模式的集群” 安全模式切换为非安全模式 “安全模式+HTTPS协议的集群”切换为“非安全模式的集群” “安全模式+HTTP协议的集群”切换为“安全模式+HTTPS协议的集群” 切换安全模式下的协议 “安全模式+HTTPS协议的集群”切换为“安全模式+HTTP协议的集群”
-
约束限制 2022年11月之后创建的集群(且集群版本不小于6.5.4)才支持切换安全模式。 在更改集群安全模式的过程中,集群会自动重启。重启会导致业务中断,并且重启后调用集群的认证方式也会发生改变,客户端需要做相应调整。 对于已打开过Kibana会话框的集群,在更改集群安全模式后,Kibana会提示Session错误,此时需要清理缓存再打开Kibana才能正常访问。 关闭集群的安全模式时,会清理安全集群的账号,安全账号被清理后将无法恢复。
-
推荐配置的监控指标 集群的日常监控,推荐重点配置如下监控指标:磁盘使用率、集群健康状态。 监控集群的cpu、jvm使用情况,推荐重点配置如下监控指标:平均JVM堆使用率、最大JVM堆使用率、平均CPU使用率、最大CPU利用率。 监控集群的写入、查询延迟和吞吐量情况,推荐重点配置如下监控指标:平均索引延迟、平均索引速率、平均查询延迟、平均查询速率。 监控集群的写入、查询的排队队列和拒绝情况,推荐重点配置如下监控指标:Write队列中总排队任务数、Search队列中总排队任务数、Write队列中总的已拒绝任务数、Search队列中总的已拒绝任务数。
-
查看集群的监控信息 在集群列表查看集群和集群节点的监控信息。 登录云搜索服务管理控制台。 在左侧导航栏选择“集群管理”,进入对应类型的集群列表。 在集群列表,选择目标集群,单击操作列“监控信息”查看集群和节点监控信息。 图1 查看监控信息 选择“资源实例”页签,查看集群的监控指标。 资源实例:选择要查看监控信息的集群,默认选择当前集群。支持多选,进行数据对比。 支持设置监控时间,以及查看同一集群的同比/环比数据。 添加视图分组:支持在默认分组的基础上新增自定义的分组。当鼠标悬停在左侧分组名称上,右侧会显示修改名称和删除分组的图标,可以修改分组。 设置指标:在“设置监控指标”弹窗中,可以根据页面提示设置“原始指标”和“TopN指标”。 选择“云服务节点”页签,查看集群节点的监控指标。只会显示“资源实例”页签中选择的第一个资源实例的节点监控信息。 云服务节点:选择要查看监控信息的集群节点,默认选择当前集群的第一个节点。支持多选,进行数据对比。 支持设置监控时间,以及查看同一集群的同比/环比数据。 添加视图分组:支持在默认分组的基础上新增自定义的分组。当鼠标悬停在左侧分组名称上,右侧会显示修改名称和删除分组的图标,可以修改分组。 设置指标:在“设置监控指标”弹窗中,可以根据页面提示设置“原始指标”。
-
kibana-monitor配置文件 kibana-monitor配置文件内容如下,建议保存为“monitoring-kibana.ndjson”文件。 {"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{}"},"title":"[monitoring] segment memory in bytes of index for top10","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"[monitoring] segment memory in bytes of index for top10\",\"type\":\"metrics\",\"aggs\":[],\"params\":{\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"type\":\"timeseries\",\"series\":[{\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"color\":\"#68BC00\",\"split_mode\":\"terms\",\"split_color_mode\":\"kibana\",\"metrics\":[{\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"max\",\"field\":\"index_stats.total.segments.memory_in_bytes\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"bytes\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"label\":\"segments memory in bytes \",\"type\":\"timeseries\",\"terms_field\":\"index_stats.index\",\"terms_order_by\":\"61ca57f2-469d-11e7-af02-69e470af7417\"}],\"time_field\":\"timestamp\",\"index_pattern\":\"monitoring-eye-css-*\",\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"default_index_pattern\":\"monitoring-eye-css-*\",\"default_timefield\":\"timestamp\",\"isModelInvalid\":false}}"},"id":"3ae5d820-6628-11ed-8cd7-973626cf6f70","references":[],"type":"visualization","updated_at":"2022-12-01T12:41:01.165Z","version":"WzIwNiwyXQ=="} {"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{}"},"title":"[monitoring] segment count of index for top10","uiStateJSON":"{}","version":1,"visState":"{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"axis_scale\":\"normal\",\"default_index_pattern\":\"monitoring-eye-css-*\",\"default_timefield\":\"timestamp\",\"filter\":{\"language\":\"kuery\",\"query\":\"\"},\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"monitoring-eye-css-*\",\"interval\":\"\",\"isModelInvalid\":false,\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(231,102,76,1)\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"segment count of index for top10\",\"line_width\":1,\"metrics\":[{\"field\":\"index_stats.total.segments.count\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"max\"}],\"point_size\":1,\"separate_axis\":0,\"split_color_mode\":\"kibana\",\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"index_stats.index\",\"terms_order_by\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"timeseries\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"timestamp\",\"tooltip_mode\":\"show_all\",\"type\":\"timeseries\"},\"title\":\"[monitoring] segment count of index for top10\",\"type\":\"metrics\"}"},"id":"45d571c0-6626-11ed-8cd7-973626cf6f70","references":[],"type":"visualization","updated_at":"2022-12-01T12:41:01.165Z","version":"WzIwNywyXQ=="} {"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{}"},"title":"[monitoring] markdown","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"[monitoring] markdown\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":false,\"markdown\":\"### Index Monitoring \\nThis dashboard contains default table for you to play with. You can view it, search it, and interact with the visualizations.\"},\"aggs\":[]}"},"id":"b2811c70-a5f1-11ec-9a68-ada9d754c566","references":[],"type":"visualization","updated_at":"2022-12-01T12:41:01.165Z","version":"WzIwOCwyXQ=="} {"attributes":{"description":"number of document being indexing for primary and replica shards","kibanaSavedObjectMeta":{"searchSourceJSON":"{}"},"title":"[monitoring] Indexing Rate (/s)","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"[monitoring] Indexing Rate (/s)\",\"type\":\"metrics\",\"params\":{\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"type\":\"timeseries\",\"series\":[{\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"color\":\"rgba(0,32,188,1)\",\"split_mode\":\"everything\",\"metrics\":[{\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"max\",\"field\":\"indices_stats._all.total.indexing.index_total\"},{\"unit\":\"1s\",\"id\":\"fed72db0-a5f8-11ec-aa10-992297d21a2e\",\"type\":\"derivative\",\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\"},{\"unit\":\"\",\"id\":\"14b66420-a5f9-11ec-aa10-992297d21a2e\",\"type\":\"positive_only\",\"field\":\"fed72db0-a5f8-11ec-aa10-992297d21a2e\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"label\":\"Indexing Rate (/s)\",\"type\":\"timeseries\",\"split_color_mode\":\"rainbow\",\"hidden\":false}],\"time_field\":\"timestamp\",\"index_pattern\":\"monitoring-eye-css-*\",\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"show_grid\":1,\"default_index_pattern\":\"monitoring-eye-css-*\",\"default_timefield\":\"timestamp\",\"isModelInvalid\":false,\"legend_position\":\"bottom\"},\"aggs\":[]}"},"id":"de4f8ab0-a5f8-11ec-9a68-ada9d754c566","references":[],"type":"visualization","updated_at":"2022-12-01T12:41:01.165Z","version":"WzIwOSwyXQ=="} {"attributes":{"description":"number of search request being executed in primary and replica shards","kibanaSavedObjectMeta":{"searchSourceJSON":"{}"},"title":"[monitoring] Search Rate (/s)","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"[monitoring] Search Rate (/s)\",\"type\":\"metrics\",\"params\":{\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"type\":\"timeseries\",\"series\":[{\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"color\":\"rgba(0,33,224,1)\",\"split_mode\":\"everything\",\"metrics\":[{\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"max\",\"field\":\"indices_stats._all.total.search.query_total\"},{\"unit\":\"1s\",\"id\":\"b1093ac0-a5f7-11ec-aa10-992297d21a2e\",\"type\":\"derivative\",\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\"},{\"unit\":\"\",\"id\":\"c17db930-a5f7-11ec-aa10-992297d21a2e\",\"type\":\"positive_only\",\"field\":\"b1093ac0-a5f7-11ec-aa10-992297d21a2e\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"split_color_mode\":\"rainbow\",\"label\":\"Search Rate (/s)\",\"type\":\"timeseries\",\"filter\":{\"query\":\"\",\"language\":\"kuery\"}}],\"time_field\":\"timestamp\",\"index_pattern\":\"monitoring-eye-css-*\",\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"show_grid\":1,\"default_index_pattern\":\"monitoring-eye-css-*\",\"default_timefield\":\"timestamp\",\"isModelInvalid\":false,\"legend_position\":\"bottom\"},\"aggs\":[]}"},"id":"811df7a0-a5f8-11ec-9a68-ada9d754c566","references":[],"type":"visualization","updated_at":"2022-12-01T12:41:01.165Z","version":"WzIxMCwyXQ=="} {"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{}"},"title":"[monitoring] total docs count","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"[monitoring] total docs count\",\"type\":\"metrics\",\"aggs\":[],\"params\":{\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"type\":\"timeseries\",\"series\":[{\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"color\":\"rgba(218,139,69,1)\",\"split_mode\":\"everything\",\"split_color_mode\":\"kibana\",\"metrics\":[{\"unit\":\"\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"max\",\"field\":\"indices_stats._all.total.docs.count\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"label\":\"total_docs_count\",\"type\":\"timeseries\"}],\"time_field\":\"timestamp\",\"index_pattern\":\"monitoring-eye-css-*\",\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"default_index_pattern\":\"monitoring-eye-css-*\",\"default_timefield\":\"timestamp\",\"isModelInvalid\":false,\"legend_position\":\"bottom\"}}"},"id":"eea89780-664b-11ed-8cd7-973626cf6f70","references":[],"type":"visualization","updated_at":"2022-12-01T12:41:01.165Z","version":"WzIxMSwyXQ=="} {"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{}"},"title":"[monitoring] total docs delete","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"[monitoring] total docs delete\",\"type\":\"metrics\",\"aggs\":[],\"params\":{\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"type\":\"timeseries\",\"series\":[{\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"color\":\"rgba(214,191,87,1)\",\"split_mode\":\"everything\",\"split_color_mode\":\"kibana\",\"metrics\":[{\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"max\",\"field\":\"indices_stats._all.total.docs.deleted\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"label\":\"totol_docs_delete\",\"type\":\"timeseries\",\"hidden\":false}],\"time_field\":\"timestamp\",\"index_pattern\":\"monitoring-eye-css-*\",\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"default_index_pattern\":\"monitoring-eye-css-*\",\"default_timefield\":\"timestamp\",\"isModelInvalid\":false,\"drop_last_bucket\":1,\"legend_position\":\"bottom\"}}"},"id":"cfbb4e20-664c-11ed-8cd7-973626cf6f70","references":[],"type":"visualization","updated_at":"2022-12-01T12:41:01.165Z","version":"WzIxMiwyXQ=="} {"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{}"},"title":"[monitoring] total store size in bytes","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"[monitoring] total store size in bytes\",\"type\":\"metrics\",\"aggs\":[],\"params\":{\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"type\":\"timeseries\",\"series\":[{\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"split_color_mode\":\"kibana\",\"metrics\":[{\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"max\",\"field\":\"indices_stats._all.total.store.size_in_bytes\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"bytes\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"label\":\"total store size in bytes\",\"type\":\"timeseries\"}],\"time_field\":\"timestamp\",\"index_pattern\":\"monitoring-eye-css-*\",\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"default_index_pattern\":\"monitoring-eye-css-*\",\"default_timefield\":\"timestamp\",\"isModelInvalid\":false,\"legend_position\":\"bottom\",\"background_color_rules\":[{\"id\":\"7712e550-664f-11ed-8b5d-8db37e5b4cc4\"}],\"bar_color_rules\":[{\"id\":\"77680a30-664f-11ed-8b5d-8db37e5b4cc4\"}]}}"},"id":"c7f72ae0-664e-11ed-8cd7-973626cf6f70","references":[],"type":"visualization","updated_at":"2022-12-01T12:41:01.165Z","version":"WzIxMywyXQ=="} {"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{}"},"title":"[monitoring] indexing rate of index for top10(/s)","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"[monitoring] indexing rate of index for top10(/s)\",\"type\":\"metrics\",\"aggs\":[],\"params\":{\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"type\":\"timeseries\",\"series\":[{\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"color\":\"#68BC00\",\"split_mode\":\"terms\",\"metrics\":[{\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"max\",\"field\":\"index_stats.total.indexing.index_total\"},{\"unit\":\"1s\",\"id\":\"541ed8f0-a5ee-11ec-aa10-992297d21a2e\",\"type\":\"derivative\",\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\"},{\"unit\":\"\",\"id\":\"67ec1f50-a5ee-11ec-aa10-992297d21a2e\",\"type\":\"positive_only\",\"field\":\"541ed8f0-a5ee-11ec-aa10-992297d21a2e\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"label\":\"indexing_rate\",\"type\":\"timeseries\",\"split_filters\":[{\"color\":\"#68BC00\",\"id\":\"81004200-a5ee-11ec-aa10-992297d21a2e\",\"filter\":{\"query\":\"\",\"language\":\"kuery\"}}],\"filter\":{\"query\":\"\",\"language\":\"kuery\"},\"terms_field\":\"index_stats.index\",\"terms_order_by\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"terms_size\":\"10\",\"terms_direction\":\"desc\",\"split_color_mode\":\"rainbow\"}],\"time_field\":\"timestamp\",\"index_pattern\":\"monitoring-eye-css-*\",\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"show_grid\":1,\"default_index_pattern\":\"monitoring-eye-css-*\",\"default_timefield\":\"timestamp\",\"isModelInvalid\":false,\"tooltip_mode\":\"show_all\"}}"},"id":"943b3e00-a5ef-11ec-9a68-ada9d754c566","references":[],"type":"visualization","updated_at":"2022-12-01T12:41:01.165Z","version":"WzIxNCwyXQ=="} {"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{}"},"title":"[monitoring] search rate of index for top10(/s)","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"[monitoring] search rate of index for top10(/s)\",\"type\":\"metrics\",\"aggs\":[],\"params\":{\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"type\":\"timeseries\",\"series\":[{\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"color\":\"rgba(99,157,12,1)\",\"split_mode\":\"terms\",\"metrics\":[{\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"max\",\"field\":\"index_stats.total.search.query_total\"},{\"unit\":\"1s\",\"id\":\"fdfdfad0-a5ef-11ec-aa10-992297d21a2e\",\"type\":\"derivative\",\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\"},{\"unit\":\"\",\"id\":\"0aaa26a0-a5f0-11ec-aa10-992297d21a2e\",\"type\":\"positive_only\",\"field\":\"fdfdfad0-a5ef-11ec-aa10-992297d21a2e\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"label\":\"search rate\",\"type\":\"timeseries\",\"terms_field\":\"index_stats.index\",\"terms_order_by\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"split_color_mode\":\"rainbow\"}],\"time_field\":\"timestamp\",\"index_pattern\":\"monitoring-eye-css-*\",\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"show_grid\":1,\"default_index_pattern\":\"monitoring-eye-css-*\",\"default_timefield\":\"timestamp\",\"isModelInvalid\":false,\"tooltip_mode\":\"show_all\"}}"},"id":"ab503550-a5ef-11ec-9a68-ada9d754c566","references":[],"type":"visualization","updated_at":"2022-12-01T12:41:01.165Z","version":"WzIxNSwyXQ=="} {"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{}"},"title":"[monitoring] indices store_size for top10","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"[monitoring] indices store_size for top10\",\"type\":\"metrics\",\"aggs\":[],\"params\":{\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"type\":\"timeseries\",\"series\":[{\"id\":\"38474c50-a5f5-11ec-aa10-992297d21a2e\",\"color\":\"#68BC00\",\"split_mode\":\"terms\",\"metrics\":[{\"id\":\"38474c51-a5f5-11ec-aa10-992297d21a2e\",\"type\":\"max\",\"field\":\"index_stats.total.store.size_in_bytes\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"bytes\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"label\":\"store_size for index\",\"type\":\"timeseries\",\"terms_field\":\"index_stats.index\",\"terms_order_by\":\"38474c51-a5f5-11ec-aa10-992297d21a2e\",\"filter\":{\"query\":\"\",\"language\":\"kuery\"},\"split_color_mode\":\"rainbow\"}],\"time_field\":\"timestamp\",\"index_pattern\":\"monitoring-eye-css-*\",\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"show_grid\":1,\"default_index_pattern\":\"monitoring-eye-css-*\",\"default_timefield\":\"timestamp\",\"isModelInvalid\":false,\"filter\":{\"query\":\"\",\"language\":\"kuery\"},\"bar_color_rules\":[{\"id\":\"7d9d3cb0-a5f5-11ec-aa10-992297d21a2e\"}],\"tooltip_mode\":\"show_all\"}}"},"id":"c78119a0-a5f5-11ec-9a68-ada9d754c566","references":[],"type":"visualization","updated_at":"2022-12-01T12:41:01.165Z","version":"WzIxNiwyXQ=="} {"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{}"},"title":"[monitoring] search query time in millis of index for top10(ms)","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"[monitoring] search query time in millis of index for top10(ms)\",\"type\":\"metrics\",\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_max\":\"\",\"axis_min\":\"\",\"axis_position\":\"left\",\"axis_scale\":\"normal\",\"default_index_pattern\":\"monitoring-eye-css-*\",\"default_timefield\":\"timestamp\",\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"index_pattern\":\"monitoring-eye-css-*\",\"interval\":\"\",\"isModelInvalid\":false,\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"formatter\":\"number\",\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"label\":\"index_query_time_in_millis\",\"line_width\":1,\"metrics\":[{\"field\":\"index_stats.total.search.query_time_in_millis\",\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"max\"},{\"unit\":\"1s\",\"id\":\"42c92b10-6645-11ed-925a-6de90846447d\",\"type\":\"derivative\",\"field\":\"61ca57f2-469d-11e7-af02-69e470af7417\"}],\"point_size\":1,\"separate_axis\":0,\"split_color_mode\":\"kibana\",\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"index_stats.index\",\"terms_order_by\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"timeseries\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"timestamp\",\"tooltip_mode\":\"show_all\",\"type\":\"timeseries\",\"background_color\":null,\"filter\":{\"query\":\"\",\"language\":\"kuery\"},\"legend_position\":\"right\"}}"},"id":"c8109100-6627-11ed-8cd7-973626cf6f70","references":[],"type":"visualization","updated_at":"2022-12-01T12:41:01.165Z","version":"WzIxNywyXQ=="} {"attributes":{"description":"","hits":0,"kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"filter\":[]}"},"optionsJSON":"{\"hidePanelTitles\":false,\"useMargins\":true}","panelsJSON":"[{\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":5,\"i\":\"971ed6c6-81b9-491b-9f08-e3ae9c382abd\"},\"panelIndex\":\"971ed6c6-81b9-491b-9f08-e3ae9c382abd\",\"embeddableConfig\":{},\"panelRefName\":\"panel_0\"},{\"gridData\":{\"x\":0,\"y\":5,\"w\":24,\"h\":15,\"i\":\"5a6982e7-0c6c-4733-8a2d-e4c57cdf7397\"},\"panelIndex\":\"5a6982e7-0c6c-4733-8a2d-e4c57cdf7397\",\"embeddableConfig\":{},\"panelRefName\":\"panel_1\"},{\"gridData\":{\"x\":24,\"y\":5,\"w\":24,\"h\":15,\"i\":\"662476f4-739c-4a05-858c-2ee8230cf410\"},\"panelIndex\":\"662476f4-739c-4a05-858c-2ee8230cf410\",\"embeddableConfig\":{},\"panelRefName\":\"panel_2\"},{\"gridData\":{\"x\":0,\"y\":20,\"w\":16,\"h\":15,\"i\":\"d89c38e2-33f3-4592-b503-20460a6a7a57\"},\"panelIndex\":\"d89c38e2-33f3-4592-b503-20460a6a7a57\",\"embeddableConfig\":{},\"panelRefName\":\"panel_3\"},{\"gridData\":{\"x\":16,\"y\":20,\"w\":16,\"h\":15,\"i\":\"1f693b49-79fa-4807-94e8-0c12f51e54f8\"},\"panelIndex\":\"1f693b49-79fa-4807-94e8-0c12f51e54f8\",\"embeddableConfig\":{},\"panelRefName\":\"panel_4\"},{\"gridData\":{\"x\":32,\"y\":20,\"w\":16,\"h\":15,\"i\":\"616b143d-74e9-4dac-98ba-5849536f0fba\"},\"panelIndex\":\"616b143d-74e9-4dac-98ba-5849536f0fba\",\"embeddableConfig\":{},\"panelRefName\":\"panel_5\"},{\"gridData\":{\"x\":0,\"y\":35,\"w\":24,\"h\":11,\"i\":\"cfa82f27-1b8d-49ba-a7b9-d8809d3b258c\"},\"panelIndex\":\"cfa82f27-1b8d-49ba-a7b9-d8809d3b258c\",\"embeddableConfig\":{},\"panelRefName\":\"panel_6\"},{\"gridData\":{\"x\":24,\"y\":35,\"w\":24,\"h\":11,\"i\":\"135d13eb-aab6-43ca-9029-7d26e91d90e3\"},\"panelIndex\":\"135d13eb-aab6-43ca-9029-7d26e91d90e3\",\"embeddableConfig\":{},\"panelRefName\":\"panel_7\"},{\"gridData\":{\"x\":0,\"y\":46,\"w\":24,\"h\":11,\"i\":\"28a77de1-9110-49e8-b273-724f880b1653\"},\"panelIndex\":\"28a77de1-9110-49e8-b273-724f880b1653\",\"embeddableConfig\":{},\"panelRefName\":\"panel_8\"},{\"gridData\":{\"x\":24,\"y\":46,\"w\":24,\"h\":11,\"i\":\"80ece867-cf23-4935-bfbc-430afa51bcca\"},\"panelIndex\":\"80ece867-cf23-4935-bfbc-430afa51bcca\",\"embeddableConfig\":{},\"panelRefName\":\"panel_9\"},{\"gridData\":{\"x\":0,\"y\":57,\"w\":24,\"h\":11,\"i\":\"2ba970aa-c9c4-491b-bdd3-c1b1ee9bc8d3\"},\"panelIndex\":\"2ba970aa-c9c4-491b-bdd3-c1b1ee9bc8d3\",\"embeddableConfig\":{},\"panelRefName\":\"panel_10\"},{\"gridData\":{\"x\":24,\"y\":57,\"w\":24,\"h\":11,\"i\":\"f2e1b6ab-ddf7-492e-aaca-9460f11aa4aa\"},\"panelIndex\":\"f2e1b6ab-ddf7-492e-aaca-9460f11aa4aa\",\"embeddableConfig\":{},\"panelRefName\":\"panel_11\"},{\"gridData\":{\"x\":0,\"y\":68,\"w\":24,\"h\":11,\"i\":\"dd14182d-d8b9-47f2-bf36-6cba3b09586c\"},\"panelIndex\":\"dd14182d-d8b9-47f2-bf36-6cba3b09586c\",\"embeddableConfig\":{},\"panelRefName\":\"panel_12\"},{\"gridData\":{\"x\":24,\"y\":68,\"w\":24,\"h\":11,\"i\":\"a47f9333-52b7-49b7-8cac-f470cf405131\"},\"panelIndex\":\"a47f9333-52b7-49b7-8cac-f470cf405131\",\"embeddableConfig\":{},\"panelRefName\":\"panel_13\"}]","timeRestore":false,"title":"[Monitoring] Index monitoring Dashboard","version":1},"id":"524eb000-a5f2-11ec-9a68-ada9d754c566","references":[{"id":"b2811c70-a5f1-11ec-9a68-ada9d754c566","name":"panel_0","type":"visualization"},{"id":"de4f8ab0-a5f8-11ec-9a68-ada9d754c566","name":"panel_1","type":"visualization"},{"id":"811df7a0-a5f8-11ec-9a68-ada9d754c566","name":"panel_2","type":"visualization"},{"id":"eea89780-664b-11ed-8cd7-973626cf6f70","name":"panel_3","type":"visualization"},{"id":"cfbb4e20-664c-11ed-8cd7-973626cf6f70","name":"panel_4","type":"visualization"},{"id":"c7f72ae0-664e-11ed-8cd7-973626cf6f70","name":"panel_5","type":"visualization"},{"id":"943b3e00-a5ef-11ec-9a68-ada9d754c566","name":"panel_6","type":"visualization"},{"id":"ab503550-a5ef-11ec-9a68-ada9d754c566","name":"panel_7","type":"visualization"},{"id":"c78119a0-a5f5-11ec-9a68-ada9d754c566","name":"panel_8","type":"visualization"},{"id":"225f6020-a5f1-11ec-9a68-ada9d754c566","name":"panel_9","type":"visualization"},{"id":"17d49220-662a-11ed-8cd7-973626cf6f70","name":"panel_10","type":"visualization"},{"id":"c8109100-6627-11ed-8cd7-973626cf6f70","name":"panel_11","type":"visualization"},{"id":"45d571c0-6626-11ed-8cd7-973626cf6f70","name":"panel_12","type":"visualization"},{"id":"3ae5d820-6628-11ed-8cd7-973626cf6f70","name":"panel_13","type":"visualization"}],"type":"dashboard","updated_at":"2022-12-01T12:41:01.165Z","version":"WzIxOCwyXQ=="} {"exportedCount":16,"missingRefCount":0,"missingReferences":[]}
-
查看索引读写流量 当集群启用了索引监控后,支持查询一段时间内的索引读写流量。 执行如下命令,查看所有索引读写流量。 GET /_cat/monitoring 执行如下命令,查看某一索引的读写流量。 GET /_cat/monitoring/{indexname} {indexName}为需要查看读写流量的索引名称。 执行如下命令,查看索引不同时间段的读写流量。 GET _cat/monitoring?begin=1650099461000 GET _cat/monitoring?begin=2022-04-16T08:57:41 GET _cat/monitoring?begin=2022-04-16T08:57:41&end=2022-04-17T08:57:41 表2 配置项说明 配置项 是否必选 说明 indexname 否 索引名称。 说明: 不支持查看系统索引,以“.”开头的索引是系统索引。 begin 否 查看监控的起始时间,UTC时间,默认是当前时间的前5分钟。 支持时间格式:strict_date_optional_time|epoch_millis 默认值:当前时间减去5分钟。 end 否 查看监控的结束时间,UTC时间,默认是当前时间。 支持时间格式: strict_date_optional_time|epoch_millis 默认值:当前时间。 返回信息示例: index begin end status pri rep init unassign docs.count docs.deleted store.size pri.store.size delete.rate indexing.rate search.rate test 2022-03-25T09:46:53.765Z 2022-03-25T09:51:43.767Z yellow 1 1 0 1 9 0 5.9kb 5.9kb 0/s 0/s 0/s 表3 返回信息的参数说明 参数 说明 index 索引名称。 begin 查看监控数据的起始时间。 end 查看监控数据的结束时间。 status 查询监控时间间隔内的索引状态。 pri 查询监控时间间隔内的索引的shard数量。 rep 查询监控时间间隔内的索引副本数量。 init 查询监控时间间隔内的索引的初始化数量。 unassign 查询监控时间间隔内的索引的未分配数量。 docs.count 查询监控时间间隔内的文档数量。 docs.deleted 查询监控时间间隔内的文档删除数量。 store.size 查询监控时间间隔内存储的索引大小。 pri.store.size 查询监控时间间隔内的索引主分片的大小。 delete.rate 监控时间间隔内的索引每秒删除数量。 indexing.rate 监控时间间隔内的索引每秒写入数量。 search.rate 监控时间间隔内的索引每秒查询数量。
-
启用索引监控 执行如下命令,打开索引监控开关。 PUT _cluster/settings { "persistent": { "css.monitoring.index.enabled": "true" } } 当需要监控单个索引时,可以执行如下命令。 PUT _cluster/settings { "persistent": { "css.monitoring.index.enabled": "true", "css.monitoring.index.interval": "30s", "css.monitoring.index.indices": ["index_name"], "css.monitoring.history.duration": "3d" } } 表1 配置项说明 配置项 类型 说明 css.monitoring.index.enabled Boolean 索引监控的控制开关,设置为true将打开集群索引监控功能。 默认值:false css.monitoring.index.interval Time 索引监控采集数据的时间间隔。 最小值:1s 默认值:10s css.monitoring.index.indices String 索引监控的索引名称,默认监控所有索引,可以配置监控单个索引,也可以配置通配符监控某一类索引。 例如: “"css.monitoring.index.indices": ["index_name"]”表示只监控“index_name”索引。 “"css.monitoring.index.indices": ["log_*"]”表示监控以“log_”开头的索引。 “"css.monitoring.index.indices": ["index1", "index2"]”表示监控“index1”和“index2”两个索引。 默认值:*(表示监控所有索引) css.monitoring.history.duration Time 监控数据存储的索引保留时间,默认保存一周。 最小值:1d 默认值:7d
-
管理向量索引缓存 CSS的向量检索引擎使用C++实现,使用的是堆外内存,该插件提供了接口对向量索引的缓存进行管理。 查看缓存统计信息 GET /_vector/stats 在向量插件实现中,向量索引与Lucene其他类型索引一样,每一个segment构造并存储一份索引文件,在查询时,该索引文件会被加载到堆外内存中。插件使用缓存机制对这些堆外内存进行管理。上述API能够查询当前堆外内存使用量、缓存命中次数、加载次数等信息。 预加载向量索引 PUT /_vector/warmup/{index_name} 使用上述接口能将指定index_name的向量索引预加载至堆外内存供查询使用。 清除缓存 PUT /_vector/clear/cache PUT /_vector/clear/cache/index_name 在使用向量索引时,缓存机制会限制堆外内存使用量。当总索引大小超出缓存大小限制时,将会发生索引项的换进换出,此时将会影响查询的性能。通过清除缓存API能够将不再使用的索引缓存清空,保证热数据索引的查询性能。 父主题: 配置Elasticsearch集群向量检索
-
代码示例 from elasticsearch import Elasticsearch from elasticsearch import helpers # 创建Elasticsearch客户端 def get_client(hosts: list, user: str = None, password: str = None): if user and password: return Elasticsearch(hosts, http_auth=(user, password), verify_certs=False, ssl_show_warn=False) else: return Elasticsearch(hosts) # 创建索引表 def create(client: Elasticsearch, index: str): # 索引mapping信息 index_mapping = { "settings": { "index": { "vector": "true", # 开启向量特性 "number_of_shards": 1, # 索引分片数,根据实际需求设置 "number_of_replicas": 0, # 索引副本数,根据实际需求设置 } }, "mappings": { "properties": { "my_vector": { "type": "vector", "dimension": 2, "indexing": True, "algorithm": "GRAPH", "metric": "euclidean" } # 可根据需求添加其他字段 } } } res = client.indices.create(index=index, body=index_mapping) print("create index result: ", res) # 写入数据 def write(client: Elasticsearch, index: str, vecs: list, bulk_size=500): for i in range(0, len(vecs), bulk_size): actions = [ { "_index": index, "my_vector": vec, # 可根据需求添加其他字段 } for vec in vecs[i: i+bulk_size] ] success, errors = helpers.bulk(client, actions, request_timeout=3600) if errors: print("write bulk failed with errors: ", errors) # 根据需求进行错误处理 else: print("write bulk {} docs success".format(success)) client.indices.refresh(index=index, request_timeout=3600) # 查询向量索引 def search(client: Elasticsearch, index: str, query: list, size: int): # 查询语句,可根据需求选择合适的查询方式 query_body = { "size": size, "query": { "vector": { "my_vector": { "vector": query, "topk": size } } } } res = client.search(index=index, body=query_body) print("search index result: ", res) # 删除索引 def delete(client: Elasticsearch, index: str): res = client.indices.delete(index=index) print("delete index result: ", res) if __name__ == '__main__': # 对于非安全集群,使用: es_client = get_client(hosts=['http://x.x.x.x:9200']) # 对于开启了https的安全集群,使用: # es_client = get_client(hosts=['https://x.x.x.x:9200', 'https://x.x.x.x:9200'], user='xxxxx', password='xxxxx') # 对于未开启https的安全集群,使用: # es_client = get_client(hosts=['http://x.x.x.x:9200', 'http://x.x.x.x:9200'], user='xxxxx', password='xxxxx') # 测试索引名称 index_name = "my_index" # 创建索引 create(es_client, index=index_name) # 写入数据 data = [[1.0, 1.0], [2.0, 2.0], [3.0, 3.0]] write(es_client, index=index_name, vecs=data) # 查询索引 query_vector = [1.0, 1.0] search(es_client, index=index_name, query=query_vector, size=3) # 删除索引 delete(es_client, index=index_name)
-
查询性能优化 在批量导入场景下,数据写入完成后,执行forcemerge操作能有效提升查询效率。 POST index_name/_forcemerge?max_num_segments=1 如果向量索引所需堆外内存超过了熔断线,查询时索引的缓存管理器会控制索引的换进换出,导致查询变慢,此时可适当调大熔断线的配置。 PUT _cluster/settings { "persistent": { "native.cache.circuit_breaker.cpu.limit": "75%" } } 如果需要返回的字段较少,且均为keyword或者数值类型字段,可以通过docvalue_fields配置召回需要的字段,有效降低fetch阶段的开销。 POST my_index/_search { "size": 2, "stored_fields": ["_none_"], "docvalue_fields": ["my_label"], "query": { "vector": { "my_vector": { "vector": [1, 1], "topk": 2 } } } }
-
写入性能优化 关闭副本,待数据导入完成后再开启副本,减少副本构建的开销。 调整“refresh_interval”为120s或者更大,避免频繁刷新索引生成大量小的segments,同时减少merge带来的向量索引构建开销。 适当调大“native.vector.index_threads”的值(默认为4),增加向量索引构建的线程数。 PUT _cluster/settings { "persistent": { "native.vector.index_threads": 8 } }
-
管理向量索引缓存 CSS的向量检索引擎使用C++实现,使用的是堆外内存,该插件提供了接口对向量索引的缓存进行管理。 查看缓存统计信息 GET /_vector/stats 在向量插件实现中,向量索引与Lucene其他类型索引一样,每一个segment构造并存储一份索引文件,在查询时,该索引文件会被加载到堆外内存中。插件使用缓存机制对这些堆外内存进行管理。上述API能够查询当前堆外内存使用量、缓存命中次数、加载次数等信息。 预加载向量索引 PUT /_vector/warmup/{index_name} 使用上述接口能将指定index_name的向量索引预加载至堆外内存供查询使用。 清除缓存 PUT /_vector/clear/cache PUT /_vector/clear/cache/index_name 在使用向量索引时,缓存机制会限制堆外内存使用量。当总索引大小超出缓存大小限制时,将会发生索引项的换进换出,此时将会影响查询的性能。通过清除缓存API能够将不再使用的索引缓存清空,保证热数据索引的查询性能。 父主题: 配置OpenSearch集群向量检索
-
写入性能优化 关闭副本,待数据导入完成后再开启副本,减少副本构建的开销。 调整“refresh_interval”为120s或者更大,避免频繁刷新索引生成大量小的segments,同时减少merge带来的向量索引构建开销。 适当调大“native.vector.index_threads”的值(默认为4),增加向量索引构建的线程数。 PUT _cluster/settings { "persistent": { "native.vector.index_threads": 8 } }
共100000条
- 1
- ...
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
- 1000
- 1001
- 1002
- 1003
- 1004
- 1005
- 1006
- 1007
- 1008
- 1009
- 1010
- 1011
- 1012
- 1013
- 1014
- 1015
- 1016
- 1017
- 1018
- 1019
- 1020
- 1021
- 1022
- 1023
- 1024
- 1025
- 1026
- 1027
- 1028
- 1029
- 1030
- 1031
- 1032
- 1033
- 1034
- 1035
- 1036
- 1037
- 1038
- 1039
- 1040
- 1041
- 1042
- 1043
- 1044
- 1045
- 1046
- 1047
- 1048
- 1049
- 1050
- 1051
- 1052
- 1053
- 1054
- 1055
- 1056
- 1057
- 1058
- 1059
- 1060
- 1061
- 1062
- 1063
- 1064
- 1065
- 1066
- 1067
- 1068
- 1069
- 1070
- 1071
- 1072
- 1073
- 1074
- 1075
- 1076
- 1077
- 1078
- 1079
- 1080
- 1081
- 1082
- 1083
- 1084
- 1085
- 1086
- 1087
- 1088
- 1089
- 1090
- 1091
- 1092
- 1093
- 1094
- 1095
- 1096
- 1097
- 1098
- 1099
- 1100
- 1101
- 1102
- 1103
- 1104
- 1105
- 1106
- 1107
- 1108
- 1109
- 1110
- 1111
- 1112
- 1113
- 1114
- 1115
- 1116
- 1117
- 1118
- 1119
- 1120
- 1121
- 1122
- 1123
- 1124
- 1125
- 1126
- 1127
- 1128
- 1129
- 1130
- 1131
- 1132
- 1133
- 1134
- 1135
- 1136
- 1137
- 1138
- 1139
- 1140
- 1141
- 1142
- 1143
- 1144
- 1145
- 1146
- 1147
- 1148
- 1149
- 1150
- 1151
- 1152
- 1153
- 1154
- 1155
- 1156
- 1157
- 1158
- 1159
- 1160
- 1161
- 1162
- 1163
- 1164
- 1165
- 1166
- 1167
- 1168
- 1169
- 1170
- 1171
- 1172
- 1173
- 1174
- 1175
- 1176
- 1177
- 1178
- 1179
- 1180
- 1181
- 1182
- 1183
- 1184
- 1185
- 1186
- 1187
- 1188
- 1189
- 1190
- 1191
- 1192
- 1193
- 1194
- 1195
- 1196
- 1197
- 1198
- 1199
- 1200
- 1201
- 1202
- 1203
- 1204
- 1205
- 1206
- 1207
- 1208
- 1209
- 1210
- 1211
- 1212
- 1213
- 1214
- 1215
- 1216
- 1217
- 1218
- 1219
- 1220
- 1221
- 1222
- 1223
- 1224
- 1225
- 1226
- 1227
- 1228
- 1229
- 1230
- 1231
- 1232
- 1233
- 1234
- 1235
- 1236
- 1237
- 1238
- 1239
- 1240
- 1241
- 1242
- 1243
- 1244
- 1245
- 1246
- 1247
- 1248
- 1249
- 1250
- 1251
- 1252
- 1253
- 1254
- 1255
- 1256
- 1257
- 1258
- 1259
- 1260
- 1261
- 1262
- 1263
- 1264
- 1265
- 1266
- 1267
- 1268
- 1269
- 1270
- 1271
- 1272
- 1273
- 1274
- 1275
- 1276
- 1277
- 1278
- 1279
- 1280
- 1281
- 1282
- 1283
- 1284
- 1285
- 1286
- 1287
- 1288
- 1289
- 1290
- 1291
- 1292
- 1293
- 1294
- 1295
- 1296
- 1297
- 1298
- 1299
- 1300
- 1301
- 1302
- 1303
- 1304
- 1305
- 1306
- 1307
- 1308
- 1309
- 1310
- 1311
- 1312
- 1313
- 1314
- 1315
- 1316
- 1317
- 1318
- 1319
- 1320
- 1321
- 1322
- 1323
- 1324
- 1325
- 1326
- 1327
- 1328
- 1329
- 1330
- 1331
- 1332
- 1333
- 1334
- 1335
- 1336
- 1337
- 1338
- 1339
- 1340
- 1341
- 1342
- 1343
- 1344
- 1345
- 1346
- 1347
- 1348
- 1349
- 1350
- 1351
- 1352
- 1353
- 1354
- 1355
- 1356
- 1357
- 1358
- 1359
- 1360
- 1361
- 1362
- 1363
- 1364
- 1365
- 1366
- 1367
- 1368
- 1369
- 1370
- 1371
- 1372
- 1373
- 1374
- 1375
- 1376
- 1377
- 1378
- 1379
- 1380
- 1381
- 1382
- 1383
- 1384
- 1385
- 1386
- 1387
- 1388
- 1389
- 1390
- 1391
- 1392
- 1393
- 1394
- 1395
- 1396
- 1397
- 1398
- 1399
- 1400
- 1401
- 1402
- 1403
- 1404
- 1405
- 1406
- 1407
- 1408
- 1409
- 1410
- 1411
- 1412
- 1413
- 1414
- 1415
- 1416
- 1417
- 1418
- 1419
- 1420
- 1421
- 1422
- 1423
- 1424
- 1425
- 1426
- 1427
- 1428
- 1429
- 1430
- 1431
- 1432
- 1433
- 1434
- 1435
- 1436
- 1437
- 1438
- 1439
- 1440
- 1441
- 1442
- 1443
- 1444
- 1445
- 1446
- 1447
- 1448
- 1449
- 1450
- 1451
- 1452
- 1453
- 1454
- 1455
- 1456
- 1457
- 1458
- 1459
- 1460
- 1461
- 1462
- 1463
- 1464
- 1465
- 1466
- 1467
- 1468
- 1469
- 1470
- 1471
- 1472
- 1473
- 1474
- 1475
- 1476
- 1477
- 1478
- 1479
- 1480
- 1481
- 1482
- 1483
- 1484
- 1485
- 1486
- 1487
- 1488
- 1489
- 1490
- 1491
- 1492
- 1493
- 1494
- 1495
- 1496
- 1497
- 1498
- 1499
- 1500
- 1501
- 1502
- 1503
- 1504
- 1505
- 1506
- 1507
- 1508
- 1509
- 1510
- 1511
- 1512
- 1513
- 1514
- 1515
- 1516
- 1517
- 1518
- 1519
- 1520
- 1521
- 1522
- 1523
- 1524
- 1525
- 1526
- 1527
- 1528
- 1529
- 1530
- 1531
- 1532
- 1533
- 1534
- 1535
- 1536
- 1537
- 1538
- 1539
- 1540
- 1541
- 1542
- 1543
- 1544
- 1545
- 1546
- 1547
- 1548
- 1549
- 1550
- 1551
- 1552
- 1553
- 1554
- 1555
- 1556
- 1557
- 1558
- 1559
- 1560
- 1561
- 1562
- 1563
- 1564
- 1565
- 1566
- 1567
- 1568
- 1569
- 1570
- 1571
- 1572
- 1573
- 1574
- 1575
- 1576
- 1577
- 1578
- 1579
- 1580
- 1581
- 1582
- 1583
- 1584
- 1585
- 1586
- 1587
- 1588
- 1589
- 1590
- 1591
- 1592
- 1593
- 1594
- 1595
- 1596
- 1597
- 1598
- 1599
- 1600
- 1601
- 1602
- 1603
- 1604
- 1605
- 1606
- 1607
- 1608
- 1609
- 1610
- 1611
- 1612
- 1613
- 1614
- 1615
- 1616
- 1617
- 1618
- 1619
- 1620
- 1621
- 1622
- 1623
- 1624
- 1625
- 1626
- 1627
- 1628
- 1629
- 1630
- 1631
- 1632
- 1633
- 1634
- 1635
- 1636
- 1637
- 1638
- 1639
- 1640
- 1641
- 1642
- 1643
- 1644
- 1645
- 1646
- 1647
- 1648
- 1649
- 1650
- 1651
- 1652
- 1653
- 1654
- 1655
- 1656
- 1657
- 1658
- 1659
- 1660
- 1661
- 1662
- 1663
- 1664
- 1665
- 1666
- 1667
- 1668
- 1669
- 1670
- 1671
- 1672
- 1673
- 1674
- 1675
- 1676
- 1677
- 1678
- 1679
- 1680
- 1681
- 1682
- 1683
- 1684
- 1685
- 1686
- 1687
- 1688
- 1689
- 1690
- 1691
- 1692
- 1693
- 1694
- 1695
- 1696
- 1697
- 1698
- 1699
- 1700
- 1701
- 1702
- 1703
- 1704
- 1705
- 1706
- 1707
- 1708
- 1709
- 1710
- 1711
- 1712
- 1713
- 1714
- 1715
- 1716
- 1717
- 1718
- 1719
- 1720
- 1721
- 1722
- 1723
- 1724
- 1725
- 1726
- 1727
- 1728
- 1729
- 1730
- 1731
- 1732
- 1733
- 1734
- 1735
- 1736
- 1737
- 1738
- 1739
- 1740
- 1741
- 1742
- 1743
- 1744
- 1745
- 1746
- 1747
- 1748
- 1749
- 1750
- 1751
- 1752
- 1753
- 1754
- 1755
- 1756
- 1757
- 1758
- 1759
- 1760
- 1761
- 1762
- 1763
- 1764
- 1765
- 1766
- 1767
- 1768
- 1769
- 1770
- 1771
- 1772
- 1773
- 1774
- 1775
- 1776
- 1777
- 1778
- 1779
- 1780
- 1781
- 1782
- 1783
- 1784
- 1785
- 1786
- 1787
- 1788
- 1789
- 1790
- 1791
- 1792
- 1793
- 1794
- 1795
- 1796
- 1797
- 1798
- 1799
- 1800
- 1801
- 1802
- 1803
- 1804
- 1805
- 1806
- 1807
- 1808
- 1809
- 1810
- 1811
- 1812
- 1813
- 1814
- 1815
- 1816
- 1817
- 1818
- 1819
- 1820
- 1821
- 1822
- 1823
- 1824
- 1825
- 1826
- 1827
- 1828
- 1829
- 1830
- 1831
- 1832
- 1833
- 1834
- 1835
- 1836
- 1837
- 1838
- 1839
- 1840
- 1841
- 1842
- 1843
- 1844
- 1845
- 1846
- 1847
- 1848
- 1849
- 1850
- 1851
- 1852
- 1853
- 1854
- 1855
- 1856
- 1857
- 1858
- 1859
- 1860
- 1861
- 1862
- 1863
- 1864
- 1865
- 1866
- 1867
- 1868
- 1869
- 1870
- 1871
- 1872
- 1873
- 1874
- 1875
- 1876
- 1877
- 1878
- 1879
- 1880
- 1881
- 1882
- 1883
- 1884
- 1885
- 1886
- 1887
- 1888
- 1889
- 1890
- 1891
- 1892
- 1893
- 1894
- 1895
- 1896
- 1897
- 1898
- 1899
- 1900
- 1901
- 1902
- 1903
- 1904
- 1905
- 1906
- 1907
- 1908
- 1909
- 1910
- 1911
- 1912
- 1913
- 1914
- 1915
- 1916
- 1917
- 1918
- 1919
- 1920
- 1921
- 1922
- 1923
- 1924
- 1925
- 1926
- 1927
- 1928
- 1929
- 1930
- 1931
- 1932
- 1933
- 1934
- 1935
- 1936
- 1937
- 1938
- 1939
- 1940
- 1941
- 1942
- 1943
- 1944
- 1945
- 1946
- 1947
- 1948
- 1949
- 1950
- 1951
- 1952
- 1953
- 1954
- 1955
- 1956
- 1957
- 1958
- 1959
- 1960
- 1961
- 1962
- 1963
- 1964
- 1965
- 1966
- 1967
- 1968
- 1969
- 1970
- 1971
- 1972
- 1973
- 1974
- 1975
- 1976
- 1977
- 1978
- 1979
- 1980
- 1981
- 1982
- 1983
- 1984
- 1985
- 1986
- 1987
- 1988
- 1989
- 1990
- 1991
- 1992
- 1993
- 1994
- 1995
- 1996
- 1997
- 1998
- 1999
- 2000
- 2001
- 2002
- 2003
- 2004
- 2005
- 2006
- 2007
- 2008
- 2009
- 2010
- 2011
- 2012
- 2013
- 2014
- 2015
- 2016
- 2017
- 2018
- 2019
- 2020
- 2021
- 2022
- 2023
- 2024
- 2025
- 2026
- 2027
- 2028
- 2029
- 2030
- 2031
- 2032
- 2033
- 2034
- 2035
- 2036
- 2037
- 2038
- 2039
- 2040
- 2041
- 2042
- 2043
- 2044
- 2045
- 2046
- 2047
- 2048
- 2049
- 2050
- 2051
- 2052
- 2053
- 2054
- 2055
- 2056
- 2057
- 2058
- 2059
- 2060
- 2061
- 2062
- 2063
- 2064
- 2065
- 2066
- 2067
- 2068
- 2069
- 2070
- 2071
- 2072
- 2073
- 2074
- 2075
- 2076
- 2077
- 2078
- 2079
- 2080
- 2081
- 2082
- 2083
- 2084
- 2085
- 2086
- 2087
- 2088
- 2089
- 2090
- 2091
- 2092
- 2093
- 2094
- 2095
- 2096
- 2097
- 2098
- 2099
- 2100
- 2101
- 2102
- 2103
- 2104
- ...
- 2105
- 2106
- 2107
- 2108
- 2109
- 2110
- 2111
- 2112
- 2113
- 2114
- 2115
- 2116
- 2117
- 2118
- 2119
- 2120
- 2121
- 2122
- 2123
- 2124
- 2125
- 2126
- 2127
- 2128
- 2129
- 2130
- 2131
- 2132
- 2133
- 2134
- 2135
- 2136
- 2137
- 2138
- 2139
- 2140
- 2141
- 2142
- 2143
- 2144
- 2145
- 2146
- 2147
- 2148
- 2149
- 2150
- 2151
- 2152
- 2153
- 2154
- 2155
- 2156
- 2157
- 2158
- 2159
- 2160
- 2161
- 2162
- 2163
- 2164
- 2165
- 2166
- 2167
- 2168
- 2169
- 2170
- 2171
- 2172
- 2173
- 2174
- 2175
- 2176
- 2177
- 2178
- 2179
- 2180
- 2181
- 2182
- 2183
- 2184
- 2185
- 2186
- 2187
- 2188
- 2189
- 2190
- 2191
- 2192
- 2193
- 2194
- 2195
- 2196
- 2197
- 2198
- 2199
- 2200
- 2201
- 2202
- 2203
- 2204
- 2205
- 2206
- 2207
- 2208
- 2209
- 2210
- 2211
- 2212
- 2213
- 2214
- 2215
- 2216
- 2217
- 2218
- 2219
- 2220
- 2221
- 2222
- 2223
- 2224
- 2225
- 2226
- 2227
- 2228
- 2229
- 2230
- 2231
- 2232
- 2233
- 2234
- 2235
- 2236
- 2237
- 2238
- 2239
- 2240
- 2241
- 2242
- 2243
- 2244
- 2245
- 2246
- 2247
- 2248
- 2249
- 2250
- 2251
- 2252
- 2253
- 2254
- 2255
- 2256
- 2257
- 2258
- 2259
- 2260
- 2261
- 2262
- 2263
- 2264
- 2265
- 2266
- 2267
- 2268
- 2269
- 2270
- 2271
- 2272
- 2273
- 2274
- 2275
- 2276
- 2277
- 2278
- 2279
- 2280
- 2281
- 2282
- 2283
- 2284
- 2285
- 2286
- 2287
- 2288
- 2289
- 2290
- 2291
- 2292
- 2293
- 2294
- 2295
- 2296
- 2297
- 2298
- 2299
- 2300
- 2301
- 2302
- 2303
- 2304
- 2305
- 2306
- 2307
- 2308
- 2309
- 2310
- 2311
- 2312
- 2313
- 2314
- 2315
- 2316
- 2317
- 2318
- 2319
- 2320
- 2321
- 2322
- 2323
- 2324
- 2325
- 2326
- 2327
- 2328
- 2329
- 2330
- 2331
- 2332
- 2333
- 2334
- 2335
- 2336
- 2337
- 2338
- 2339
- 2340
- 2341
- 2342
- 2343
- 2344
- 2345
- 2346
- 2347
- 2348
- 2349
- 2350
- 2351
- 2352
- 2353
- 2354
- 2355
- 2356
- 2357
- 2358
- 2359
- 2360
- 2361
- 2362
- 2363
- 2364
- 2365
- 2366
- 2367
- 2368
- 2369
- 2370
- 2371
- 2372
- 2373
- 2374
- 2375
- 2376
- 2377
- 2378
- 2379
- 2380
- 2381
- 2382
- 2383
- 2384
- 2385
- 2386
- 2387
- 2388
- 2389
- 2390
- 2391
- 2392
- 2393
- 2394
- 2395
- 2396
- 2397
- 2398
- 2399
- 2400
- 2401
- 2402
- 2403
- 2404
- 2405
- 2406
- 2407
- 2408
- 2409
- 2410
- 2411
- 2412
- 2413
- 2414
- 2415
- 2416
- 2417
- 2418
- 2419
- 2420
- 2421
- 2422
- 2423
- 2424
- 2425
- 2426
- 2427
- 2428
- 2429
- 2430
- 2431
- 2432
- 2433
- 2434
- 2435
- 2436
- 2437
- 2438
- 2439
- 2440
- 2441
- 2442
- 2443
- 2444
- 2445
- 2446
- 2447
- 2448
- 2449
- 2450
- 2451
- 2452
- 2453
- 2454
- 2455
- 2456
- 2457
- 2458
- 2459
- 2460
- 2461
- 2462
- 2463
- 2464
- 2465
- 2466
- 2467
- 2468
- 2469
- 2470
- 2471
- 2472
- 2473
- 2474
- 2475
- 2476
- 2477
- 2478
- 2479
- 2480
- 2481
- 2482
- 2483
- 2484
- 2485
- 2486
- 2487
- 2488
- 2489
- 2490
- 2491
- 2492
- 2493
- 2494
- 2495
- 2496
- 2497
- 2498
- 2499
- 2500
- 2501
- 2502
- 2503
- 2504
- 2505
- 2506
- 2507
- 2508
- 2509
- 2510
- 2511
- 2512
- 2513
- 2514
- 2515
- 2516
- 2517
- 2518
- 2519
- 2520
- 2521
- 2522
- 2523
- 2524
- 2525
- 2526
- 2527
- 2528
- 2529
- 2530
- 2531
- 2532
- 2533
- 2534
- 2535
- 2536
- 2537
- 2538
- 2539
- 2540
- 2541
- 2542
- 2543
- 2544
- 2545
- 2546
- 2547
- 2548
- 2549
- 2550
- 2551
- 2552
- 2553
- 2554
- 2555
- 2556
- 2557
- 2558
- 2559
- 2560
- 2561
- 2562
- 2563
- 2564
- 2565
- 2566
- 2567
- 2568
- 2569
- 2570
- 2571
- 2572
- 2573
- 2574
- 2575
- 2576
- 2577
- 2578
- 2579
- 2580
- 2581
- 2582
- 2583
- 2584
- 2585
- 2586
- 2587
- 2588
- 2589
- 2590
- 2591
- 2592
- 2593
- 2594
- 2595
- 2596
- 2597
- 2598
- 2599
- 2600
- 2601
- 2602
- 2603
- 2604
- 2605
- 2606
- 2607
- 2608
- 2609
- 2610
- 2611
- 2612
- 2613
- 2614
- 2615
- 2616
- 2617
- 2618
- 2619
- 2620
- 2621
- 2622
- 2623
- 2624
- 2625
- 2626
- 2627
- 2628
- 2629
- 2630
- 2631
- 2632
- 2633
- 2634
- 2635
- 2636
- 2637
- 2638
- 2639
- 2640
- 2641
- 2642
- 2643
- 2644
- 2645
- 2646
- 2647
- 2648
- 2649
- 2650
- 2651
- 2652
- 2653
- 2654
- 2655
- 2656
- 2657
- 2658
- 2659
- 2660
- 2661
- 2662
- 2663
- 2664
- 2665
- 2666
- 2667
- 2668
- 2669
- 2670
- 2671
- 2672
- 2673
- 2674
- 2675
- 2676
- 2677
- 2678
- 2679
- 2680
- 2681
- 2682
- 2683
- 2684
- 2685
- 2686
- 2687
- 2688
- 2689
- 2690
- 2691
- 2692
- 2693
- 2694
- 2695
- 2696
- 2697
- 2698
- 2699
- 2700
- 2701
- 2702
- 2703
- 2704
- 2705
- 2706
- 2707
- 2708
- 2709
- 2710
- 2711
- 2712
- 2713
- 2714
- 2715
- 2716
- 2717
- 2718
- 2719
- 2720
- 2721
- 2722
- 2723
- 2724
- 2725
- 2726
- 2727
- 2728
- 2729
- 2730
- 2731
- 2732
- 2733
- 2734
- 2735
- 2736
- 2737
- 2738
- 2739
- 2740
- 2741
- 2742
- 2743
- 2744
- 2745
- 2746
- 2747
- 2748
- 2749
- 2750
- 2751
- 2752
- 2753
- 2754
- 2755
- 2756
- 2757
- 2758
- 2759
- 2760
- 2761
- 2762
- 2763
- 2764
- 2765
- 2766
- 2767
- 2768
- 2769
- 2770
- 2771
- 2772
- 2773
- 2774
- 2775
- 2776
- 2777
- 2778
- 2779
- 2780
- 2781
- 2782
- 2783
- 2784
- 2785
- 2786
- 2787
- 2788
- 2789
- 2790
- 2791
- 2792
- 2793
- 2794
- 2795
- 2796
- 2797
- 2798
- 2799
- 2800
- 2801
- 2802
- 2803
- 2804
- 2805
- 2806
- 2807
- 2808
- 2809
- 2810
- 2811
- 2812
- 2813
- 2814
- 2815
- 2816
- 2817
- 2818
- 2819
- 2820
- 2821
- 2822
- 2823
- 2824
- 2825
- 2826
- 2827
- 2828
- 2829
- 2830
- 2831
- 2832
- 2833
- 2834
- 2835
- 2836
- 2837
- 2838
- 2839
- 2840
- 2841
- 2842
- 2843
- 2844
- 2845
- 2846
- 2847
- 2848
- 2849
- 2850
- 2851
- 2852
- 2853
- 2854
- 2855
- 2856
- 2857
- 2858
- 2859
- 2860
- 2861
- 2862
- 2863
- 2864
- 2865
- 2866
- 2867
- 2868
- 2869
- 2870
- 2871
- 2872
- 2873
- 2874
- 2875
- 2876
- 2877
- 2878
- 2879
- 2880
- 2881
- 2882
- 2883
- 2884
- 2885
- 2886
- 2887
- 2888
- 2889
- 2890
- 2891
- 2892
- 2893
- 2894
- 2895
- 2896
- 2897
- 2898
- 2899
- 2900
- 2901
- 2902
- 2903
- 2904
- 2905
- 2906
- 2907
- 2908
- 2909
- 2910
- 2911
- 2912
- 2913
- 2914
- 2915
- 2916
- 2917
- 2918
- 2919
- 2920
- 2921
- 2922
- 2923
- 2924
- 2925
- 2926
- 2927
- 2928
- 2929
- 2930
- 2931
- 2932
- 2933
- 2934
- 2935
- 2936
- 2937
- 2938
- 2939
- 2940
- 2941
- 2942
- 2943
- 2944
- 2945
- 2946
- 2947
- 2948
- 2949
- 2950
- 2951
- 2952
- 2953
- 2954
- 2955
- 2956
- 2957
- 2958
- 2959
- 2960
- 2961
- 2962
- 2963
- 2964
- 2965
- 2966
- 2967
- 2968
- 2969
- 2970
- 2971
- 2972
- 2973
- 2974
- 2975
- 2976
- 2977
- 2978
- 2979
- 2980
- 2981
- 2982
- 2983
- 2984
- 2985
- 2986
- 2987
- 2988
- 2989
- 2990
- 2991
- 2992
- 2993
- 2994
- 2995
- 2996
- 2997
- 2998
- 2999
- 3000
- 3001
- 3002
- 3003
- 3004
- 3005
- 3006
- 3007
- 3008
- 3009
- 3010
- 3011
- 3012
- 3013
- 3014
- 3015
- 3016
- 3017
- 3018
- 3019
- 3020
- 3021
- 3022
- 3023
- 3024
- 3025
- 3026
- 3027
- 3028
- 3029
- 3030
- 3031
- 3032
- 3033
- 3034
- 3035
- 3036
- 3037
- 3038
- 3039
- 3040
- 3041
- 3042
- 3043
- 3044
- 3045
- 3046
- 3047
- 3048
- 3049
- 3050
- 3051
- 3052
- 3053
- 3054
- 3055
- 3056
- 3057
- 3058
- 3059
- 3060
- 3061
- 3062
- 3063
- 3064
- 3065
- 3066
- 3067
- 3068
- 3069
- 3070
- 3071
- 3072
- 3073
- 3074
- 3075
- 3076
- 3077
- 3078
- 3079
- 3080
- 3081
- 3082
- 3083
- 3084
- 3085
- 3086
- 3087
- 3088
- 3089
- 3090
- 3091
- 3092
- 3093
- 3094
- 3095
- 3096
- 3097
- 3098
- 3099
- 3100
- 3101
- 3102
- 3103
- 3104
- 3105
- 3106
- 3107
- 3108
- 3109
- 3110
- 3111
- 3112
- 3113
- 3114
- 3115
- 3116
- 3117
- 3118
- 3119
- 3120
- 3121
- 3122
- 3123
- 3124
- 3125
- 3126
- 3127
- 3128
- 3129
- 3130
- 3131
- 3132
- 3133
- 3134
- 3135
- 3136
- 3137
- 3138
- 3139
- 3140
- 3141
- 3142
- 3143
- 3144
- 3145
- 3146
- 3147
- 3148
- 3149
- 3150
- 3151
- 3152
- 3153
- 3154
- 3155
- 3156
- 3157
- 3158
- 3159
- 3160
- 3161
- 3162
- 3163
- 3164
- 3165
- 3166
- 3167
- 3168
- 3169
- 3170
- 3171
- 3172
- 3173
- 3174
- 3175
- 3176
- 3177
- 3178
- 3179
- 3180
- 3181
- 3182
- 3183
- 3184
- 3185
- 3186
- 3187
- 3188
- 3189
- 3190
- 3191
- 3192
- 3193
- 3194
- 3195
- 3196
- 3197
- 3198
- 3199
- 3200
- 3201
- 3202
- 3203
- 3204
- 3205
- 3206
- 3207
- 3208
- 3209
- 3210
- 3211
- 3212
- 3213
- 3214
- 3215
- 3216
- 3217
- 3218
- 3219
- 3220
- 3221
- 3222
- 3223
- 3224
- 3225
- 3226
- 3227
- 3228
- 3229
- 3230
- 3231
- 3232
- 3233
- 3234
- 3235
- 3236
- 3237
- 3238
- 3239
- 3240
- 3241
- 3242
- 3243
- 3244
- 3245
- 3246
- 3247
- 3248
- 3249
- 3250
- 3251
- 3252
- 3253
- 3254
- 3255
- 3256
- 3257
- 3258
- 3259
- 3260
- 3261
- 3262
- 3263
- 3264
- 3265
- 3266
- 3267
- 3268
- 3269
- 3270
- 3271
- 3272
- 3273
- 3274
- 3275
- 3276
- 3277
- 3278
- 3279
- 3280
- 3281
- 3282
- 3283
- 3284
- 3285
- 3286
- 3287
- 3288
- 3289
- 3290
- 3291
- 3292
- 3293
- 3294
- 3295
- 3296
- 3297
- 3298
- 3299
- 3300
- 3301
- 3302
- 3303
- 3304
- 3305
- 3306
- 3307
- 3308
- 3309
- 3310
- 3311
- 3312
- 3313
- 3314
- 3315
- 3316
- 3317
- 3318
- 3319
- 3320
- 3321
- 3322
- 3323
- 3324
- 3325
- 3326
- 3327
- 3328
- 3329
- 3330
- 3331
- 3332
- 3333
- 3333
推荐文章