问题标签 [fluentd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
elasticsearch - 在elasticsearch中的单个键下保存变量类型?
我有一堆来自fluentd的文档,然后我用fluent-plugin- elasticsearch 保存到 elasticsearch 。
其中一些文档在键下有一个字符串name
,一些有一个对象。
例子
和
这些文档在我的应用程序中是相同类型的,它们保存到相同的弹性搜索索引中。
但是elasticsearch对此有一个问题。当第二个文档被保存到 elasticsearch 时,它会抛出这个错误:
这似乎是因为 elasticsearch 已将键设置name
为字符串类型。我可以看到这个使用curl http://localhost:9200/fluentd-[tagname]/_mapping
,当我之后尝试将对象保存到它时,它显然不喜欢它。
那么有没有办法在elasticsearch中解决这个问题?
我无法控制传入的文档,并且有多个具有可变类型的键 - 不仅仅是name
. 所以我不能只为那个键做一次黑客攻击。
这很烦人,因为这些文档完全被排除在 elasticsearch 之外并发送到 /dev/null。
如果这完全不可能 - 至少可以将这些文档保存到文件或其他东西中,这样我就不会丢失它们?
fluentd-*
这是我的索引模板:
elasticsearch - 弹性搜索,流利的,kibana
我正在尝试部署EFK基础架构(elasticsearch、fluentd、kibana),通过 fluentd 更改 logstash
Fluentd 在 elasticsearch 中保存记录没有问题。我正在logstash_format
使用值为 true 的指令来与 logstash 兼容。
Kibana 没有显示任何记录。
使用 tcpdump 我可以看到从 kibana 到 elasticsearch 的请求(以及响应)
返回我拥有的唯一索引。
有了这个数据...
返回...
有了这些数据...
不返回任何记录...
但是,如果我使用 GET 尝试相同的 url 并且没有数据 y 获取记录。
返回这个...
他们每个人都返回数据,但 kibana 什么都不显示。
有任何想法吗?
更新:
如果我启动...
使用此数据(删除查询)有效。
所以问题似乎在这。
syslog - Fluentd:将 syslog 事件转发到 sensu
我正在尝试从 cisco 设备收集 syslog 消息并将其发送到 sensu 进行分析和警报。流利的可能/可行吗?如果是的话,你能告诉我的方式吗?谢谢你,阿列克谢
mongodb - Fluentd:使用多个来源与在 mongo 中拆分
我们使用 fluent in_tail 插件从 apache 访问日志文件加载日志,并使用 out_mongo 插件加载到 mongodb。我们在日志文件中有大约 10 种不同类型的日志消息。理想情况下,希望将它们保存在单独的 mongo 集合中,以便可以为每个集合单独设置 TTL(或上限集合大小)。只想知道这两种方法中哪一种更好:
在 fluent 配置文件中保留单独
<source>
的映射,所有这些映射都尾随同一个日志文件,但使用不同的正则format
表达式。然后我可以match
将这些中的每一个添加到不同的 mongo 集合中。(我相信不可能在一个元素format
中为多个标签指定多个正则表达式?)<source>
将所有日志存储在一个“原始”mongo 集合中,然后编写我自己的代码来为不同类型提取不同类型的日志。我相信这个选项最适合性能,但不确定第一种方法是否真的很糟糕。
logging - Fluentd 到 Logstash 输出插件
我正在尝试使用 flunetd 从 scribe 服务器读取并输出这些日志以暂时存储在 logstash 中。我知道将 scribe_central 日志记录到另一个中央记录器是非常愚蠢的,但我们需要在当前架构中完成此操作。
有谁知道是否有任何插件可以做到这一点?我搜索了谷歌,但找不到任何东西。
regex - 我的正则表达式是错误的还是 td-agent 的格式行为有问题?
我正在使用 fluentd、elasticsearch 和 kibana 来组织日志。不幸的是,这些日志不是使用像 apache 这样的任何标准编写的,所以我不得不自己想出格式的正则表达式。我在这里使用此站点来验证它们是否正常工作:http: //fluentular.herokuapp.com/。
日志在这里大致有这种格式:
我使用的格式正则表达式如下:
现在,根据应该使用正则表达式专门测试 fluentd 行为的网站判断,输出应该是这个:
相反,我有这个?错误?pri 总是缩写为 DEBU。对于变成 ERRO 的 ERROR 也是如此,只有 INFO 保持 INFO。我对正则表达式不是很有经验,我很难相信这是一个错误,但它仍然让我感到困惑,非常感谢任何帮助。
我不确定我是否可以链接完整的配置文件,因为我个人不拥有这些日志文件,并且我试图将其保持在我的老板不会因为我发布敏感信息而对我生气的水平,但它肯定是需要,我会在问他我能透露多少后稍后发布。
一般来说,日志总是大致如下所示:首先是优先级,即 DEBUG、ERROR 或 INFO,然后是日期,然后是我们所说的主题,它总是写在 [] 中,最后只是一条消息。
这是一个指向我正在使用的格式的流利的链接和一个测试字符串,它以流利的方式产生正确的结果,但不在我的配置文件中:
抱歉,我无法让它像普通链接一样工作,只需点击即可。
另一个用我的格式和测试字符串测试正则表达式的链接是这个:
http://rubular.com/r/dfXOkQYNXP
tl;博士版本:
我的 td-agent 格式正则表达式切断了最后一个字母,尽管流利说它不应该。我的错还是错误?
regex - fluentd和nginx访问日志格式
如何在 fluentd 中为以下 nginx 访问日志格式编写正则表达式?
fluentd - Fluentd:如何覆盖时间属性
Guyz……我们被困住了……救救我们!:-)
我们有一个使用 Fluentd 的 3 步日志聚合管道。
[#1 - 尾日志(原始日志)] --(TCP)--> [#2 - 将读取的日志解析为 JSON] --(TCP)--> [#3 - 过滤并输出到 Redis & Mongo]
在第一步中,我们不会将 tail'd 日志转换为 JSON。这主要是因为我们希望避免在该服务器上消耗任何额外的 CPU。我们拥有的日志行非常复杂,并且故意将解析延迟到第 2 步(在不同的集群/服务器上)。
所以阶段 #1 发出:时间、标签和记录(原始日志行)。我们在这里使用 in_tail 插件,因此默认情况下,“时间”属性表示从文件中读取记录的时间。因此,在负载下,读取时间可能与日志行的实际时间戳不匹配。
JSON 解析被推迟到第二阶段。
在第二阶段,一旦我们将日志转换为 JSON……我们希望将阶段 #1 发送的“时间”属性覆盖为 JSON 记录中的时间属性。
我们在第 2 步( https://github.com/tagomoris/fluent-plugin-parser)使用 Fluent-Plugin-Parser 。
我们如何覆盖 time 属性并让 FluentD 使用它而不是在步骤 #1 中读取的“时间”?
syslog - IETF syslog 输入到 fluentd
有什么方法可以使用 fluentd 支持 IETF / RFC 5424 系统日志消息?我的应用程序没有磁盘,因此不能选择拖尾文件。系统已经输出了标准的 syslog 消息,但看起来 fluentd 的 syslog 插件默认情况下无法解析 RFC 5424 消息格式。
elasticsearch - Fluentd 不会将任何数据刷新到弹性搜索 - 但会在关闭时刷新
我有一个流利的 + 弹性搜索 + kibana 设置。Fluentd 配置为使用此插件输出到弹性搜索: https ://github.com/uken/fluent-plugin-elasticsearch 。问题是 fluentd 在运行时永远不会将其缓冲区刷新到弹性搜索,它只是将数据存储在内存缓冲区中。发出关闭后,缓冲区被刷新并更新弹性搜索。
尽管设置flush_interval 60s
和 ,仍会出现此问题buffer_chunk_limit 25k
。默认值也会产生同样的问题。
Fluentd 收集器日志文件输出和 cfg:
谁能帮助解释为什么 fluentd 没有刷新到弹性搜索?谢谢。