Articles of logstash

ELK与RabbitMQ进行大量消息传递/文档处理?

我一直在看ELK堆栈或RabbitMQ来取代一个自制的系统,摄取大量的文件(每小时200-300万),然后根据名称和内容将它们发送到各个位置,在本地存储一个副本。 (基本上,ELK) 不过,我在所需的复杂性和硬件足迹方面还有一点偏差。 RabbitMQ和ELK栈在这种任务上有什么优势? 在我看来,ELK可能是过分的,但我对RabbitMQ并不熟悉。

在logstash断开的pipe道前的HAProxy

我正在使用loadbalancing设置ELK堆栈。 Haproxy适用于ES和Kibana,但是我遇到了Logstash问题。 这是haproxyconfiguration: frontend logstash bind 0.0.0.0:5000 mode tcp option tcpka option tcplog log global acl epa hdr_beg(host) -i epa-log acl tgops hdr_beg(host) -i tgops-log use_backend epa_log if epa use_backend tgops_log if tgops backend epa_log mode tcp server elk01 elk01.example.org:5001 check server elk02 elk02.example.org:5001 check server elk03 elk03.example.org:5001 check backend tgops_log mode tcp server elk01 […]

代理之后的Logstash不起作用

我试图在代理之后启动几个Logstash实例。 我正在使用nginx,但HAProxy也是一个选项。 worker_processes 4; events { worker_connections 1024; } http { upstream streams { server logstash_ip:5044; } server { listen 80; location / { rewrite ^/(.*) /$1 break; proxy_ignore_client_abort on; proxy_pass http://streams; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; } } } logstash_ip是一个别名,它是可以parsing的。 问题是,当我将一些日志直接推送到logstash时 – 一切正常。 当我通过Nginx推送日志时,它失败了: 使用端口浏览Nginx会导致502网关错误 Logstash日志 发布事件(重试)时发生错误:lumberjack协议错误

Java进程在runit下过早重启

我试图运行Logitash监督与运行。 Logstash的运行脚本很简单 #!/bin/sh SSL_CERT_DIR=/etc/ssl/certs exec /usr/bin/java -jar /usr/local/bin/logstash.jar agent -f /tmp/logstash.conf –log /var/log/logstash.log 如果我手动运行这个脚本,过程需要30或45秒才能正常启动并开始工作,但是之后会持续几个小时。 但是,当我尝试做sv start logstash它执行脚本(和Logstash肯定启动,因为我看到输出写入/var/log/logstash.log),但15或20秒后似乎杀死并重新启动Logstash Java处理。 我已经尝试设置-w选项,但似乎不再等待进程运行。 我该如何让runit正确让这个Java进程进程运行,并且只有在它死亡时才重新启动呢?

Logstash没有正确处理MySQL日志

正如您所看到的,消息不仅仅是消息,还包含date和时间戳。 。 。 这是MySQL日志:/var/log/mysql/error.log 150630 9:01:29 [Warning] Access denied for user 'test1'@'localhost' (using password: YES) 150630 9:03:39 [Warning] Access denied for user 'test3'@'localhost' (using password: YES) 150630 9:07:48 [Warning] Access denied for user 'test5'@'localhost' (using password: YES) 150630 9:10:00 [Warning] Access denied for user 'test7'@'localhost' (using password: YES) 150630 9:12:21 [Warning] Access denied for user […]

解决rsyslog与ELK堆栈集成的问题

我正在尝试configurationrsyslog将日志发送到CentOS上的logstash。 所以我正在按照教程 。 然而,build立后,什么也没有发生。 一切都开始好,没有发生错误,但在elasticsearch没有日志。 这是我的/etc/rsyslog.conf : #### MODULES #### $ModLoad imuxsock # provides support for local system logging (eg via logger command) $ModLoad imjournal # provides access to the systemd journal #### GLOBAL DIRECTIVES #### # Where to place auxiliary files $WorkDirectory /var/lib/rsyslog # Use default timestamp format $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat # Include all config […]

直接pipe道到Logstash?

我希望像Nginx这样的服务器的日志数据直接通过networking进入Logstash。 Logstash内置了TCP和UDP套接字处理程序,这对于接收数据来说是完美的,但发送它是一个问题。 我知道有托运人,什么不是,但是不必pipe理磁盘上的日志对于这个日志数据不那么关键的项目(比如内部开发服务器)来说是好的。 有没有一个狡猾的方式,我可以创build一个套接字,但有一个Nginx将写入到其他任何日志文件的文件系统上的path? 假设这是可能的,我怎样才能configuration缓冲和重新连接? 我讨厌sockets死了,日志背压开始捆绑服务器进行日志logging。

Logstash:UNIX Epoch时间没有转换为可读格式

我已经build立了一个ELK堆栈,我正在尝试parsing鱿鱼日志条目。 我有一个问题试图将下面的UNIX / Epoc时间转换为 1442469455.757 以可读的格式。 在解决问题时,出现以下错误: 收到一个事件,该事件的字符编码与您configuration的不同。 而且这个标签带有"_dateparsefailure"标签,意味着它失败了。 我已经使用了下面的logstashfilter filter { if [type] == "squid" { grok { patterns_dir => [ "/etc/logstash/patterns" ] match => { message => "%{SQUID_LOG}" } } date { match => [ "timestamp", "UNIX" ] } } } 定义为与主要模式"%{SQUID_LOG}"中的时间戳匹配的正则expression式模式是: (%{DATA:timestamp}) 请让我知道是否有永久的解决scheme或解决方法。 提前致谢。 更新: 这似乎是由时间戳之后的额外空间引起的,如下所述: value=>"1438744871.647\\xA0\\xA0\\xA0\\xA0\\xA0", :exception=>"Invalid UNIX epoch value '1438744871.647\\xA0\\xA0\\xA0\\xA0\\xA0'", […]

logstash-forwarder是否有一个知名的端口?

我正在设置几个logstash-forwarder代理,它们会将日志发送到中央Logstash服务器,并且需要select一个Logstash端口进行监听。 在做了一些search之后,似乎没有关于这个端口号应该是什么的共识。 伐木工人协议没有一个众所周知的端口分配,据我所知。 我能find的最接近的是5000端口(例如, 这里 ),但这更像是一个教程,可以让你工作的快速端口。 有没有build立公约select这个端口号?

用日志文件交叉引用图表(例如munin)

是否有一个像穆宁(或一个插件)的图表包,让我点击一个图表时期,然后看到在那个时间框上的所有日志? 例如,如果我在12小时前看到磁盘I / O中的巨大峰值,我希望能够立即“放大”到/ var / log中的所有日志文件(以及任何自定义日志,如Web应用程序日志等)对于那个盒子,然后用一个checkbox或者其他东西一个接一个地关掉不相关的日志文件,直到我看到这个问题。 我在想一些Munin / Logstash混搭。 现在,我只是打开一个新的标签logstash并运行一个查询,它工作正常。 但是对于我来说,这种情况经常发生,所以我怀疑可能有更好的方法,我现在还不知道。