通过阿里云Elasticsearch的日志功能,您可以输入关键字和设置时间范围,锁定需要查询的日志内容,快速定位集群问题,辅助集群运维。本文为您介绍如何查询日志以及常见日志的使用说明。
使用限制
ES访问日志:仅6.7.0及7.10版本的实例支持在控制台查看ES访问日志。
审计日志:仅以下地域的7.x及以上版本实例支持在控制台查看审计日志。
国家或大区
地域
中国
华北2(北京)、华东1(杭州)、华东2(上海)、华北3(张家口)
亚太
新加坡、马来西亚(吉隆坡)、印度尼西亚(雅加达)、日本(东京)
欧洲与美洲
美国(弗吉尼亚)、美国(硅谷)、德国(法兰克福)、英国(伦敦)
操作步骤
- 登录阿里云Elasticsearch控制台。
- 在左侧导航栏,单击Elasticsearch实例。
- 进入目标实例。
- 在顶部菜单栏处,选择资源组和地域。
- 在Elasticsearch实例中单击目标实例ID。
在左侧导航栏,单击日志查询,查看集群的运行日志。
阿里云Elasticsearch主要支持的日志类型包括:主日志、Searching慢日志、Indexing慢日志、GC日志、ES访问日志和审计日志,各类日志的说明和使用场景如下,更多详细信息请参见日志说明。
日志类型
说明
使用场景
主日志
集群的健康运行状态及索引查询写入日志。例如,写入相关日志包含创建索引、更新索引mapping和写入队列打满等日志;查询相关日志包含查询队列和查询异常等日志。
当您需要查看集群中各节点的运行状况及查询写入情况,例如节点之间的连通性、Full GC情况、创建或删除索引情况、集群级别的查询报错等信息时,可查看主日志进行排查。
重要如果您的业务侧出现问题,建议优先查看主日志和集群监控,排除集群自身的性能瓶颈或配置问题。
Searching慢日志
慢查询日志。当查询耗时超过指定阈值时,将在慢查询日志中打印相关信息。慢查询阈值已在场景化模板的索引模板中配置,默认情况下已是最优,只需一键应用即可,详细信息请参见索引模板配置。
当您的业务出现查询耗时久的情况时,可查看Searching慢日志进行排查。
查询耗时越久,集群资源消耗越大。当日志存在大量的慢日志,请排查集群资源及负载情况,获取瓶颈项,根据瓶颈项及时扩充对应资源或使用集群限流插件(aliyun-qos)进行限流,以保证集群的稳定性。
Indexing慢日志
慢写入日志。当写入耗时超过指定阈值时,将在慢写入日志中打印相关信息。慢写入阈值已在场景化模板的索引模板中配置,默认情况下已是最优,只需一键应用即可,详细信息请参见索引模板配置。
当您的业务出现写入耗时久的情况时,可查看Indexing慢日志进行排查。
写入耗时越久,对集群的资源消耗越大。当日志存在大量的慢日志,请排查集群资源及负载情况,获取瓶颈项,根据瓶颈项及时扩充对应资源或使用集群限流插件(aliyun-qos)进行限流,以保证集群的稳定性。
GC日志
垃圾回收器日志。显示所有JVM堆内存占用触发的垃圾回收情况,通过GC日志可获取详细的垃圾回收信息,包括Old GC、CMS GC、Full GC以及Minor GC等回收机制。
当集群出现性能瓶颈时,可通过GC日志获取详细的GC回收信息,查看是否存在耗时长或操作频繁的GC。如果存在,需要及时扩充集群资源或使用集群限流插件(aliyun-qos)进行限流,以保证集群的稳定性。
重要默认情况下,阿里云Elasticsearch集群使用CMS回收器,而当数据节点内存大于等于32 GB时,建议使用G1回收器,以提高GC回收效率。详细信息请参见配置垃圾回收器。
ES访问日志
集群的访问日志。显示Elasticsearch集群接收到restSearchAction相关请求的详细信息,包括uri、bodySize、请求时间等。
重要仅6.7.0及7.10版本的实例支持在控制台查看ES访问日志。
ES访问日志不支持以下查询场景日志:SQL查询、multi查询、 scroll查询、Kibana部分可视化工具触发的查询。
如果您想获取更完善的查询写入请求信息,建议开启审计日志,详情请参见配置Auditlog(审计日志)。
当您需要排查哪些客户端在向Elasticsearch集群发送查询请求时,可通过ES访问日志获取。
审计日志
Elasticsearch实例对应的增、删、改、查等操作产生的审计日志。
重要仅使用限制中所列地域的7.x及以上版本实例支持在控制台查看审计日志。其他实例需要在YML配置中开启审计日志,开启后审计日志会以索引形式写入当前的Elasticsearch集群中,您可以在Kibana控制台上查看.security_audit_log-*开头的索引来查看审计日志。详细信息请参见配置YML参数。
在控制台上查看审计日志前,需要先单击日志设置开启审计日志采集。
审计日志默认采集的事件类型为access_denied, anonymous_access_denied, authentication_failed, connection_denied, tampered_request, run_as_denied, run_as_granted,如果您需要修改采集的审计事件类型,需要修改集群的YML文件中的xpack.security.audit.logfile.events.include参数,详细信息请参见配置Auditlog(审计日志)。
当您出现身份验证失败、拒绝连接、需要查看数据访问事件以及发现集群存在可疑活动(例如数据访问授权和用户安全配置更改)的情况时,可通过查看审计日志进行排查分析。
在日志页面的搜索框中,输入查询条件,选择开始时间和结束时间,单击搜索。
搜索成功后,阿里云Elasticsearch会根据您的查询条件返回日志查询结果,并展示在日志查询页面。
阿里云Elasticsearch最多支持查询连续7天内的日志,日志默认按时间倒序展示。
支持基于Lucene的日志查询语法,详情请参见Query string syntax。
查询条件中的
AND
必须为大写。如果结束时间为空,那么结束时间默认为当前时间。如果开始时间为空,那么开始时间默认为结束时间减去1小时。
以查询content包含关键字health,level为info,host为172.16.xx.xx的主日志为例,示例查询条件为:
host:172.16.xx.xx AND content:health AND level:info
。重要阿里云Elasticsearch最多支持返回10000条日志。
如果在返回的10000条日志中,未覆盖到您所需要的日志内容,可以通过缩短查询时间范围来获取需要的日志。
阿里云Elasticsearch单条日志最多展示10000个字符。
日志说明
主日志
主日志主要展示集群的运行日志,包括日志产生的时间、日志所在的节点IP和日志内容。
参数 | 说明 |
时间 | 日志产生时间。 |
节点IP | 生成日志的节点的IP地址。 |
内容 | 日志的详细信息,主要由level、host、time和content组成:
|
慢日志
慢日志默认开启,主要展示超过指定时间阈值的索引(Indexing慢日志)和查询(Searching慢日志)日志。在集群负载不均、读写异常、处理数据很慢等情况下,您可以通过查询慢日志来分析具体原因。
默认情况下,阿里云Elasticsearch的慢日志会记录5~10秒的读写操作,这样不利于排查问题。因此在实例创建完成后,您可以选择以下任意一种方式,降低日志记录的时间间隔,以抓取更多的日志:
集群创建成功后,场景化配置模板默认已开启,且会自动应用到集群中。其中索引模板配置中定义了慢日志配置,您无需修改保持默认即可。其中通用场景默认的慢日志配置如下:
"settings": { "index": { "search": { "slowlog": { "level": "info", "threshold": { "fetch": { "warn": "200ms", "trace": "50ms", "debug": "80ms", "info": "100ms" }, "query": { "warn": "500ms", "trace": "50ms", "debug": "100ms", "info": "200ms" } } } }, "refresh_interval": "10s", "unassigned": { "node_left": { "delayed_timeout": "5m" } }, "indexing": { "slowlog": { "level": "info", "threshold": { "index": { "warn": "200ms", "trace": "20ms", "debug": "50ms", "info": "100ms" } }, "source": "1000" } } } }
说明如果场景化配置模板为不启用状态,您需要参见修改场景化配置模板,启用并提交模板配置,才可以将默认的慢日志配置应用到集群。
参见登录Kibana控制台,登录该实例的Kibana控制台,执行以下命令,修改慢日志配置。
PUT _settings{ "index.indexing.slowlog.threshold.index.warn" : "200ms", "index.indexing.slowlog.threshold.index.trace" : "20ms", "index.indexing.slowlog.threshold.index.debug" : "50ms", "index.indexing.slowlog.threshold.index.info" : "100ms", "index.search.slowlog.threshold.fetch.warn" : "200ms", "index.search.slowlog.threshold.fetch.trace" : "50ms", "index.search.slowlog.threshold.fetch.debug" : "80ms", "index.search.slowlog.threshold.fetch.info" : "100ms", "index.search.slowlog.threshold.query.warn" : "500ms", "index.search.slowlog.threshold.query.trace" : "50ms", "index.search.slowlog.threshold.query.debug" : "100ms", "index.search.slowlog.threshold.query.info" : "200ms"}
修改完成后,在执行读写任务时,如果执行时间超过了以上配置的时间,您就可以在慢日志页签中查询到对应的日志。
GC日志
GC日志默认开启,包含日志产生的时间、所在节点的IP地址和日志内容。详细信息,请参见主日志。
ES访问日志
访问日志展示了Elasticsearch集群接收到restSearchAction相关请求的详细信息,包括集群node和IP地址、bodySize、请求内容、请求时间、发起请求的客户端IP地址、uri等信息。
仅6.7.0和7.10版本的实例支持在控制台查看ES访问日志。
如果您想获取更完善的查询写入请求信息,建议开启审计日志,详情请参见配置Auditlog(审计日志)。
审计日志
仅使用限制中所列地域的7.x及以上版本实例支持在控制台查看审计日志。
审计日志主要展示Elasticsearch实例对应的增、删、改、查等操作产生的日志。默认关闭,您可以通过以下步骤开启并查看审计日志:
在日志查询页面,单击右侧的日志设置。
在日志设置对话框中,打开审计日志采集开关。
重要开启审计日志采集后,您可以在当前页面查询到该集群的审计日志。如果您需要修改采集的审计事件类型,请前往集群配置修改xpack.security.audit.logfile.events.include参数配置,详细信息请参见配置Auditlog(审计日志)。
开启或关闭审计日志采集会触发集群重启。目前阿里云Elasticsearch集群重启是采用滚动重启的方式。在集群状态正常(绿色)、索引至少包含1个副本的情况下,如果资源使用率也不是特别高,那么集群在重启期间能够持续提供服务。但建议在业务低峰期操作。
选中操作提示,单击确认。
确认后,集群会进行重启。重启过程中,可在任务列表查看进度。重启成功后,即可开启审计日志采集。
重要审计日志信息会占用您的磁盘空间,同时也会影响性能。如果您不需要查看审计日志,可使用同样的方式关闭审计日志采集功能。
在日志查询页面,单击审计日志页签,查看审计日志。