<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-2022-jp">
</head>
<body>
<pre style="word-wrap:break-word; font-size:10.0pt; font-family:Tahoma; color:black">It would appear that you have everything correct when the &quot;PROGRAM&quot; is ESXI but the log line as syslog-ng sees it has a PROGRAM of &quot;system&quot; according to your test log output.

If you change the patterndb ruleset pattern to use a program of system rather than ESXI I think it would work.


Evan Rempel   250.271.7691
University Systems, University of Victoria

不坏阿峰 &lt;onlydebian@gmail.com&gt; wrote:

</pre>
<div>
<div dir="ltr">
<div style="">when use pdbtool do match test, it is success. but from syslog-ng can not return result of macro&nbsp;</div>
<div style="">i can not get macro result. &nbsp;for example, &nbsp; ${.esxi.month} &nbsp;no value, same as ${.esxi.host_ip} ${.esxi.time}<br>
</div>
<div style=""><br>
</div>
<div style="">test log output ,just like this.</div>
<div style="">
<div>=== system,error,critical, &nbsp; HOST IP ,</div>
<div>=== system,error,critical, &nbsp; HOST IP ,</div>
<div>=== system,error,critical, &nbsp; HOST IP ,</div>
<div>=== system,error,critical, &nbsp; HOST IP ,</div>
<div>=== system,error,critical, &nbsp; HOST IP ,</div>
<div>=== system,error,critical, &nbsp; HOST IP ,</div>
<div>=== system,error,critical, &nbsp; HOST IP ,</div>
<div>=== system,error,critical, &nbsp; HOST IP ,</div>
<div>=== system,error,critical, &nbsp; HOST IP ,</div>
<div><br>
</div>
</div>
<div style=""><br>
</div>
<div style="">do the pdbtool test, it's ok. &nbsp;wish someone can give me some solution and help. i have search some mail list but i can not get the right solution. &nbsp;thanks a lot.</div>
<div style=""><br>
</div>
<div style="">
<div>root@debian:~# pdbtool match -D -c -p /etc/syslog-ng/patterndb/esxi_pattern.xml -P ESXI -M &quot;Apr 26 15:17:31 192.168.88.71 vmkernel: cpu11:8203)NMP: nmp_ThrottleLogForDevice:2319: Cmd 0x1a (0x4124444a6280, 0) to dev &quot;mpx.vmhba0:C0:T0:L0&quot; on path &quot;vmhba0:C0:T0:L0&quot;
 Failed: H:0x0 D:0x2 P:0x0 Valid sense data: 0x5 0x20 0x0. Act:NONE&quot;</div>
<div>Pattern matching part:</div>
<div>@STRING:.esxi.month=Apr@ @STRING:.esxi.date=26@ @STRING:.esxi.time=15:17:31@ @IPv4:.esxi.host_ip=192.168.88.71@@ESTRING:.esxi.program= vmkernel: cpu11:8203)NMP: nmp_ThrottleLogForDevice:2319: Cmd 0x1a (0x4124444a6280, 0) to dev mpx.vmhba0:C0:T0:L0 on path
 vmhba0:C0:T0:L0 Failed: H:0x0 D:0x2 P:0x0 Valid sense data: 0x5 0x20 0x0. Act:NONE@ @ANYSTRING:.esxi.message=cpu11:8203)NMP: nmp_ThrottleLogForDevice:2319: Cmd 0x1a (0x4124444a6280, 0) to dev mpx.vmhba0:C0:T0:L0 on path vmhba0:C0:T0:L0 Failed: H:0x0 D:0x2
 P:0x0 Valid sense data: 0x5 0x20 0x0. Act:NONE@</div>
