更新时间:2024-07-31 GMT+08:00
分享

中间件-ElasticSearch日志

ElasticSearch是一个开源的分布式搜索和分析引擎,被广泛用于构建实时的、可扩展的搜索和分析应用程序。它的主要作用是存储、搜索和分析大量的数据。ElasticSearch的日志是记录其运行过程中各种信息的重要工具,主要有以下两种类型:

  1. 主要日志(cluster-name.log,以集群名称命名:记录了ElasticSearch运行时所发生一切的综合信息,如某个查询失败、一个新的节点加入集群等。这是了解ElasticSearch集群整体运行状况的重要日志。
  2. 慢搜索日志(cluster-name_index_search_slowlog.log,以集群名称命名):当某个查询运行得很慢时,ElasticSearch会在这里进行记录。默认情况下,如果一个查询花费的时间多于半秒,将在这里写入一条记录。这对于分析和优化查询性能非常有用。

除了上述两种主要的日志类型外,ElasticSearch还提供了其他类型的日志,如弃用日志(用于记录已弃用的功能或配置)、访问日志(记录所有查询请求的详细信息)等。

自建中间件功能在邀测中,支持华北-北京四局点,仅针对用户内测使用,后续将全网开放,敬请期待!

采集方法

使用ICAgent采集日志,接入前请参考安装ICAgent(区域内主机)完成ICAgent安装。然后再通过采集ECS-文本日志方式将日志上报至LTS服务,详细操作请参考云主机ECS文本日志接入LTS

Elasticsearch日志示例以及字段含义

  • 主要日志
    {  
      "log.level": "INFO",  
      "@timestamp": "2023-10-23T15:46:30.123Z",  
      "log.origin.file.name": "Elasticsearch.java",  
      "log.origin.file.line": 123,  
      "message": "version[7.17.2], pid[12345], build[default/tar/1234567/2023-10-01T12:00:00.000Z], OS[Linux/5.10.0-10-amd64/amd64], JVM[Eclipse Adoptium/OpenJDK 64-Bit Server VM/11.0.14.1/11.0.14.1+1-LTS]",  
      "type": "server",  
      "cluster.name": "my-cluster",  
      "node.name": "node-1",  
      "node.id": "abcdefg123",  
      "ecs.version": "1.8.0"  
    }  
    {  
      "log.level": "WARN",  
      "@timestamp": "2023-10-23T15:47:00.456Z",  
      "log.origin.file.name": "SlowLog.java",  
      "log.origin.file.line": 456,  
      "message": "[index][search_slowlog][index_name] took[5.6s], took_millis[5600], total_hits[1000], types[], stats[], search_type[QUERY_THEN_FETCH], source[...]",  
      "type": "slowlog",  
      "cluster.name": "my-cluster",  
      "node.name": "node-1",  
      "index.name": "index_name"  
    }
    表1 主要日志字段说明

    字段

    说明

    示例

    log.level

    日志级别,可以是INFO、WARN、ERROR等。

    INFO

    @timestamp

    日志记录的时间戳。

    2023-10-23T15:46:30.123Z

    log.origin.file.name

    生成日志条目的源文件名。

    Elasticsearch.java

    log.origin.file.line

    生成日志条目的源文件行号。

    123

    message

    实际的日志消息内容。

    version[7.17.2], pid[12345], build[default/tar/1234567/2023-10-01T12:00:00.000Z], OS[Linux/5.10.0-10-amd64/amd64], JVM[Eclipse Adoptium/OpenJDK 64-Bit Server VM/11.0.14.1/11.0.14.1+1-LTS]

    type

    日志条目的类型(如 server、slowlog、transport 等)。

    server

    cluster.name

    Elasticsearch集群的名称。

    my-cluster

    node.name

    产生日志的Elasticsearch节点的名称。

    node-1

    node.id

    产生日志的Elasticsearch节点的ID。

    abcdefg123

    index.name

    (在某些日志条目中):与日志条目相关的索引名称。

    index_name

    ecs.version

    Elastic Common Schema (ECS) 的版本,ECS是一个用于标准化Elasticsearch日志字段的规范。

    1.8.0

  • 慢搜索日志
    {  
      "type": "slowlog",  
      "timestamp": "2023-10-23T16:15:30,234Z",  
      "level": "WARN",  
      "component": "o.e.i.s.q",  
      "cluster.name": "my-cluster",  
      "node.name": "node-1",  
      "node.id": "abcdefg123",  
      "took": "10.5s",  
      "took_millis": 10500,  
      "source": "{\"query\":{\"match_all\":{}}}\n",  
      "shards": [  
        {  
          "index": "my_index",  
          "shard": "0",  
          "search_type": "QUERY_THEN_FETCH",  
          "total_hits": 12345,  
          "status": 200,  
          "forced_refresh": false,  
          "request_cache": true,  
          "scroll_size": 0  
        }  
      ]  
    }
    表2 慢搜索日志字段说明

    字段

    说明

    示例

    type

    日志类型。

    "slowlog",表示这是一个慢查询日志条目。

    timestamp

    日志条目的时间戳。

    2023-10-23T16:15:30,234Z

    level

    日志级别。

    "WARN",表示这是一个警告级别的日志条目。

    component

    产生日志的组件。

    "o.e.i.s.q",代表Elasticsearch内部的一个特定组件或模块。

    cluster.name

    Elasticsearch 集群的名称。

    my-cluster

    node.name

    产生日志的节点的名称。

    node-1

    node.id

    产生日志的节点的ID。

    abcdefg123

    took

    查询执行的总时间,以人类可读的格式(如 "10.5s")表示。

    10.5s

    took_millis

    查询执行的总时间,以毫秒为单位。

    10500

    source

    触发慢查询的原始查询语句(JSON格式)。

    {"query":{"match_all":{}}}\n

    shards

    慢查询涉及的分片信息数组。

    -

    index

    分片所在的索引名称。

    my_index

    shard

    分片的ID。

    0

    search_type

    查询类型。

    QUERY_THEN_FETCH

    total_hits

    查询返回的总命中数。

    12345

    status

    查询的HTTP状态码。

    200

    forced_refresh

    是否强制刷新分片。

    false

    request_cache

    是否使用请求缓存。

    true

    scroll_size

    滚动查询的大小(如果不适用则为 0)。

    0

相关文档