加载 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 --rm docker.elastic.co/beats/packetbeat:8.17.0 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.17.0 | 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.17.0 [email protected]
mac
curl -XPUT -H 'Content-Type: application/json' https://127.0.0.1:9200/_index_template/packetbeat-8.17.0 [email protected]
linux
curl -XPUT -H 'Content-Type: application/json' https://127.0.0.1:9200/_index_template/packetbeat-8.17.0 [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.17.0
加载索引模板后,也请加载数据流。如果您不加载它,则必须给发布者用户 manage
权限在 packetbeat-8.17.0 索引上。
deb 和 rpm
curl -XPUT https://127.0.0.1:9200/_data_stream/packetbeat-8.17.0
mac
curl -XPUT https://127.0.0.1:9200/_data_stream/packetbeat-8.17.0
linux
curl -XPUT https://127.0.0.1:9200/_data_stream/packetbeat-8.17.0
win
PS > Invoke-RestMethod -Method Put -Uri https://127.0.0.1:9200/_data_stream/packetbeat-8.17.0