问题标签 [elastic-stack]

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 回答
154 浏览

logstash - 如何使用logstash中的grok从1个值中解析2个属性?

一些上下文:

我想在logstash中使用grok解析以下日志语句

我现在使用以下语法来解析完整的消息:

这给了我我定义的所有属性。

我的问题:

我想将此部分解析(ajp-/1.2.3.4:8080-251)为“线程”属性和 ip 属性。结果需要是:

  • 线程:(ajp-/1.2.3.4:8080-251)
  • ip: 1.2.3.4

我怎样才能做到这一点?

谢谢

0 投票
2 回答
6412 浏览

java - ELK:如何在 Kibana 中按异常类对堆栈跟踪进行分组

我正在为 Java Web 应用程序设置 ELK 堆栈。我用logstash成功解析了多行java堆栈跟踪,并在kibana中显示异常计数。现在我想显示一个日期直方图,其中包含按异常类分组的异常计数,即每分钟或每秒 2 个 java.lang.NullPointerException、3 个 java.lang.ArithmeticException。

在 kibana 中,我可以看到索引的完整堆栈跟踪。但是我无法按类可视化我的异常。这里的最佳做法是什么?尝试使用 Logstash 检索完全限定的类名并在 kibana 中进行术语过滤?或者有没有办法在kibana中使用ES的力量?

message字段开头的示例:

我的logstash配置:

谢谢你的帮助

编辑 1:我class的 logstash 模式中的字段表示引发异常的类,在我的示例中:c.m.w.s.proxies.ProxyServlet. 我想按我的 Exception 类聚合:org.apache.http.conn.HttpHostConnectException.

0 投票
1 回答
3434 浏览

logstash - Logstash zabbix 输出

这是我的 logstash.conf 文件。我正在尝试使用 logstash-output-zabbix 插件进行警报。但是得到这个错误......

我有一个ELK在 zabbix 服务器中命名的主机,它带有一个log_getter项目并hello作为密钥(Zabbix 陷阱)。

0 投票
3 回答
3477 浏览

service - 在 CentOS 中将 kibana 4 作为服务运行

我正在尝试将 Kibana 4 用作服务。我已经尝试过这个存储库代码https://github.com/cjcotton/init-kibana/blob/master/kibana 将 KIBANA_BIN 更改为 KIBANA_BIN=/usr/local/kibana/bin 但它不起作用。我不知道在 DAEMON_USER 中放什么。

当我使用 /etc/init.d/kibana status 时,它显示 kibana 已死,但 pid 文件存在

你有什么想法吗?谢谢

0 投票
1 回答
3825 浏览

search - 在kibana中查找不包含指定字段的日志

我使用 ELK 来安排我的日志,日志来自很多地方,有些记录可能不包含多个字段,问题是找到这些记录的最佳方法是什么?我可以找到不包含多个字段的日志吗?

0 投票
2 回答
2333 浏览

elasticsearch - 如果在 x 分钟内没有匹配过滤器的记录,则观察者警报

如果在某个时间范围内没有与插入到索引中的模式匹配的记录,我需要让 ElasticSearch 观察程序发出警报,它需要能够在对另一对字段进行分组时执行此操作。即记录将是模式:日期时间戳级别消息客户端站点

它需要检查每个客户端站点的消息匹配“正在运行”(即 Google 地图和 Bing 地图具有相同的地图站点)。我认为现在最好的(?)方法是为每个客户端站点运行一个 wacher。

到目前为止,我有这个,假设应该写入的任务每 20 分钟运行到日志中:

0 投票
3 回答
4106 浏览

elasticsearch - 如何从 logstash 增加我的文档的计数字段?

我想从logstash更新我的文档/登录elasticsearch的一个字段。

我的logstash conf文件

我想将我的计数字段增加一,如何在我的 logstash 输出中指定它。

注意:我知道要更新我需要使用这个脚本

但我不确定将它放在logstash的输出中的什么位置?

请帮忙谢谢

0 投票
1 回答
449 浏览

csv - logstash:http 输入只需要第一行(带有 csv 过滤器)

我是 elk 堆栈的新手,并试图监视通过 http 发送的日志。我有以下logstash配置。但它只读取第一行并将第一行发送到弹性搜索,尽管我在我的 http POST 请求正文中发送了多行(我使用 chromes DHC 插件将 http 请求发送到 logstash)。请帮我阅读完整数据并将它们发送到弹性搜索。

示例数据:2015-08-24T05:21:40.468,352701060205140,ERROR,Colombo,ERR_01,INVALID_CARD,测试 POS 错误 2015-08-24T05:21:41.468,352701060205140,ERROR,Colombo,ERR_01,INVALID105POS 错误,测试-08-24T05:23:40.468,81021320,ERROR,Colombo,ERR_01,INVALID_CARD,测试 POS 错误 2015-08-25T05:23:50.468,352701060205140,ERROR,Colombo,ERR_02,TIME_OUT,测试 POS 错误

0 投票
0 回答
1041 浏览

ubuntu - 全新 ELK 在 Ubuntu 14.04 上安装,Kibana 返回连接被拒绝

运行 Ubuntu 14.04 服务器的新服务器。今天全新安装 ELK 堆栈。在家用 Ubuntu 机器上检查来自 Spyder 的 Elastic Search。结果(使用 Python 的 Requests 包):

但是,当我server_ip:5601通过 Chrome 访问时,连接被拒绝。当我向 Ubuntu 询问 Kibana 的状态时,它说正在运行。当我查看 netstat -lnp 时,端口 9200(elaticsearch)有一个条目(侦听),但端口 5601 没有条目。

