Kibana 中的索引管理

编辑

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

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

所需的权限

编辑

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

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

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

管理索引

编辑

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

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

    Index Management UI

管理数据流

编辑

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

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

数据保留列中的值表示数据流由 数据流生命周期策略 管理。此值是保证存储数据的期间。Elasticsearch 以后可以删除此期间之前的旧数据。

Data stream details
  • 要查看有关数据流的更多信息,例如其生成或其当前索引生命周期策略,请单击数据流的名称。在此视图中,您可以导航到 发现 以进一步探索数据流中的数据。
  • [预览] 此功能处于技术预览阶段,可能会在将来的版本中更改或删除。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 查询一起使用之前,必须执行该策略。

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

查看这些示例