加载 Elasticsearch 索引模板

编辑

加载 Elasticsearch 索引模板编辑

Elasticsearch 使用 索引模板 来定义

  • 控制数据流和备份索引行为的设置。设置包括用于管理备份索引随着增长和老化而使用的生命周期策略。
  • 确定如何分析字段的映射。每个映射都设置了 Elasticsearch 数据类型 以用于特定数据字段。

Packetbeat 的推荐索引模板文件由 Packetbeat 包安装。如果您接受 packetbeat.yml 配置文件中的默认配置,Packetbeat 会在成功连接到 Elasticsearch 后自动加载模板。如果模板已存在,除非您配置 Packetbeat 来执行此操作,否则不会被覆盖。

加载索引模板需要连接到 Elasticsearch。如果输出不是 Elasticsearch(或 Elasticsearch Service),则必须 手动加载模板.

此页面显示如何更改默认模板加载行为以

有关模板设置选项的完整列表,请参阅 Elasticsearch 索引模板.

加载您自己的索引模板编辑

要加载您自己的索引模板,请设置以下选项

setup.template.name: "your_template_name"
setup.template.fields: "path/to/fields.yml"

如果模板已存在,除非您配置 Packetbeat 来执行此操作,否则不会被覆盖。

您可以为数据流和索引加载模板。

覆盖现有索引模板编辑

不要为多个 Packetbeat 实例启用此选项。如果您同时启动多个实例,可能会因为太多模板更新请求而使 Elasticsearch 过载。

要覆盖已加载到 Elasticsearch 中的模板,请设置

setup.template.overwrite: true

禁用自动索引模板加载编辑

如果您使用的是 Elasticsearch 以外的输出,并且需要手动加载模板,则可能需要禁用自动模板加载。要禁用自动模板加载,请设置

setup.template.enabled: false

如果您禁用自动模板加载,则必须手动加载索引模板。

手动加载索引模板编辑

要手动加载索引模板,请运行 setup 命令。需要连接到 Elasticsearch。如果启用了其他输出,则需要使用 -E 选项临时禁用该输出并启用 Elasticsearch。这里示例假设 Logstash 输出已启用。如果 Elasticsearch 输出已启用,则可以省略 -E 标志。

如果您要连接到安全 Elasticsearch 集群,请确保已根据 快速入门:安装和配置 中的说明配置了凭据。

如果运行 Packetbeat 的主机没有直接连接到 Elasticsearch,请参阅 手动加载索引模板(备用方法).

要加载模板,请使用适合您系统的命令。

如果配置文件由 root 拥有,请使用 sudo 运行这些命令。

deb 和 rpm

packetbeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'

mac

./packetbeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'

linux

./packetbeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'

docker

docker run docker.elastic.co/beats/packetbeat:8.14.3 setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'

win

以管理员身份打开 PowerShell 提示符(右键单击 PowerShell 图标,然后选择 以管理员身份运行)。

从 PowerShell 提示符中,更改为安装 Packetbeat 的目录,并运行

PS > .\packetbeat.exe setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'

强制 Kibana 查看最新文档编辑

如果您已经使用 Packetbeat 将数据索引到 Elasticsearch,索引可能包含旧文档。加载索引模板后,您可以从 packetbeat-* 中删除旧文档,以强制 Kibana 查看最新文档。

使用此命令

deb 和 rpm

curl -XDELETE 'https://127.0.0.1:9200/packetbeat-*'

mac

curl -XDELETE 'https://127.0.0.1:9200/packetbeat-*'

linux

curl -XDELETE 'https://127.0.0.1:9200/packetbeat-*'

win

PS > Invoke-RestMethod -Method Delete "https://127.0.0.1:9200/packetbeat-*"

此命令会删除与模式 packetbeat 匹配的所有索引。在运行此命令之前,请确保您确实要删除与该模式匹配的所有索引。

手动加载索引模板(备用方法)编辑

如果运行 Packetbeat 的主机没有直接连接到 Elasticsearch,则可以将索引模板导出到文件,将其移动到具有连接性的机器,然后手动安装模板。

要导出索引模板,请运行

deb 和 rpm

packetbeat export template > packetbeat.template.json

mac

./packetbeat export template > packetbeat.template.json

linux

./packetbeat export template > packetbeat.template.json

win

PS > .\packetbeat.exe export template --es.version 8.14.3 | Out-File -Encoding UTF8 packetbeat.template.json

要安装模板,请运行

deb 和 rpm

curl -XPUT -H 'Content-Type: application/json' https://127.0.0.1:9200/_index_template/packetbeat-8.14.3 [email protected]

mac

curl -XPUT -H 'Content-Type: application/json' https://127.0.0.1:9200/_index_template/packetbeat-8.14.3 [email protected]

linux

curl -XPUT -H 'Content-Type: application/json' https://127.0.0.1:9200/_index_template/packetbeat-8.14.3 [email protected]

win

PS > Invoke-RestMethod -Method Put -ContentType "application/json" -InFile packetbeat.template.json -Uri https://127.0.0.1:9200/_index_template/packetbeat-8.14.3

加载索引模板后,还要加载数据流。如果您没有加载它,则必须授予发布者用户 manage 权限才能访问 packetbeat-8.14.3 索引。

deb 和 rpm

curl -XPUT https://127.0.0.1:9200/_data_stream/packetbeat-8.14.3

mac

curl -XPUT https://127.0.0.1:9200/_data_stream/packetbeat-8.14.3

linux

curl -XPUT https://127.0.0.1:9200/_data_stream/packetbeat-8.14.3

win

PS > Invoke-RestMethod -Method Put -Uri https://127.0.0.1:9200/_data_stream/packetbeat-8.14.3