我已经搜索并搜索了 Google,但找不到 Kibana 错误日志的位置。ElasticSearch 的日志中没有任何内容表明存在问题,显然我的家用机器可以通过服务器的 IP 看到 ES。我正在尝试从同一台服务器运行 Kibana。所以在 Kibana 的配置中:

首先,Kibana 日志在哪里?其次,关于为什么会发生这种情况的任何想法?我已经阅读了几个关于人们有类似错误消息的线程,但没有一个完全匹配。

我按照此页面安装 ELK: ELK on Ubuntu 14.04

但是,我跳过了 Nginx 安装并让 ES 在公共 IP 上可用。(使用 iptables 拒绝不是来自已知服务器的所有内容。但 iptables 目前是空的。)

--------- 编辑以澄清下面的评论 ----------

我对 ELK 堆栈的第一次尝试包括在 ElasticSearch 运行的同一台服务器上的 Kibana。但是,由于我希望 ElasticSearch 可用于我的家庭服务器,我告诉它监听服务器的公共 IP。所以我在该服务器上配置了 Kibana 以在服务器的 IP 上查找 ElasticSearch。

我测试了 ElasticSearch,并使用我的家庭服务器向其中添加了大约 3000 个文档。我也可以从家庭服务器中检索这些文档。所以我在家庭服务器上设置了 Kibana,看看它是否可以工作。如果 Kibana 在我的 LAN 服务器上工作,这表明简单的重新安装可能会修复 Kibana 在 WAN 服务器上的安装。或者可能是一些权限或安全问题。

WAN 服务器上的 Kibana 安装始终ERR_CONNECTION_REFUSED在 Chrome 中返回,并且仍然如此。我的 LAN 服务器上的 Kibana 安装显示 Kibana,但不允许我指定默认索引模式。我来到的第一页要求该模式,但没有保存模式的按钮。我试图通过高级设置添加模式,但它没有保存。

在 ElasticSearch 上运行_cat/indices会返回以下内容:

所以显然有一个.kibana索引以及我的visitors索引。我第一次运行这个 API 调用需要一段时间才能显示出来。然而,从那时起,这些指数上升得非常快。

----- 编辑 #2 ------

我现在尝试在我租用的另一台 WAN 服务器上安装 Kibana。结果与我的 LAN 服务器相同。它加载但仍然没有按钮来保存它。当我输入索引模式并点击返回右上方循环中的 3 个白点时。很长一段时间后,我收到“没有生活联系”错误。

它似乎无法连接到 ES,但我认为这确实是一个超时问题。从这个 WAN 服务器 #2 我可以卷曲 ES 并获得正确的响应,但这需要很长时间 - 甚至可能需要一整分钟。当我使用 curl 获取索引时,我没有计时,但似乎至少需要几分钟。

最重要的是,我一直想知道访问者指数。它有大约 3000 个条目,每个条目占用 3K 磁盘空间,因此总共大约 9M。但是,在索引中它们占用了超过 50M。

最后,虽然 ES 的一切似乎都在工作,但它也很慢。当我进行搜索时,我会在几秒钟后得到正确的答案。我的整个 WordPress 站点的加载速度(在 WAN 服务器 #2 上)比我获得 3K 的 JSON 文本的速度更快。(两个 WAN 服务器的规格相同 - 8 核 AMD、32 GB RAM、Ubuntu 14.04 和 100 Mbps 管道。)

-------- 编辑#3 --------

虽然我还没有找到解决方案,但我还有另一块拼图。DIgitalOcean 提供了一个随时可用的 ELK 堆栈,所以我得到了一个。它工作得很好,我可以在 Kibana 中看到数据,它看起来像本地服务器日志数据。伟大的!

但是,我随后更改了 ElasticSearch 集群名称并重新启动了 ES。然后 Kibana 看起来与我上面描述的问题相同,我无法定义默认索引模式。

所以我重新启动了机器。现在我得到一个502 Bad Gateway Error. 然后我将 ES 改回默认集群名称 - elasticsearch - 并重新启动。还是一个502

嗯。希望 DigitalOcean 的支持能够解决这个问题。

-------- 编辑#4 ---------

在这上面浪费了太多时间之后,我在 Ubuntu 14.04 上启动了一个 ELK 堆栈的 DigitalOcean 映像。一旦我在 elsaticsearch.yml 配置文件中更改了集群名称,即使这样也中断了。

但是,在 DO 支持的帮助下,我发现集群参数也需要添加到 logstash 配置文件中。因此,要使用 DO 的名为 snuggles 的集群示例:

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

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

/etc/elasticsearch/elasticsearch.yml:

这使它对 DO 的形象起作用。我假设该图像基于本教程: ELK on Ubuntu 14.04

我还没有让这个堆栈在任何其他机器上工作。Marvel 插件正在我原来的 - 非 DO - 服务器上工作,并显示一些关于集群的好数据...... 1。

0 投票
4 回答
14057 浏览

java - 无需解析日志即可从 Java 应用程序记录到 ELK

我想将日志从 Java 应用程序发送到 ElasticSearch,而传统的方法似乎是在运行应用程序的服务器上设置 Logstash,并让 Logstash 解析日志文件(使用正则表达式......!)并将它们加载到 ElasticSearch .

这样做是否有原因,而不仅仅是设置 log4J(或 logback)以将所需格式的内容直接记录到日志收集器中,然后可以异步发送到 ElasticSearch?当应用程序本身可以首先将其记录为所需的格式时,我不得不摆弄 grok 过滤器来处理多行堆栈跟踪(并在日志解析时消耗 CPU 周期),这对我来说似乎很疯狂?

在切线相关的说明中,对于在 Docker 容器中运行的应用程序,鉴于只需要运行一个进程,最佳实践是直接登录到 ElasticSearch 吗?