Pra*_*era 6 svn elasticsearch logstash
我的要求是将 subversion 日志(即用户名、修订号...)发送到 logstash 进行解析(然后将其存储在弹性搜索中,最后通过 kibana 显示)。因为 subversion 使用自己的基于文件的数据库(FSFS)而不是纯文本文件,我有两个选择
我还考虑过提交后脚本,每当任何用户签入时,它都会触发它,然后将日志存储在文本文件中,但与第 1 点相同。
任何帮助/想法都非常感谢
编辑正如我在第 3 点中提到的,我们编写了这个小的 post-commit,这样每当用户签入时,我们就可以将元数据保存在某个文件中,然后通过 syslog 我们可以将此日志传输到 logstash 服务器。这种方法的最大缺点之一是我正在处理 TB 数据和每分钟 15+ 次签入,这个文件变得非常大(我们可以使用 logrotate)但同时面临锁定条件问题(因为多个用户尝试签入并写入同一个文件)这最终会导致竞争条件并使情况更糟。在下面粘贴提交后钩子,以便对其他人有用
#!/bin/sh
REPOS="$1"
REV="$2"
LOG="/tmp/svn.log"
var1=/usr/bin/svnlook info -r $REV $REPOS | tr '\n' '|'`
var2=/usr/bin/svnlook changed -r $REV $REPOS | tr '\n' ' '`
echo "r${REV}|${var1}|${var2}\n" | tee -a ${LOG} 2>&1
echo " " | tee -a ${LOG} 2>&1
Run Code Online (Sandbox Code Playgroud)
小智 0
一种可能是配置 Syslog 以接受颠覆日志并将其发送到logstash。
有用的链接
http://logstash.net/docs/1.1.9/outputs/syslog
http://linux.die.net/man/5/syslog.conf
http://www.commandlinefu.com/commands/view/11687/send-apache-log-to-syslog-ng