假设我有一个logstash服务器塞满了日志被定期加载,是否有一个相当优雅的方式,我可以尾随Logstash服务器上的连续执行查询的结果,并显示在terminal窗口 例如 some-special-logstash-command.sh | egrep -v "(searchword1|searchword2)" 这个想法是,命令pipe道的东西超出logstash和我的grep查询filter,并显示我的过滤输出。 ..当然,如果有一个logstash命令可以为我做的grep片,那么也工作:) 这样做的动机是,假设我所有的事件都来自我的房地产正在加载到logstash,那么将有一个terminal窗口连续尾部的有趣的事件,因为他们发生滚动屏幕。 -高手
我正在对Apache日志进行一些分析。 我们的日志碰巧捕获了浏览器与之通信的cookie,并且将其与请求一起logging下来。 现在我可以导入这个很长的string,但是我想知道是否有一种方法,每行都有一个可变长度的数组,可以让我search或执行单个cookie的相关性。 所以,基于这条消息线 "message" => "xxxx – – [30/Oct/2014:20:05:01 -0400] \"GET /js/plugins/backbone/backbone.modelbinding.min.js HTTP/1.1\" 304 – \"https://www.website.com/view/home\" \"Mozilla/4.0 ( compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729)\" \"AUSERID=5286; SERVICEID=08130xx; JSESSIONID=xxxx; AgencyUserSession=xxxx; _ga=GA1.2.xxx; __utma=xxx ;" + 304/304 1146/213/0 29420/47188900045680 0/5011 -/-/- \"xxxx|-|-|xxxx\"", 我可以parsing出这个cookie,并把它放在它自己的字段中。 但是有没有办法让我分解键/值对并将它们存储在与日志行条目相关的数组中? […]
使用logstash 1.4.2在单独的服务器上推送到弹性search1.1.1实例。 从AWS SQS中提取日志项目。 一切工作正常前几个小时左右,但接下来开始出现在logstash日志。 :message=>"Error reading SQS queue.", :error=>#<OpenSSL::SSL::SSLError: Socket closed> 只要这些错误中的第一个出现,logstash清空队列的速度就会变慢。 最终,当更多的错误出现时,它会完全停止。 java进程托pipelogstash继续运行,没有问题。 在m3.xlarge实例中,CPU消耗量保持在30%左右,所以似乎有足够的马力。 这听起来像一个错误,或者有什么我需要做,以防止套接字丢失或让logstash重新打开它们?
我在我的机器上安装了Java 7和Java 8,当我更改环境variables时,java -version返回正确的版本。 当我去使用deb安装Logstash时,我收到以下消息: dpkg: dependency problems prevent configuration of logstash: logstash depends on java7-runtime-headless | java6-runtime-headless | j2re1.7; however: Package java7-runtime-headless is not installed. Package java6-runtime-headless is not installed. Package j2re1.7 is not installed. dpkg: error processing package logstash (–install): dependency problems – leaving unconfigured Processing triggers for ureadahead (0.100.0-16) … ureadahead will […]
我一直试图通过已经格式化为JSON的Windows应用程序将日志通过NXlog传递给logstash。 当我有NXLOG发送文件到Logstash,我得到了在logstash.log错误爆炸: :message=>"An error occurred. Closing connection", :client=>"10.xxx.xxx.147:61047", :exception=>#<IndexError: string not matched> 错误全文: {:timestamp=>"2015-04-25T15:15:37.084000-0900", :message=>"An error occurred. Closing connection", :client=>"10.xxx.xxx.147:61047", :exception=>#<IndexError: string not matched>, :backtrace=>["org/jruby/RubyString.java:3910:in `[]='", "/opt/logstash/lib/logstash/event.rb:62:in `initialize'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-codec-json_lines-0.1.6/lib/logstash/codecs/json_lines.rb:37:in `decode'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-codec-line-0.1.5/lib/logstash/codecs/line.rb:36:in `decode'", "org/jruby/RubyArray.java:1613:in `each'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-codec-line-0.1.5/lib/logstash/codecs/line.rb:35:in `decode'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-codec-json_lines-0.1.6/lib/logstash/codecs/json_lines.rb:35:in `decode'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-input-tcp-0.1.3/lib/logstash/inputs/tcp.rb:116:in `handle_socket'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-input-tcp-0.1.3/lib/logstash/inputs/tcp.rb:145:in `client_thread'", "/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-input-tcp-0.1.3/lib/logstash/inputs/tcp.rb:143:in `client_thread'"], :level=>:error} {:timestamp=>"2015-04-25T15:15:38.097000-0900", :message=>"JSON parse failure. Falling back to plain-text", :error=>#<LogStash::Json::ParserError: Unexpected […]
我正在尝试处理logstash中的一个nginx访问日志 。 为了让我的时间戳获得毫秒级的准确度,我使用了$msecvariables。 这意味着时间戳的格式1430832725.814 ,其中整数部分是UNIX时间戳,小数部分以毫秒为单位。 不幸的是,我找不到可以parsingUNIX时间戳的logstashdate格式 。 有没有另一种方法让nginx以毫秒的精度进行logging? 或者一种获取logstashdatefilter来parsingUNIX时间戳的方法?
我正在尝试使用结构化数据logging消息。 但是它显示结构化数据的空值。 我正在与rsyslog 8.9.0.Can有人告诉我要么加载一些模块或修改源获取结构数据SD-ID在logging的消息。 #Template: "<%PRI%>%TIMESTAMP:::daterfc3339%%HOSTNAME%%syslogtag%%APPNAME%%PROCID% %MSGID% %msg% %STRUCTURED-DATA%\n” 获取消息格式如下: <142> 2015-01-29T06:43:53.081641-05:00 localhost login[2116]: login 2116 – [2116 : 2116 INFO]SERIAL Login from IP:127.0.0.1 user:admin – configuration文件–rsyslog.conf: $ModLoad imuxsock # provides support for local system logging $ModLoad imklog # provides kernel logging support (previously done by rklogd) $ModLoad mmpstrucdata $ModLoad mmrfc5424addhmac GLOBAL DIRECTIVES $ActionFileDefaultTemplate RSYSLOG_DebugFormat […]
我所看到的问题似乎与https://logstash.jira.com/browse/LOGSTASH-1892类似,但是我在Logstash-shipper 1.4.2上运行,本页声称这个问题在1.4.1中得到解决。 在这里看到一个截图: 。
写这个的时候,我解决了自己的问题。 所以我会把这个问题和答案,以帮助别人(如果有人想指出一个更好的方法): 我试图让人试图重新启动服务之前在远程主机上运行configurationtesting。 在这种情况下,服务是logstash。 我开始了一个同步configuration的任务,并且在configuration被同步时通知了一个处理程序。 但现在我想同步configuration,如果同步configuration远程testingconfiguration,如果通过(logstash代理-f conf.d / – configtestconfiguration通过时退出0,非0时,它不)然后重新启动该服务。 到目前为止,我已经提出了这个[更新和现在工作]: – name: Logstash configuration synchronize: src="{{ files }}/etc/logstash" dest=/etc/ register: logstash_conf_changed tags: [logstash, logstash-conf, conf] – name: Logstash conftest command: /opt/logstash/bin/logstash agent -f /etc/logstash/conf.d –configtest when: logstash_conf_changed is defined notify: – Logstash restart tags: [logstash, logstash-conf, conf] 处理程序很简单: – name: Logstash restart service: name=logstash […]
我正在使用以下logstashconfiguration文件来请求和分析来自服务器的xml响应: input { exec { command => "/usr/bin/curl -s http://%{host}/api/messages" interval => 10 type => "mytype" } } filter { if [type] == "mytype" { xml { source => "message" } } } 从几台服务器获得这个响应的最好方法是什么,并用它们的IP在这个日志条目中正确标记主机variables?