fluidd 不解析 JSON 日志文件条目

2023-11-25

我在 Stackoverflow 上看到过很多类似的问题,包括this one。但没有一个解决我的具体问题。

该应用程序部署在 Kubernetes (v1.15) 集群中。我正在使用基于的 docker 映像流利/流利的 docker-imageGitHub 存储库,v1.9/armhf,修改为包括elasticsearch插件。 Elasticsearch 和 Kibana 都是version 7.6.0.

日志将输出到标准输出,如下所示:

{"Application":"customer","HTTPMethod":"GET","HostName":"","RemoteAddr":"10.244.4.154:51776","URLPath":"/customers","level":"info","msg":"HTTP request received","time":"2020-03-10T20:17:32Z"}

在 Kibana 我看到这样的东西:

{
  "_index": "logstash-2020.03.10",
  "_type": "_doc",
  "_id": "p-UZxnABBcooPsDQMBy_",
  "_version": 1,
  "_score": null,
  "_source": {
    "log": "{\"Application\":\"customer\",\"HTTPMethod\":\"GET\",\"HostName\":\"\",\"RemoteAddr\":\"10.244.4.154:46160\",\"URLPath\":\"/customers\",\"level\":\"info\",\"msg\":\"HTTP request received\",\"time\":\"2020-03-10T20:18:18Z\"}\n",
    "stream": "stdout",
    "docker": {
      "container_id": "cd1634b0ce410f3c89fe63f508fe6208396be87adf1f27fa9d47a01d81ff7904"
    },
    "kubernetes": {

我期待看到从log:值有点像这样(缩写):

{
  "_index": "logstash-2020.03.10",
  ...
  "_source": {
    "log": "...",   
    "Application":"customer",
    "HTTPMethod":"GET",
    "HostName":"",
    "RemoteAddr":"10.244.4.154:46160",
    "URLPath":"/customers",
    "level":"info",
    "msg":"HTTP request received",
    "time":"2020-03-10T20:18:18Z",
    "stream": "stdout",
    "docker": {
      "container_id": "cd1634b0ce410f3c89fe63f508fe6208396be87adf1f27fa9d47a01d81ff7904"
    },
    "kubernetes": {

我的流利配置是:

match fluent.**>
  @type null
</match>

<source>
  @type tail
  path /var/log/containers/*.log
  pos_file /var/log/fluentd-containers.log.pos
  time_format %Y-%m-%dT%H:%M:%S.%NZ
  tag kubernetes.*
  format json
  read_from_head true
</source>

<match kubernetes.var.log.containers.**fluentd**.log>
  @type null
</match>
<match kubernetes.var.log.containers.**kube-system**.log>
  @type null
</match>
<filter kubernetes.**>
  @type kubernetes_metadata
</filter>

<match **>
   @type elasticsearch
   @id out_es
   @log_level info
   include_tag_key true
   host "#{ENV['FLUENT_ELASTICSEARCH_HOST']}"
   port "#{ENV['FLUENT_ELASTICSEARCH_PORT']}"
   path "#{ENV['FLUENT_ELASTICSEARCH_PATH']}"
   <format>
      @type json
   </format>
</match>

我确信我错过了一些东西。有人能指出我正确的方向吗?

谢谢, 富有的


这个配置对我有用:

<source>
  @type tail
  path /var/log/containers/*.log,/var/log/containers/*.log
  pos_file /opt/bitnami/fluentd/logs/buffers/fluentd-docker.pos
  tag kubernetes.*
  read_from_head true
  <parse>
    @type json
    time_key time
    time_format %iso8601
  </parse>
</source>

<filter kubernetes.**>
  @type parser
  key_name "$.log"
  hash_value_field "log"
  reserve_data true
  <parse>
    @type json
  </parse> 
</filter>

<filter kubernetes.**>
  @type kubernetes_metadata
</filter>

确保编辑路径,使其符合您的用例。

发生这种情况是因为 docker 登录/var/log/containers/*.log将容器 STDOUT 作为字符串放在“log”键下,因此要将这些 JSON 日志作为字符串放在那里,必须首先将它们序列化为字符串。您需要做的是添加一个额外的步骤,该步骤将在“log”键下解析此字符串:

<filter kubernetes.**>
  @type parser
  key_name "$.log"
  hash_value_field "log"
  reserve_data true
  <parse>
    @type json
  </parse> 
</filter>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

fluidd 不解析 JSON 日志文件条目 的相关文章

随机推荐

  • WPF 从 ViewModel 打开一个新视图

    这是我的第一次WPF MVVM应用程序 这是我的结构 与我的一个项目app xaml打开应用程序并覆盖OnStartup来解析主窗口 我这样做是因为参考文献 我的观点的一个项目 我的 ViewModel 的一个项目 我的模特的一个项目 我有
  • 我不知道Python中的__iter__,谁能给我一个好的代码示例

    我的代码运行错误 class a object def iter self return 33 b a aaa b bbb c a print b itervalues print c itervalues 请尝试使用代码 而不是文本 因为
  • JavaScript 在 JSON 对象内搜索

    我的应用程序中有一个 JSON 字符串 对象 list name my Name id 12 type car owner name my Name2 id 13 type car owner2 name my Name4 id 14 ty
  • 将 PFQueryTableViewController (来自解析)与 Swift 结合使用

    我已将 UITableViewController 添加到故事板 并创建 分配一个从 PFQueryTableViewController 继承到故事板控制器的新类 然后我编写了以下初始化函数 但我无法使表视图控制器正常工作 为了实例化 P
  • 尝试使用 Discord.py 重写将消息发送到特定频道,但它不起作用

    我目前正在开发一个不和谐的机器人 我尝试在用户升级后使用 Discord py 重写将消息发送到特定频道 但我收到此错误 await channel message send f message author mention is now
  • 为什么构造函数中带有可选参数的类不能满足 new() 泛型约束?

    以下代码无法编译 产生 Widget 必须是具有公共无参数构造函数的非抽象类型 错误 我认为编译器拥有它需要的所有信息 这是一个错误吗 疏忽 或者是否存在某些情况下这无效 public class Factory
  • 如何连接 Wordpress 登录系统以编程方式阻止某些用户?

    我正在开发一个基于 WordPress 的门户网站 该门户网站与定制的电子商务集成 电子商务还充当 控制面板 所有角色都在那里设置 一些用户被记录但 不活跃 他们不应该能够登录 WordPress 出于这个原因 我需要连接到 Wordpre
  • 套接字心跳与保活

    为套接字实现自己的心跳和设置 keepalive 有何优缺点 我在某处读到 保活有时可能会失败 连接无论如何都会关闭 取决于网络结构 另一件事是 自己的心跳可以检测应用程序是否响应 不仅仅是套接字 我的主要目标是确保所有这些 即使没有发送数
  • 如何在 Android 中解压 7zip 存档?

    我有一个7zip包含数百个文件的存档 这些文件被分成不同的目录 目标是从 FTP 服务器下载它 然后将其解压到手机上 我的问题是7zipSDK包含的内容并不多 我正在寻找有关 7z 文件解压的示例 教程和片段 解压通过Intent只是次要选
  • npm 命令中 - 和 -- (单破折号和双破折号)之间的区别

    我想知道这个问题是否已经得到解决 我用过一些这样的命令 npm install g npm install d 然后我用了一些类似的 npm install XYZ save dev npm install only dev 之间的根本区别
  • 发现对集合 org.hibernate.HibernateException 的共享引用

    我收到此错误消息 错误 找到对集合的共享引用 Person latedPersons 当我尝试执行时addToRelatedPersons anotherPerson person addToRelatedPersons anotherPe
  • 我可以在没有 GUI 的情况下使用 OS X 10.8 的语音识别/听写功能吗?

    理想情况下 我想使用 Python 的 10 8 Mountain Lion 听写功能 而不需要 GUI 据我所知 目前仅支持听写UITextInput协议 这意味着 GUI 正确吗 您可以创建一个虚拟文本字段 并通过模拟按键以编程方式开始
  • 更改 Hadoop 中现有文件的块大小

    考虑一个 hadoop 集群 其中默认块大小为 64MBhdfs site xml 然而 后来团队决定将其更改为 128MB 这是我对上述场景的疑问 此更改是否需要重新启动集群 或者它会自动占用并且所有新文件将具有 128MB 的默认块大小
  • C/C++ 条件返回语句[重复]

    这个问题在这里已经有答案了 我正在研究嵌入式程序 在某些情况下 如果没有条件 我想尽快从函数返回 如果我有以下代码并且我正在进行嵌入式编程 foo if a lt b return 0 bail since condition is met
  • CoreData关系错误?

    我有一个与单位有 对多 关系的订单 当我尝试按顺序记录单位 NSSet 时 出现错误 NSFetchRequest fetchRequest NSFetchRequest alloc init NSEntityDescription ent
  • IBM Db2 中 if 存在的语法

    如果表存在但它似乎不适用于 IBM Db2 则以下查询将删除该表 Begin atomic if exists SELECT 1 FROM SYSIBM SYSTABLES WHERE NAME EMAIL AND TYPE T AND c
  • Socket.io 意外断开

    我有node js 服务和角度客户端 使用socket io 在长时间的http 请求期间传输一些消息 Service export const socketArray SocketIO Socket export let socketMa
  • Postgres 无法侦听特定 IP 地址

    我试图阻止对 PostgreSQL 的访问 只允许访问本地主机和我的机器外部 IP 例如 172 211 xx xx 此 IP 由我的 ISP 互联网服务提供商 提供 In postgresql conf我设置了以下行 listen add
  • GZIP解压 C# OutOfMemory

    我有许多从 ftp 下载的大型 gzip 文件 大约 10MB 200MB 需要解压 所以我尝试谷歌并找到一些gzip解压的解决方案 static byte Decompress byte gzip using GZipStream str
  • fluidd 不解析 JSON 日志文件条目

    我在 Stackoverflow 上看到过很多类似的问题 包括this one 但没有一个解决我的具体问题 该应用程序部署在 Kubernetes v1 15 集群中 我正在使用基于的 docker 映像流利 流利的 docker imag