问题标签 [efk]

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.

0 投票
0 回答
55 浏览

openshift - OpenShift 日志记录:如何将堆栈跟踪的 Kibana 组行合并到一个记录中?

语境

我已在集群中安装了 Red Hat OpenShift Logging Operator,对此页面进行了说明。这基本上是一个 EFK 堆栈(ElasticSearch、Fluentd、Kibana)。通常使用 Fluentd,您可以配置许多插件和数百个参数,但正如您在此 OpenShift 页面上看到的,只有 9 个 Fluentd 参数可用(所有与块相关),因为日志记录堆栈被打包为 Red Hat Operator。添加自定义配置对我来说不是一个选项,因为它不受支持并且不会从 RedHat 接收更新。

问题

当应用程序在发生错误后生成堆栈跟踪时,Kibana 会为每条记录显示 1 行堆栈跟踪。我需要 1 条记录中的整个堆栈跟踪。这可以通过Fluentd 多行插件实现,但 Red Hat OpenShift Logging Operator(使用 Fluentd)不支持此参数。

除了安装新的/独立的日志记录堆栈之外,我还有哪些选项可以将堆栈跟踪行分组到一个 Kibana 记录中?

0 投票
0 回答
291 浏览

elasticsearch - 如何使用 fluent-bit 解析/过滤嵌套的 json 属性?

在一些流利的解析器和过滤器之后,我得到了以下 json:

我想应用另一组解析器和/或过滤器以得到以下 json:

我的意思是,提升message一个级别并删除所有其他键,除了date.

我尝试使用一些过滤器grepnest/lift但没有成功。

怎么可能做到?

0 投票
1 回答
64 浏览

kubernetes - 在日志模式中提供多个容器名称以从中刮取数据

我在 K8s 集群中设置了 EFK 堆栈。目前 fluentd 正在从所有容器中抓取日志。

我希望它只从容器AB和.CD

如果我有一些前缀 asA-app我可以做类似下面的事情。

0 投票
0 回答
66 浏览

python - 如何将 EFK 堆栈的 Kibana 仪表板中的“@timestamp”和“_id”从 python 脚本发送到 Fluentd Endpoint?

我已经编写了一个示例 python 脚本来在 EFK 堆栈的 Kibana Dashboard 发送消息。我正在从 python 脚本向 Fluentd Endpoint 发送消息。

脚本如下:

在 EFK 堆栈的 Kibana Dashboard,我得到了以下信息。

有什么方法可以将 python 脚本中的 '@timestamp' 和 '_id' 发送到 Fluentd Endpoit ?

如果我们使用 elasticsearch API 从 Python 脚本在 Elasticsearch Endpoint 发送,我们可以在 Python 脚本中设置“@timestamp”和“_id”。我正在尝试找出 Fluentd Endpoint 是否有任何方法。

我已经尝试过这样的事情,但它不起作用。

0 投票
0 回答
38 浏览

elasticsearch - 有没有办法做一个流畅的http请求回调?

我正在开发一个 EFK(ElasticSearch + Fluentd + Kibana)堆栈日志收集器。

是否有有效的方法来执行 HTTP 请求回调以将响应值(例如 JWT 令牌)传递到下一个管道并将另一个 HTTP 请求发送到受保护的端点以获取更多数据?

我听说 Logstash 有类似的方法来执行此行为。
只是想知道如何在 Fluentd 中做同样的工作。

这是我下面的伪代码,它不可运行。

0 投票
0 回答
130 浏览

kubernetes - 如何从流利的日志中删除不需要的字符

目前我正在使用 Fluentd 将我的 Kubernetes 日志发送到云手表,但是当我在 cloudwatch 中检查日志时,日志中有额外的 unicode 字符。我尝试了不同的方法和正则表达式来解决,但没有运气。这是我的日志在云手表中的示例

登录 Cloudwatch: "log": "\u001b[2m2021-10-13 20:07:10.351\u001b[0;39m \u001b[32m INFO\u001b[0;39m \u001b[35m1\u001b[0;39m \ u001b[2m---\u001b[0;39m \u001b[2m[trap-executor-0]\u001b[0;39m \u001b[36mc.ndsraws.ConfigClusterResolver \u001b[0;39m \u001b[2m:\u001b [0;39m 通过配置解析 eureka 端点\n"

实际日志:2021-10-13 20:07:10.351 INFO 1 --- [trap-executor-0] cndsraws.ConfigClusterResolver :通过配置解析 eureka 端点

0 投票
0 回答
38 浏览

elasticsearch - 我已经设置了启用 Xpack 安全性的 EFK 堆栈,它运行良好,直到其中一个 Elasticsearch pod 重新启动

当其中一个弹性搜索 pod 因任何原因重新启动时,在 kibana 日志中我收到错误,即弹性用户无法进行身份验证。我找不到任何相关文件。任何帮助,将不胜感激。

我的 kibana 日志:

