Kibana 中的索引管理

编辑

Kibana 的 索引管理 功能提供了一种简单便捷的方式来管理您的集群索引、数据流索引模板丰富策略。实践良好的索引管理可确保您的数据以正确且最具成本效益的方式存储。

要使用这些功能,请转到 堆栈管理 > 索引管理

所需的权限

编辑

如果您使用 Elasticsearch 安全功能,则需要以下 安全权限

  • 使用 monitor 集群权限访问 Kibana 的 索引管理 功能。
  • 使用 view_index_metadatamanage 索引权限查看数据流或索引的数据。
  • 使用 manage_index_templates 集群权限管理索引模板。

要添加这些权限,请转到 堆栈管理 > 安全 > 角色 或使用 创建或更新角色 API

管理索引

编辑

索引 视图中调查您的索引并执行操作。

Index Management UI
  • 要显示详细信息并执行关闭、强制合并和刷新等操作,请单击索引名称。要对多个索引执行操作,请选中它们的复选框,然后打开 管理 菜单。有关管理索引的更多信息,请参阅 索引 API
  • 要过滤索引列表,请使用搜索栏或单击徽章。徽章指示索引是否为 追随者索引汇总索引已冻结
  • 要深入了解索引 映射设置 和统计信息,请单击索引名称。在此视图中,您可以导航到 Discover 以进一步浏览索引中的文档。

    Index Management UI

管理数据流

编辑

数据流 视图中调查您的数据流并满足生命周期管理需求。

索引 列中的值表示支持索引的数量。单击此数字以深入了解详细信息。

数据保留列中的值表示数据流由 数据流生命周期策略 管理。此值是保证存储数据的时间段。超过此时间段的数据可能会在稍后由 Elasticsearch 删除。

Data stream details
  • 要查看有关数据流的更多信息,例如其生成或其当前的索引生命周期策略,请单击流的名称。在此视图中,您可以导航到 Discover 以进一步浏览数据流中的数据。
  • [预览] 此功能为技术预览版,可能会在未来版本中更改或删除。Elastic 将努力修复任何问题,但技术预览版的功能不受官方 GA 功能的支持 SLA 约束。 要编辑数据保留值,请打开 管理 菜单,然后单击 编辑数据保留。仅当您的数据流不受 ILM 策略管理时,此操作才可用。

管理索引模板

编辑

索引模板 视图中创建、编辑、克隆和删除您的索引模板。对索引模板所做的更改不会影响现有索引。

Index templates

试用:创建索引模板

编辑

在本教程中,您将创建一个索引模板并使用它来配置两个新索引。

步骤 1. 添加名称和索引模式

  1. 索引模板 视图中,打开 创建模板 向导。

    Create wizard
  2. 名称 字段中,输入 my-index-template
  3. 索引模式 设置为 my-index-*,以便模板匹配具有该索引模式的任何索引。
  4. 数据流优先级版本_meta 字段 保留为空或原样。

步骤 2. 添加设置、映射和别名

  1. 组件模板 添加到您的索引模板。

    组件模板是预配置的映射、索引设置和别名集合,您可以在多个索引模板中重复使用。徽章指示组件模板是否包含映射(M)、索引设置(S)、别名(A)或三者的组合。

    组件模板是可选的。对于本教程,请勿添加任何组件模板。

    Component templates page
  2. 定义索引设置。这些是可选的。对于本教程,请将此部分留空。
  3. 定义一个包含名为 geo对象 字段和名为 coordinates 的子 geo_point 字段的映射

    Mapped fields page

    或者,您可以单击 加载 JSON 链接并以 JSON 格式定义映射

    {
      "properties": {
        "geo": {
          "properties": {
            "coordinates": {
              "type": "geo_point"
            }
          }
        }
      }
    }

    您可以在 动态模板高级选项 选项卡中创建其他映射配置。对于本教程,请勿创建任何其他映射。

  4. 定义一个名为 my-index 的别名

    {
      "my-index": {}
    }
  5. 在审查页面上,检查摘要。如果一切正常,请单击 创建模板

步骤 3. 创建新索引

