如何在Elasticsearch中设置日志级别?

6
你能告诉我如何在 Elasticsearch 中以 INFO 级别明确设置日志记录级别吗?我想在文件中进行配置:elasticsearch.yaml
3个回答

6

有三种方法可以实现:

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

1
那么它应该是这样的:'logger.org.elasticsearch: info',对吗? - newuser123123
是的,你懂了。 - Val

1

有几种方法,全部在这里描述。

因为你正在寻求基于elasticsearch.yml的配置,所以只需根据此处的源包选择相应的记录器,并为传输层添加以下内容:

logger.org.elasticsearch.transport: INFO

添加多行代码将允许您为不同的函数定义不同的日志级别:

logger.org.elasticsearch.transport: INFO
logger.org.elasticsearch.http: DEBUG

0

来自文档这里: 为了获得更多或更少冗长的日志,使用集群更新设置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": {}
}

通常情况下,在所有ELK堆栈配置文件中,Elasticsearch应该位于localhost:9200,用于系统托管的ELK,除非您有不同的位置。 此外,您可以使用elasticsearch.yml和kibana.yml文件来增加详细程度:
---
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"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接