Articles of logstash

如何使用logstashparsingaudit.log

我想用logstash来收集日志文件,文件的格式是这样的: type=USER_START msg=audit(1404170401.294:157): user pid=29228 uid=0 auid=0 ses=7972 subj=system_u:system_r:crond_t:s0-s0:c0.c1023 msg='op=PAM:session_open acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success' 我应该用哪个filter来匹配这条线? 或者有另一种方式来处理它。 任何帮助,将不胜感激。 使用下面的模式来匹配grokdebugging器的行,但仍然得到一个No matches消息。 type=%{WORD:audit_type} msg=audit\(%{NUMBER:audit_epoch}:%{NUMBER:audit_counter}\): user pid=%{NUMBER:audit_pid} uid=%{NUMBER:audit_uid} auid=%{NUMBER:audit_audid} subj=%{WORD:audit_subject} msg=%{GREEDYDATA:audit_message} 但是,当我删除subj=%{WORD:audit_subject} msg=%{GREEDYDATA:audit_message} ,它成功,并得到这样的JSON对象。 { "audit_type": [ [ "USER_END" ] ], "audit_epoch": [ [ "1404175981.491" ] ], "BASE10NUM": [ [ "1404175981.491", "524", "1465", "0", "0" ] ], […]

如何使用input作为“文件”发送IP地址到logstash?

我发送几个日志logstash中央服务器使用另一个客户端logstash托运人。 inputtypes是“文件”。 邮件在服务器上收到,但它不反映客户端的IP地址。 它会在“@source_host”字段中发送主机名。 有什么我可以做的IP作为一个领域? 也许filter? 客户端conf: input { file { format => "plain" path => "/var/log/app/test1.txt" type => "start" } } output { redis { host => "test.example.com" data_type => "list" key => "logstash" } }

Logstash事件@timestamp调整

我有标准的Windows IIS日志文件与事件date/时间戳记信息和timetaken(以毫秒为单位)。 我希望能够通过减去“timetaken”来调整事件时间(@timestamp),以便能够logging事件何时开始,而不是什么时候完成。 我已经看过使用ruby插件,但我的ruby知识是零。 我的第一个尝试是这样的: ruby { code => "event['@timestamp_adj'] = (event['@timestamp'].to_f – (event['timetaken'].to_f/1000)))" } 但是,这将时间戳转换为数字,如何将其返回到date? 一些样本date:(与敏感数据的redactions和mangles) { "@timestamp" => "2015-10-22T22:59:49.000Z", "timestamp" => "2015-10-22 23:59:49", "method" => "GET", "page" => "/spacer.gif", "response" => "200", "timetaken" => "2120", "@timestamp_adj" => 1445554789.0 } 在这个(组成)的情况下,事件时间是22:59:49.000,花了2.120秒(2,120毫秒)来完成。 我想要的是@timestamp_adjlogging22:59:48.880 或者: 如何将现在的“数字”时间戳转换回Elasticsearch将识别的时间string? 或者如何做date/时间math而不破坏date/时间编码? 提前致谢。

每年翻转的logstash时间戳

我们使用logstash从我们的邮件服务器存储/search日志。 今天我注意到,今年(2015年)我们没有任何指数。 快速调查显示,当前的日志被存储为2014.01.05(即同一天,但去年),这些指数被寻找旧指数的cron作业删除。 重新启动logstash固定的东西,所以我假设logstash基于它开始的时间填入年份信息。 我们使用Elasticsearch 1.2.4运行Logstash 1.4.1。 所以不是Elasticsearch的最新版本,但是在1.4.2的更改日志中我没有看到任何相关内容。 日志条目将使用syslog-config以及input行和parsing输出的示例发送到logstash。 有没有更好的解决办法,而不是记得在元旦重新启动Logstash? input行的例子 Jan 5 15:03:35 cheviot22 exim[15034]: 1Y89Bv-0003uU-DD <= [email protected] H=adudeviis.ncl.ac.uk (campus) [10.8.232.56] P=esmtp S=2548 [email protected] { "_index": "logstash-2014.01.05", "_type": "mails", "_id": "HO0TQs66SA-1QkQBYd9Jag", "_score": null, "_source": { "@version": "1", "@timestamp": "2014-01-05T15:03:35.000Z", "type": "mails", "priority": 22, "timestamp": "Jan 5 15:03:35", "logsource": "cheviot22", "program": "exim", "pid": "15034", "severity": […]

Logstash Forwarder在CentOS 5中不能用chkconfig启动

我已经在CentOS 5机器上安装logstash-forwarder,从这个RPM安装它: http://download.elasticsearch.org/logstash-forwarder/packages/logstash-forwarder-0.3.1-1.x86_64.rpm 当我经历这个过程时,我发现为CentOS / RHEL / Fedora提供的初始化脚本没有按预期工作。 运行任何命令时,我都没有得到任何反馈给我的信息,也没有启动这个过程。 我发现别人有类似的问题,并写了自己的 , 这个脚本工作正常,当我启动logstash转发使用服务或init.d命令,但是,我注意到,当我重新启动服务器服务不启动 (以下是刚刚重启后): # service logstash-forwarder status logstash-forwarder dead but pid file exists # chkconfig –list logstash-forwarder logstash-forwarder 0:off 1:off 2:off 3:on 4:on 5:on 6:off 如果我然后手动启动,这一切工作正常。 一些研究告诉我,我应该在这里有一个文件(因为我使用运行级别3): # ls -la /etc/rc3.d/ | grep logstash lrwxrwxrwx 1 root root 28 Nov 5 12:33 S99logstash-forwarder -> ../init.d/logstash-forwarder […]

从systemd单元获取日志到平面文件和logstash

我正在CentOS 7下运行systemd下的应用程序。它logging到stdout,systemd正在将它捕获到journalctl中。 我也想: 得到一个旋转的文本日志文件也保存到本地文件系统熟悉我们的系统pipe理员 将这些数据干净地放到logstash中,理想情况下只是应用程序日志,而不是所有的syslog,其中还包括OS消息,其他应用程序等 我最初使用djb的daemontools中的multilog进行了研究,但是由于systemd中的单元文件并不喜欢ExecStart shellpipe道, ExecStart对于CentOS中的daemontools没有官方的RPM,所以我希望有一个不太复杂的方法。 我目前有从/var/log/messages和/var/log/secure logstash-forwarder读取系统日志,但我宁愿不包括从这个特定的应用程序以外的消息。

Logstash output-http插件错误500尝试发送到松弛webhook时

我正在运行一个ELK栈的docker容器。 各种各样的花花公子和罚款。 我想使用https://www.elastic.co/guide/en/logstash/current/plugins-outputs-http.html插件。 我安装它的插件: root@elk:/# /opt/logstash/bin/plugin install logstash-output-http Validating logstash-output-http Installing logstash-output-http Installation successful /etc/logstash/conf.d/logstash.conf主要的logstashconfiguration文件: input { beats { port => 5044 type => "logs" } } filter { grok { match => { "message" => "\"name\":\"Error\""} add_tag => ["error"] } } output { elasticsearch { hosts => "localhost:9200" sniffing => true manage_template => false […]

Logstash-forwarder正在抛出SSL错误

我把这个任务交给了我的同事,这就是背景。 他通过使用在服务器上configurationLogstash的常规方法和所有代理上的Logstash-forwarder,使ELK(Elasticsearch,Logstash和Kibana)堆栈与我们的RHEL 6.2服务器一起工作。 除了两个logstash代理节点之外,一切都按预期正常工作。 它不是从这两个节点索引数据,这两个代理节点与环境中的其他代理略有不同。 所有正在运行的代理正在运行带有“OpenSSL 1.0.0-fips”的RHEL 6.2机器,而两个麻烦的代理正在使用“OpenSSL 0.9.8e-fips-rhel5”运行RHEL 5.5。 现在让我来解释一下这两个节点在开始工作时面临的问题。 当我们用'/etc/init.d/logstash-forwarder restart'重新启动logstash forwarder服务时,会引发以下错误: 2014/10/01 09:21:23.898917与10.xxx握手失败x509:无法validation10.xxx的证书,因为它不包含任何IP SAN 2014/10/01 09:21:24.900502连接到[10 .xxx]:5000(10.xxx)2014/10/01 09:21:24.902081与10.xxx握手失败x509:无法validation10.xxx的证书,因为它不包含任何IP SAN 2014/10 / 01 09:21:25.903970连接到[10.xxx]:5000(10.xxx)2014/10/01 09:21:25.905708与10.xxx握手失败x509:无法validation10.xxx的证书,因为它没有不包含任何IP SAN 我知道这是因为代理尝试使用IP地址通过SSL连接到服务器,所以我再次使用IP SAN重新创build了证书,然后它开始抛出错误,不仅在5.2机器上,而且在6.2机器: 2014/10/03 17:09:12.403253与10.xxx x509握手失败:由未知权威机构签名的证书2014/10/03 17:09:13.404974连接到[10.xxx]:5000(10.xxx)2014 / 10/03 17:09:13.428156 10.xxx x509握手失败:由未知权威签名的证书2014/10/03 17:09:14.429648连接到[10.xxx]:5000(10.xxx)2014 / 10/03 17:09:14.442006与10.xxx x509握手失败:未知权威签署的证书 我尝试通过将新的logstash证书附加到CA文件中,将证书添加到ca-bundle.crt: 'openssl x509 -in certs / logstash-forwarder.crt -text >> certs / […]

Logstashdate错了吗?

我正在使用以下configurationparsingNginx日志到logstash中: input { stdin { type => "nginx"}} filter { grok { type => nginx pattern => "%{COMBINEDAPACHELOG}" } date { type => nginx match => [ "timestamp", "dd/MMM/YYYY:HH:mm:ss Z" ] } } output { stdout { debug => true debug_format => "ruby"}} 除了这个问题:当我传递一个@timestamp为“04 / Sep / 2012:12:44:16 -0500”的@timestamp ,我得到(结果时间戳)“2013-09-04T17:44:16.000Z ”。 错了一年。 这是一个错误?

后缀 – search电子邮件(logstash,greylog或其他解决scheme)

我们目前有大约100台服务器,并且都使用远程系统日志,所以我们已经将所有日志聚合在一台服务器上。 从我们的支持团队中最受质疑的问题是:是否有从…发送的电子邮件到达? 我想给我们的支持团队访问一些日志工具和一些日志search指南。 你会推荐我什么? 或者,你知道有其他的testing方法吗? grepping日志的问题是一行中没有发件人和收件人地址。 所以我认为,有可能通过电子邮件ID汇总。