问题标签 [logstash-forwarder]

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 投票
1 回答
124 浏览

logstash - 在logstash服务器机器上使用glob?

我们有一个单独的 logstash 服务器,日志在远程机器上。我们使用伐木工人的logstash插件将这些相同的日志从远程机器发送到logstash服务器。

我试过这个:

客户端配置(存在日志):

我想从我的文件输入的路径变量中提取字段,以便相应地针对不同的字段值应用不同的解析模式。

例如:像这样的东西

这里服务器,logtype 是我希望在我的字段中应用不同解析模式的目录名称,例如:

我应该如何在我的 logstash-server 配置上应用上述内容,因为文件输入位于我想从路径中提取字段的客户端机器上?

Lumberjack 成功地将日志发送到服务器。我尝试在客户端应用 grok:

我在客户端控制台上检查了它在日志中添加了服务器、日志类型等字段,但在 logstsh-server 控制台上没有添加这些字段。

我应该如何才能达到上述目的????

0 投票
1 回答
1295 浏览

logstash - logstash 日期格式,没有得到任何数据

您好,以下是我在 centos6 logstash 服务器中的配置。我正在使用logstash 1.4.2 和elasticsearch 1.2.1。我从 /var/log/messages 和 /var/log/secure 转发日志,时间格式是“Sep 1 22:15:34”

1.输入.conf

2.filter.conf

3. 输出.conf

以下是所有客户端服务器中的logstash-forwarder conf

这是问题所在。我正在转发来自 5 个具有不同时区的服务器的日志,例如:EDT、NDT、NST、NPT。logstash_server 时区采用 NPT(尼泊尔时间)[UTC + 5:45]

所有服务器提供以下

我希望这很好,但只有一个时区 NPT 正在转发日志,我可以在 kibana 中看到它,所有其他人都给了我上面的日志,但我无法在 kibana 中看到它。我认为问题出在 DATE 中,因为它无法解析来自不同服务器的日期。此外,logstash 中也没有显示错误的日志。

在这种情况下如何解决问题?

0 投票
1 回答
495 浏览

logstash-grok - 面临logstash中的错误

当我在 logstash 中定义解析 apache tomcat 和应用程序日志文件的模式时,我们收到以下错误。示例日志文件是:

配置文件是:

日期 {:level=>:error} 的未知设置“时间戳”

0 投票
1 回答
5169 浏览

load-balancing - 扩展logstash和平衡负载的更好方法?

问题来自:https ://groups.google.com/forum/#!topic/logstash-users/cYv8ULhHeE0

通过比较下面的 logstash 横向扩展策略,如果流量/cpu 负载均衡,tcp 负载均衡器具有最佳性能。但是,由于 logstash-forwarder <-> logstash tcp 连接的性质,似乎很难一直平衡流量。任何人都有更好的想法来使logstash节点之间的流量/cpu负载更加平衡?感谢您的建议:)

<我的场景>

  • 10+个服务节点,配备logstash-forwarder,将日志转发到中央logstash节点(集群)
  • 每个服务节点的日志平均吞吐量,吞吐量日分布,日志类型的过滤复杂度变化很大
    • 日志平均吞吐量:例如 service_1:0.5k 事件/秒;service_2:5k 事件/秒
    • 吞吐量日分布:例如service_1的高峰在早上,service_2的高峰在晚上
    • 日志类型的过滤复杂度:通过消耗100%单个logstash节点的CPU,service_1的日志类型可以处理300个事件/s,而service_2的日志类型是1500个事件/s

< TCP 负载均衡器 >

由于 tcp 连接是 logstash-forwarder 和 logstash 之间的持久性,这意味着最终 tcp 连接量是通过最小连接、最小负载平衡还是分布在所有 logstash 节点上。它不保证流量/cpu 负载在所有 logstash 节点之间保持平衡。根据我的场景,每个 tcp 连接的流量每天平均变化,随着时间的推移,它的事件复杂性。所以在更糟糕的情况下,比方说,logstash_1 和 logstash_2 都有 10 个 tcp 连接,但由于 logstash_1 的连接包含更高的流量、更复杂的事件,logstash_1 的 cpu 负载可能比 logstash_2 多 3 倍。

< 手动将 logstash-forwarders 分配给 logstash >

可能会面临与 TCP 负载均衡器相同的情况,因为我们可以计划根据历史每日平均流量分配负载,但它会随着时间的推移而变化,当然没有 HA。

<消息队列>

架构为:带有logstash-forwarder的服务节点->队列器:logstash到rabbitmq->索引器:从rabbitmq到ElasticSearch的logstash

  • 对于所有节点,大约 30% 的 CPU 开销用于向队列代理发送消息或从队列代理接收消息。
0 投票
2 回答
1385 浏览

ruby-on-rails-3 - Logstasher+Kibana:消息双引号且难以解析

我使用这个堆栈:

  • 在每台前端服务器上
    • 导轨
    • logstasher gem(格式rails log in json)
    • logstash-forwarder(只是将日志转发到中央服务器上的 logstash)
  • 在日志服务器上:
    • logstash(集中和索引日志)
    • 要显示的 kibana

Kibana 可以很好地与 JSON 格式配合使用。但是“消息”数据是由字符串提供的,而不是作为 json 提供的(参见提供的片段)。有没有办法解决这个问题?例如,访问状态有点棘手

