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