英文版地址: https://www.elastic.co/guide/en/elasticsearch/guide/current/logging.html
本书基于 Elasticsearch 2.x 版本,有些内容可能已经过时。
日志记录edit
Elasticsearch 会输出很多日志,都放在ES_HOME/logs
目录下。
默认的日志记录等级是INFO
。
它提供了适度的信息,但又设计得比较轻量,不至于让你的日志太过庞大。
当调试问题的时候,特别是节点发现相关的问题(因为这通常取决于复杂的网络配置),提高日志记录等级到 DEBUG
是很有帮助的。
你可以修改 logging.yml
文件然后重启节点 —— 但是这样做即繁琐还会导致不必要的宕机时间。
相反,你可以用前面刚刚学过的cluster-settings
API 更新日志记录等级。
要实现这个更新,选择你感兴趣的日志记录器,然后在前面补上 logger.
。对根日志记录器你可以用logger._root
来表示。
让我们调高发现(discovery)
模块的日志记录等级:
PUT /_cluster/settings { "transient" : { "logger.discovery" : "DEBUG" } }
设置生效,Elasticsearch 将开始为discovery
模块输出DEBUG
级别的日志。
避免使用 TRACE
。这个级别非常的详细,详细到日志反而不再有用了。
慢日志 (slowlog)edit
还有一个日志叫 慢日志(slowlog) 。 这个日志的目的是捕获那些超过指定时间阈值的查询和索引请求。 这个日志对于追踪由用户产生的特别慢的查询很有用。
默认情况,慢日志是不开启的。
要开启它,需要定义具体动作(query,fetch 还是 index)、期望的事件记录等级( WARN
、 DEBUG
等)、时间阈值。
这是一个索引级别(index-level)的设置,也就是说可以独立应用到单个索引:
PUT /my_index/_settings { "index.search.slowlog.threshold.query.warn" : "10s", "index.search.slowlog.threshold.fetch.debug": "500ms", "index.indexing.slowlog.threshold.index.info": "5s" }
查询(query)时间超过 10 秒, 输出 |
|
获取(fetch)时间超过 500 毫秒,输出 |
|
索引写入(indexing)时间超过 5 秒,输出 |
你也可以在elasticsearch.yml
文件里定义这些阈值。
没有阈值设置的索引会自动继承在静态配置文件里配置的参数。
一旦阈值设置好了,你可以和其他日志记录器器一样切换日志记录等级: