我想parsing一些自定义( networking设备 )系统日志文件来创build我自己的格式化输出。
由于我是syslog-ng&patterndb的新手,我一直在尝试使用文档来构build一个示例 – 到目前为止,我的工作是在这里: https : //gist.github.com/linickx/8002981
在这个例子中,我想读取syslog文件(testfile.log):
Accepted password for sampleuser from 10.50.0.247 port 42156 ssh2 Accepted password for user from 10.51.0.27 port 4256 ssh2
输出用户名和IP地址列表,如:
sampleuser; 10.50.0.247; user; 10.51.0.27;
parsing日志文件我创build了以下patterndb(example.xml):
<patterndb version='4' pub_date='2010-10-17'> <ruleset name='ssh' id='123456678'> <pattern>ssh</pattern> <rules> <rule provider='me' id='182437592347598' class='system'> <patterns> <pattern>Accepted @ESTRING:SSH.AUTH_METHOD: @for @ESTRING:SSH_USERNAME: @from @ESTRING:SSH_CLIENT_ADDRESS: @port @NUMBER:SSH_PORT_NUMBER:@ ssh2</pattern> </patterns> <examples> <example> <test_message program="ssh">Accepted password for sampleuser from 10.50.0.247 port 42156 ssh2</test_message> <test_values> <test_value name="SSH.AUTH_METHOD">password</test_value> <test_value name="SSH_USERNAME">sampleuser</test_value> <test_value name="SSH_CLIENT_ADDRESS">10.50.0.247</test_value> <test_value name="SSH_PORT_NUMBER">42156</test_value> </test_values> </example> </examples> </rule> </rules> </ruleset> </patterndb>
但是,当我在我的syslog-ng.conf中使用SSH_USERNAME&SSH_CLIENT_ADDRESSvariables时
destination test_output { file("/home/nick/output.log" template("${SSH_USERNAME}; ${SSH_CLIENT_ADDRESS}; \n") template_escape(no) ); };
– [完整版可以在GIST中看到] –
输出文件(output.log)是空的
; ; ; ;
是否有一些层次结构或特殊的方式来使用syslog-ng.conf中我缺less的自定义或patterndbvariables?
提前致谢!