<div>Matching part:</div>
<div>Apr 26 15:17:31 192.168.88.71 vmkernel: cpu11:8203)NMP: nmp_ThrottleLogForDevice:2319: Cmd 0x1a (0x4124444a6280, 0) to dev mpx.vmhba0:C0:T0:L0 on path vmhba0:C0:T0:L0 Failed: H:0x0 D:0x2 P:0x0 Valid sense data: 0x5 0x20 0x0. Act:NONE</div>
<div>Values:</div>
<div>MESSAGE=Apr 26 15:17:31 192.168.88.71 vmkernel: cpu11:8203)NMP: nmp_ThrottleLogForDevice:2319: Cmd 0x1a (0x4124444a6280, 0) to dev mpx.vmhba0:C0:T0:L0 on path vmhba0:C0:T0:L0 Failed: H:0x0 D:0x2 P:0x0 Valid sense data: 0x5 0x20 0x0. Act:NONE</div>
<div>PROGRAM=ESXI</div>
<div>.classifier.class=esxi</div>
<div>.classifier.rule_id=182437592347598</div>
<div>.esxi.month=Apr</div>
<div>.esxi.date=26</div>
<div>.esxi.time=15:17:31</div>
<div>.esxi.host_ip=192.168.88.71</div>
<div>.esxi.program= vmkernel</div>
<div>.esxi.message=cpu11:8203)NMP: nmp_ThrottleLogForDevice:2319: Cmd 0x1a (0x4124444a6280, 0) to dev mpx.vmhba0:C0:T0:L0 on path vmhba0:C0:T0:L0 Failed: H:0x0 D:0x2 P:0x0 Valid sense data: 0x5 0x20 0x0. Act:NONE</div>
<div>root@debian:~#</div>
<div><br>
</div>
</div>
<div style=""><br>
</div>
my configuration like as below
<div><br>
</div>
<div style="">######## &nbsp; esxi_pattern.xml ############</div>
<div>
<div>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;</div>
<div>&lt;patterndb version='3' pub_date='2009-04-17'&gt;</div>
<div>&lt;ruleset name='esxi' id='123456678'&gt;</div>
<div>&lt;pattern&gt;ESXI&lt;/pattern&gt;</div>
<div>&lt;rules&gt;</div>
<div>&lt;rule provider='Fone Bro' id='182437592347598' class='esxi'&gt;</div>
<div>&lt;patterns&gt;</div>
<div>&lt;pattern&gt;@STRING:.esxi.month:@ @STRING:.esxi.date:@ @STRING:.esxi.time::@ @IPv4:.esxi.host_ip:@@ESTRING:.esxi.program::@ @ANYSTRING:.esxi.message@&lt;/pattern&gt;</div>
<div>&lt;/patterns&gt;</div>
<div>&lt;/rule&gt;</div>
<div>&lt;/rules&gt;</div>
<div>&lt;/ruleset&gt;</div>
<div>&lt;/patterndb&gt;</div>
</div>
<div><br>
</div>
<div style="">######## syslog-ng.conf &nbsp; &nbsp; &nbsp;########</div>
<div>
<div><br>
</div>
<div>#####Parser#####</div>
<div>parser pattern_db {</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; db_parser( file(&quot;/etc/syslog-ng/patterndb/esxi_pattern.xml&quot;));</div>
<div>};</div>
<div><br>
</div>
<div>#Check pattern matching</div>
<div>destination udp_esxi_output {</div>
<div>&nbsp; &nbsp;file(&quot;/var/log/pattern_output&quot;</div>
<div>&nbsp; &nbsp;template(&quot;=== $PROGRAM,${.esxi_month} ${.esxi.date} ${.esxi.time} HOST IP ${.esxi.host_ip},${.esxi.message}\n&quot;)</div>
<div>template_escape(no));</div>
<div>};</div>
<div><br>
</div>
<div>#####Log#####</div>
<div>log {</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; source(s_network);</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; parser(pattern_db);</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; destination(udp_esxi_output);</div>
<div>};</div>
</div>
<div><br>
</div>
</div>
</div>
</body>
</html>