现在,您可以使用索引模板创建新索引了。

  1. 索引以下文档以创建两个索引:my-index-000001my-index-000002

    resp = client.index(
        index="my-index-000001",
        document={
            "@timestamp": "2019-05-18T15:57:27.541Z",
            "ip": "225.44.217.191",
            "extension": "jpg",
            "response": "200",
            "geo": {
                "coordinates": {
                    "lat": 38.53146222,
                    "lon": -121.7864906
                }
            },
            "url": "https://media-for-the-masses.theacademyofperformingartsandscience.org/uploads/charles-fullerton.jpg"
        },
    )
    print(resp)
    
    resp1 = client.index(
        index="my-index-000002",
        document={
            "@timestamp": "2019-05-20T03:44:20.844Z",
            "ip": "198.247.165.49",
            "extension": "php",
            "response": "200",
            "geo": {
                "coordinates": {
                    "lat": 37.13189556,
                    "lon": -76.4929875
                }
            },
            "memory": 241720,
            "url": "https://theacademyofperformingartsandscience.org/people/type:astronauts/name:laurel-b-clark/profile"
        },
    )
    print(resp1)
    response = client.index(
      index: 'my-index-000001',
      body: {
        "@timestamp": '2019-05-18T15:57:27.541Z',
        ip: '225.44.217.191',
        extension: 'jpg',
        response: '200',
        geo: {
          coordinates: {
            lat: 38.53146222,
            lon: -121.7864906
          }
        },
        url: 'https://media-for-the-masses.theacademyofperformingartsandscience.org/uploads/charles-fullerton.jpg'
      }
    )
    puts response
    
    response = client.index(
      index: 'my-index-000002',
      body: {
        "@timestamp": '2019-05-20T03:44:20.844Z',
        ip: '198.247.165.49',
        extension: 'php',
        response: '200',
        geo: {
          coordinates: {
            lat: 37.13189556,
            lon: -76.4929875
          }
        },
        memory: 241_720,
        url: 'https://theacademyofperformingartsandscience.org/people/type:astronauts/name:laurel-b-clark/profile'
      }
    )
    puts response
    const response = await client.index({
      index: "my-index-000001",
      document: {
        "@timestamp": "2019-05-18T15:57:27.541Z",
        ip: "225.44.217.191",
        extension: "jpg",
        response: "200",
        geo: {
          coordinates: {
            lat: 38.53146222,
            lon: -121.7864906,
          },
        },
        url: "https://media-for-the-masses.theacademyofperformingartsandscience.org/uploads/charles-fullerton.jpg",
      },
    });
    console.log(response);
    
    const response1 = await client.index({
      index: "my-index-000002",
      document: {
        "@timestamp": "2019-05-20T03:44:20.844Z",
        ip: "198.247.165.49",
        extension: "php",
        response: "200",
        geo: {
          coordinates: {
            lat: 37.13189556,
            lon: -76.4929875,
          },
        },
        memory: 241720,
        url: "https://theacademyofperformingartsandscience.org/people/type:astronauts/name:laurel-b-clark/profile",
      },
    });
    console.log(response1);
    POST /my-index-000001/_doc
    {
      "@timestamp": "2019-05-18T15:57:27.541Z",
      "ip": "225.44.217.191",
      "extension": "jpg",
      "response": "200",
      "geo": {
        "coordinates": {
          "lat": 38.53146222,
          "lon": -121.7864906
        }
      },
      "url": "https://media-for-the-masses.theacademyofperformingartsandscience.org/uploads/charles-fullerton.jpg"
    }
    
    POST /my-index-000002/_doc
    {
      "@timestamp": "2019-05-20T03:44:20.844Z",
      "ip": "198.247.165.49",
      "extension": "php",
      "response": "200",
      "geo": {
        "coordinates": {
          "lat": 37.13189556,
          "lon": -76.4929875
        }
      },
      "memory": 241720,
      "url": "https://theacademyofperformingartsandscience.org/people/type:astronauts/name:laurel-b-clark/profile"
    }
  2. 使用 获取索引 API 查看新索引的配置。这些索引是使用您之前创建的索引模板配置的。

    resp = client.indices.get(
        index="my-index-000001,my-index-000002",
    )
    print(resp)
    response = client.indices.get(
      index: 'my-index-000001,my-index-000002'
    )
    puts response
    const response = await client.indices.get({
      index: "my-index-000001,my-index-000002",
    });
    console.log(response);
    GET /my-index-000001,my-index-000002

管理丰富策略

编辑

使用 丰富策略 视图在提取期间将现有索引中的数据添加到传入文档中。丰富策略包含

  • 策略类型,该类型确定策略如何将丰富数据与传入文档进行匹配
  • 将丰富数据存储为文档的源索引
  • 用于匹配传入文档的源索引中的字段
  • 包含要添加到传入文档的源索引中的丰富数据的丰富字段
  • 可选的 查询
Enrich policies

创建丰富策略时,UI 会引导您完成配置设置和选择字段。在使用丰富处理器或 ES|QL 查询使用策略之前,您必须执行该策略。

执行后,丰富策略会使用策略源索引中的丰富数据来创建名为丰富索引的精简系统索引。策略使用此索引来匹配和丰富传入文档。

查看以下示例