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