这是一个消息示例

谢谢你的帮助 ;)。

编辑1:添加logstash配置文件:

/etc/logstash/conf.d/01-lumberjack-input.conf

/etc/logstash/conf.d/10-syslog.conf

/etc/logstash/conf.d/30-lumberjack-output.conf

如果有用,logstash-forwarder 配置: /etc/logstash-forwarder在 Web 服务器上

我的配置文件主要来自本教程:https ://www.digitalocean.com/community/tutorials/how-to-use-logstash-and-kibana-to-centralize-and-visualize-logs-on-ubuntu- 14-04

0 投票
1 回答
507 浏览

elasticsearch - 如何在logstash转发器中发送路径信息

我的 Logstash 转发器在与 logstash 服务器不同的主机上运行。现在我想发送 logstashforwarder 读取日志的文件的确切路径信息。有什么方法可以做到这一点.. 下面是我的 logstash-forwarder conig 文件

如上所示,我使用 *.log 来包含所有错误日志文件(error.log、process.log 等)。现在我想将文件名连同日志一起发送到logstash服务器。

0 投票
1 回答
1038 浏览

elasticsearch - logstash - 过滤日志并发送到不同的弹性搜索集群

假设我有一个这样的堆栈:logstash-forwarder -> logstash -> elasticsearch -> kibana

我想知道是否可以使用 logstash-forwarder 监控整个目录并根据过滤器将日志发送到不同的弹性搜索集群。用例:

我有一些程序可以将日志打印到同一目录。这些日志可能包含两种类型的消息 - “私人”或调试。同样,这些消息可以出现在相同的日志文件中。我知道可以给某些文件一个不同的类型,并用 if 过滤它们到不同的输出。我不知道当某个日志可以包含不止一种类型的日志消息时您可以做什么。

有没有办法拆分它们?我想限制某些用户对带有私人信息的日志消息的访问,我想到了两个不同的弹性搜索集群,每个集群都有自己的 Kibana 和 LDAP。

BR

0 投票
2 回答
6459 浏览

elasticsearch - 获取 Logstash-forwarder 机器的 IP 地址

我已经在我的系统上设置了 Elasticsearch、Logstash、Kibana 日志查看工具。我的配置中现在有 2 台机器(Amazon EC2 实例):

  • 54.251.120.171 - 安装 ELK 的 Logstash-server
  • 54.249.59.224 - Logstash-forwarder - 将“/var/logs/messages”日志发送到 Logstash-server

在 logstash-server 上,这是我的配置(在不同文件中)的样子:-

在 logstash-forwarder 上,这是我的配置文件的样子,它将 /var/log/messages、/var/log/secure 日志转发到 logstash-server

这是我的 Kibana 界面从 Elasticsearch 获取索引日志后的样子。 在此处输入图像描述

所以我的问题是,如果有日志事件,我需要一种方法来检索 logstash-forwarder 的 IP 地址,即 54.249.59.224。

我问这个问题的原因是在一个真实的场景中,我们可能有很多logstash-forwarder(比如10个),其中所有10个都将日志发送到我们的logstash-server。所以我需要以某种方式标记所有日志事件,以便我可以识别哪个 logstash-server 发送了哪个日志事件。

我需要使用 IP 地址(可能还有其他一些信息)在 Kibana 界面中搜索日志事件。

有人可以帮我这样做吗?:)

或者如果有人对如何以不同的方式有效地做到这一点有更好的想法,不客气!

0 投票
3 回答
3242 浏览

ruby - 监控logstash的健康状况

我将使用 logstash 向代理发送大量事件。我对代理进行了监控以检查健康状态,但我找不到太多关于如何查看logstash 进程是否健康、是否有进程失败的指标的信息。

我对那些使用logstash的人很感兴趣,你有哪些监控它的方法?

0 投票
0 回答
1131 浏览

json - logstash-forwarder json 无效字符

在某些时候,我的 logstash 转发器曾经正常工作,但在某些时候无法启动此错误消息

解组 json 失败:无效字符 ']' 寻找值logstash 的开头

仅当我使用以下命令运行转发器时才会出现此消息:

如果我将它作为服务运行它会失败而没有任何错误消息,如果我重新启动服务得到这个

重新启动日志传送器logstash-forwarder
start-stop-daemon:警告:无法杀死PID:没有这样的进程
...完成。

第一次停止转发器工作时,我在 syslog 中发现此消息:

来自 UDP 的连接:[54.194.184.218]:63707->[10.38.143.181] 11 月 21 日 12:41:38 logstash-forwarder[PID]: 2014/11/21 12:41:38.692517 寻找 ack 的读取错误:11 月 EOF 21 12:41:38 logstash-forwarder[PID]: 2014/11/21 12:41:38.692592 从文件设置受信任的 CA:/etc/pki/tls/certs/logstash-forwarder.crt Nov 21 12:41:38 logstash-forwarder[PID]: 2014/11/21 12:41:38.692827 连接到 XXXX:5000 (XXXX) Nov 21 12:41:38 logstash-forwarder[PID]: 2014/11/21 12:41:38.694128 失败连接到 XXXX:拨打 tcp XXXX:5000:连接被拒绝

在服务器端logstash和 ES 集群似乎工作正常..

我发现我的许多类似问题,但没有任何解决方案。