你能告诉我如何在 Elasticsearch 中以 INFO 级别明确设置日志记录级别吗?我想在文件中进行配置:
elasticsearch.yaml
。elasticsearch.yaml
。有三种方法可以实现:
A. 通过动态更新集群设置(不需要任何重启):
PUT /_cluster/settings
{
"transient": {
"logger.org.elasticsearch.transport": "TRACE"
}
}
B. 通过直接在 elasticsearch.yml
文件中设置日志级别(需要重新启动):
logger.org.elasticsearch.transport: TRACE
C. 通过直接在log4j2.properties
文件中设置日志级别(需要重新启动):
logger.transport.level = trace
来自文档这里: 为了获得更多或更少冗长的日志,使用集群更新设置API更改相关记录器的日志级别。每个记录器都接受Log4j 2的内置日志级别,从最不冗长到最冗长:OFF、FATAL、ERROR、WARN、INFO、DEBUG和TRACE。默认日志级别为INFO。在更高冗长级别(DEBUG和TRACE)记录的消息仅供专家使用。 如果您正在pod中运行elasticsearch,那么您需要进入要更改日志级别的es pod并运行以下命令:
curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'
{
"persistent": {
"logger.org.elasticsearch.discovery": "DEBUG"
}
}'
您可以通过Postman实现这一点。只需在以下URL上进行PUT请求:http://localhost:9200/_cluster/settings,并传递参数。
{
"persistent": {
"logger.org.elasticsearch.discovery": "DEBUG"
}
}
在 raw 选项下的 JSON 中,您会看到类似以下的响应:
{
"acknowledged": true,
"persistent": {
"logger": {
"org": {
"elasticsearch": {
"discovery": "DEBUG"
}
}
}
},
"transient": {}
}
---
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
name: hulk
spec:
version: 7.8.0
nodeSets:
- name: default
count: 3
config:
logger.org.elasticsearch: warn
---
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
name: hulk
spec:
version: 7.8.0
count: 1
elasticsearchRef:
name: hulk
config:
logging.quiet: true
---
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
name: hulk
spec:
version: 7.8.0
nodeSets:
- name: default
count: 3
podTemplate:
spec:
containers:
- name: elasticsearch
env:
- name: logger.org.elasticsearch
value: warn
---
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
name: hulk
spec:
version: 7.8.0
count: 1
elasticsearchRef:
name: hulk
podTemplate:
spec:
containers:
- name: kibana
env:
- name: LOGGING_QUIET
value: "true"