{"type":"error","@timestamp":"2021-11-02T19:33:54Z","tags":["warning","stats-collection"],"pid":1,"level ":"error","error":{"message":"[security_exception] 无法验证用户 [elastic],{ header={ WWW-Authenticate="Basic realm=\"security\" charset=\"UTF -8\"" } }","name":"Error","stack":"[security_exception] 无法验证用户 [elastic],{ header={ WWW-Authenticate="Basic realm=\"security\ " charset=\"UTF-8\"" } } :: {"path":"/.kibana_task_manager/_search","query":{"ignore_unavailable":true},"body":"{\"sort\ ":[{\"task.runAt\":\"asc\"},{\"_id\":\"desc\"}],\"query\":{\"bool\":{\"must\":[{\"term\": {\"type\":\"task\"}},{\"bool\":{\"filter\":{\"term\":{\"_id\":\"Maps-maps_telemetry\" }}}}]}}}","statusCode":401,"response":"{\"error\":{\"root_cause\":[{\"type\":\"security_exception\",\ "reason\":\"验证用户失败[elastic]\",\"header\":{\"WWW-Authenticate\":\"Basic realm=\\\"security\\\" charset=\\ \"UTF-8\\\"\"}}],\"type\":\"security_exception\",\"reason\":\"无法验证用户[elastic]\",\"header\" :{\"WWW-验证\":\"Basic realm=\\\"security\\\" charset=\\\"UTF-8\\\"\"}},\"status\":401}","wwwAuthenticateDirective":"Basic realm= \"security\" charset=\"UTF-8\""}\n 在响应 (/usr/share/kibana/node_modules/elasticsearch/src/lib/transport.js:315:15)\n 在 checkRespForFailure (/ usr/share/kibana/node_modules/elasticsearch/src/lib/transport.js:274:7)\n 在 HttpConnector。(/usr/share/kibana/node_modules/elasticsearch/src/lib/connectors/http.js:166 :7)\n 在 IncomingMessage.wrapper (/usr/share/kibana/node_modules/elasticsearch/node_modules/lodash/lodash.js:4929:19)\n 在 IncomingMessage.emit (events.js:194:15)\n在 endReadableNT (_stream_readable.js:1103:12)\n 在 process._tickCallback (internal/process/next_tick.js:63:19)"},"message":"[security_exception] 无法验证用户 [elastic],{ header={ WWW-Authenticate="Basic realm=\"security\" charset=\"UTF-8\"" } }"}

现在我启用了 xpack.security.transport.ssl.enabled: true 然后我在 es 主节点中收到此错误

{“类型”:“服务器”,“时间戳”:“2021-11-03T19:17:30,962+0000”,“级别”:“警告”,“组件”:“oetTcpTransport”,“cluster.name”:“ elasticsearch”,“node.name”:“elasticsearch-master”,“cluster.uuid”:“hO1sgzRlTKWHl-jJVItUmA”,“node.id”:“PnVpoMi0TACfs_vJNQ1afQ”,“message”:“传输层捕获的异常 [Netty4TcpChannel{ localAddress=0.0.0.0/0.0.0.0:9300, remoteAddress=/SOMEIPADDRESS}], 关闭连接",

0 投票
2 回答
337 浏览

elasticsearch - 如何将 fluentd 连接到 opendistro 以进行弹性搜索

我创建了一个 docker 文件:

我在撰写文件中创建了一个容器:

这是我的fluent.conf

由于某种原因,elasticsearch 和 kibana 启动时没有问题,但 fluentd 无法连接。这是我得到的错误

我不确定用于 fluentd 连接到 elasticsearch 的插件是否也有资格连接到 OpenDistro 以进行 elasticsearch。如果需要任何其他信息,请询问。任何帮助将非常感激。

0 投票
1 回答
711 浏览

fluentd - Fluent Bit 1.8+ 和 MULTILINE_PARSER

我的目标是从在 Bare Kubernetes 上运行的 Java(Spring Boot)应用程序收集日志。然后将这些日志翻译成 ES 并在 Kibana 中可视化。

为此,我通过 Kubernetes 1.22 部署了 Fleunt Bit 1.8.9。由于我使用 Containerd 代替 Docker,所以我的 Fluent Bit 配置如下(请注意,我只指定了一个日志文件):

在 Kibana 中使用此配置,Java 堆栈跟踪消息以非结构化方式显示: 在此处输入图像描述

但我需要 Java 堆栈跟踪的结构如下面的屏幕截图所示: 在此处输入图像描述

我尝试了这样的配置:

和:

但都一样,日志不是结构化的: 在此处输入图像描述

请帮助我构建日志。

0 投票
0 回答
36 浏览

logging - 如何在 Fluent-bit 上添加一个额外的字段来告诉我 Fluent-bit 的版本?

我已经在我的 Kubernetes 集群上部署了 fluent-bit,我想在我的日志中添加一个额外的“agent.version”字段,告诉我 fluent-bit 的当前版本。

有没有办法做到这一点?我正在尝试record_modifier过滤器,但不确定如何配置它。