ElasticSearch的日志配置
ElasticSearch
默认情况下使用Log4j2来记录日志,日志配置文件的路径为$ES_HOME/config/log4j2.properties
,配置方法见Log4j2
的官方文档。
参考path-settings,通过指定path.logs
,可以指定日志文件的保存路径。
在日志配置文件$ES_HOME/config/log4j2.properties
中可以使用的变量,如下:
es.logs.base_path
,指的是日志文件的根路径。es.logs.cluster_name
,指的是集群的名称。es.logs.node_name
,指的是节点的名称。
按照log4j2的配置规范,上述变量在日志配置文件log4j2.properties
中引用时,使用方法如下:
${sys:es.logs.base_path}
${sys:es.logs.cluster_name}
${sys:es.logs.node_name}
配置日志级别的方法,分为:
- 运行期配置,修改后即时生效,不需要重启服务。
- 静态配置,修改后需要重启才能生效。
运行期配置
- 查看当前配置。
执行结果如下:curl -X GET "https://localhost:9200/_cluster/settings?pretty" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPH=QBE+s5=*lo7F9"
{ "persistent" : { }, "transient" : { } }
- 指定
logger.org.elasticsearch.discovery
的日志级别为DEBUG
。
执行输出如下:curl -X PUT "https://localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d' { "persistent": { "logger.org.elasticsearch.discovery": "DEBUG" } } ' --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPH=QBE+s5=*lo7F9"
{ "acknowledged" : true, "persistent" : { "logger" : { "org" : { "elasticsearch" : { "discovery" : "DEBUG" } } } }, "transient" : { } }
- 查看配置结果。
执行结果如下:curl -X GET "https://localhost:9200/_cluster/settings?pretty" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPH=QBE+s5=*lo7F9"
{ "persistent" : { "logger" : { "org" : { "elasticsearch" : { "discovery" : "DEBUG" } } } }, "transient" : { } }
- 恢复
logger.org.elasticsearch.discovery
的日志级别。
执行结果如下:curl -X PUT "https://localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d' { "persistent": { "logger.org.elasticsearch.discovery": null } } ' --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPH=QBE+s5=*lo7F9"
{ "acknowledged" : true, "persistent" : { }, "transient" : { } }
- 查看当前配置。
执行结果如下:curl -X GET "https://localhost:9200/_cluster/settings?pretty" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPH=QBE+s5=*lo7F9"
{ "persistent" : { }, "transient" : { } }
静态配置
修改配置文件elasticsearch.yml
,增加如下配置:
logger.org.elasticsearch.discovery: DEBUG
或者修改日志配置文件log4j2.properties
,增加如下配置:
logger.discovery.name = org.elasticsearch.discovery
logger.discovery.level = debug
相关资料
- ElasticSearch Logging
- ElasticSearch Important Settings
- Configuring Elasticsearch
- Cluster get settings API
- ElasticSearch cluster update settings API
- Log4j2
- Log4j2 Configuration