elasticsearch FileBeat:仅主机字段显示为JSON,而不是字符串
我正在从事Filebeat的工作,我正在将数据从应用程序和系统日志推送到AWS上的ES域。它工作正常,只是主机字段作为一个类型显示为JSON而不是纯文本。我检查了fields.yml文件,但没有使用JSON作为输出的对主机的引用 filebeat.yml:
elasticsearch FileBeat:仅主机字段显示为JSON,而不是字符串,
elasticsearch,filebeat,
elasticsearch,Filebeat,我正在从事Filebeat的工作,我正在将数据从应用程序和系统日志推送到AWS上的ES域。它工作正常,只是主机字段作为一个类型显示为JSON而不是纯文本。我检查了fields.yml文件,但没有使用JSON作为输出的对主机的引用 filebeat.yml: filebeat.inputs: - type: log paths: - /var/log/nginx/*.log fields: type: develop.gateway.nginx.log enviro
filebeat.inputs:
- type: log
paths:
- /var/log/nginx/*.log
fields:
type: develop.gateway.nginx.log
environment: develop.gateway
service: nginx
document_type: filebeat.develop.gateway
registry: /var/lib/filebeat/registry
- type: log
paths:
- /var/www/html/api-gateway/deploy/var/log/*.log
fields:
type: develop.gateway.application.log
environment: develop.gateway.application
service: gateway
document_type: filebeat.gateway.develop
registry: /var/lib/filebeat/registry
- type : log
paths:
- /var/log/php*.log
fields:
type: develop.1c.php-fpm.log
environment: develop.1c
service: php-fpm
document_type: filebeat.php-fpm.1c
registry: /var/lib/filebeat/registry
output.elasticsearch:
hosts: ["OUR_DOMAN"]
protocol: "https"
您可以像我在这里所做的那样从负载中选择主机名:
output.kafka:
...
codec.format:
string: '{"version":"1.1","timestamp":"%{[@timestamp]}","short_message":"%{[message]}","file":"%{[log.file.path]}","host":"%{[host.hostname]}"}'
...
问题是什么?您是否希望主机
是一个字符串?请粘贴一份示例文档(来自Elasticsearch)。您还可以添加索引映射。host
字段是一个JSON对象,导出的字段将取决于您使用的节拍。您的问题是什么?@leandrojmp:我可以更改该字段以字符串形式传递数据吗?如果是这样的话,怎么做?如果只有filebeat,我想你不能,你需要使用logstash和一些变异过滤器。我在哪里添加这个?在filebeat.yml?那就是我的位置。我主要想展示dot函数来从json有效负载中提取信息:)