Thanks a lot.  That seems to have worked a lot better but has introduced another problem.  The messages are split up into too many lines and, when there is a match, the first of N lines are removed, still creating unwanted messages.<br>

<br>For example, a pretty small insert spans 3 lines... There was a match on the 2nd line, so it is not printed.  However, the 1st and 3rd were.<br><br>2009-09-29T16:21:16-04:00 blahh-rep2 postgres [10440-1] postgres-blahh-10.100.10.34(15779)-4690-2009-09-29 16:21:16 EDT-LOG:  statement: insert into<br>

2009-09-29T16:21:16-04:00 blahh-rep2 postgres [10440-3]  &#39;1000000000000000&#39;);<br><br>I played around with log_msg_size thinking I could control how much is on each line, but it didn&#39;t help.  Am I missing something obvious?  If a &quot;fragment&quot; of the message is matched, I would want the entire message to not be logged.  <br>

<br>Honestly, I have not spent nearly as much time on this most recent problem, so if it is an RTFM situation, just let me know.  I did do some reading and searching on this though and came up empty handed.<br><br>Thanks again for this great help,<br>

James<br><br><div class="gmail_quote">On Tue, Sep 29, 2009 at 3:43 PM, Evan Rempel <span dir="ltr">&lt;<a href="mailto:erempel@uvic.ca">erempel@uvic.ca</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

PostgeSQL can log to syslog using appropriately formated messages.<br>
Configure your postgresql.conf file to include the line<br>
<br>
log_destination = &#39;syslog&#39;<br>
<br>
and then you will get lines in syslog like;<br>
<br>
2009-09-29T12:42:10-07:00 hostname facility.level postgres[20288]: [32-1] postgresql statement<br>
<br>
then all of the syslog-ng parsing, macros and templates will work correctly.<br>
<br>
Evan.<br>
<div class="im"><br>
James Kelly wrote:<br>
&gt; Thanks.  This is exactly what is happening.  If, using a template, I<br>
&gt; just use $PROGRAM, I get a bunch of lines with just &quot;insert&quot;.<br>
&gt;<br>
&gt; If I use something like the following:<br>
&gt;<br>
&gt; template t_postgres_msgs {<br>
&gt;              template(&quot;$ISODATE $HOST $PROGRAM $MSG \n&quot;); };<br>
&gt;<br>
&gt; I no longer see the colons.  However, if something is matched by the<br>
&gt; filter, it still prints a blank message (hence, wasting a ton of space<br>
&gt; and clogging up the logs).  For example, this is what I get instead of<br>
&gt; the matched sql statement:<br>
&gt;<br>
&gt; 2009-09-29T10:30:30-04:00 hcdb1-rep2<br>
&gt;<br>
&gt; I thought the filter would just &quot;trash&quot; or not record the message at<br>
&gt; all, not print the host and timestamp for each filtered message.<br>
&gt;<br>
&gt; Thanks a lot...  I appreciate this help a lot.<br>
&gt; James<br>
&gt;<br>
&gt; On Tue, Sep 29, 2009 at 10:05 AM, Srinivasan Sreenivasan<br>
&gt; &lt;<a href="mailto:srinivasan.srinivasan@sabre.com">srinivasan.srinivasan@sabre.com</a><br>
</div><div class="im">&gt; &lt;mailto:<a href="mailto:srinivasan.srinivasan@sabre.com">srinivasan.srinivasan@sabre.com</a>&gt;&gt; wrote:<br>
&gt;<br>
&gt;     I think Syslog-ng thinks insert is a program name. Use a template<br>
&gt;     with $PROGRAM in it to see if it prints “insert” to confirm this.<br>
&gt;<br>
&gt;     Solution:<br>
&gt;     Send a program name before your sql statement using a template.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;     On 9/29/09 8:57 AM, &quot;James Kelly&quot; &lt;<a href="mailto:james.kelly@hmsinc.com">james.kelly@hmsinc.com</a><br>
</div><div><div></div><div class="h5">&gt;     &lt;mailto:<a href="mailto:james.kelly@hmsinc.com">james.kelly@hmsinc.com</a>&gt;&gt; wrote:<br>
&gt;<br>
&gt;         Hello,<br>
&gt;<br>
&gt;         I am attempting to implement syslog-ng on our servers hosting<br>
&gt;         postgresql databases.  The general idea is to log &quot;too much&quot; at<br>
&gt;         the database level and then, using syslog filters, reduce it to<br>
&gt;         the information we want to actually hold in the syslog and send<br>
&gt;         to the log server.  So far I am extremely pleased with how easy<br>
&gt;         it is to implement and well documented.  However, I do have one<br>
&gt;         problem that is making it difficult to use.<br>
&gt;<br>
&gt;         The problem is for each message that the filter matches, it does<br>
&gt;         not completely drop the message.. rather, it logs the date /<br>
&gt;         server / and a colon:<br>
&gt;<br>
&gt;         For example, this is what I get for a message that is matched by<br>
&gt;         a filter:<br>
&gt;<br>
&gt;         &quot;Sep 29 09:43:29 hcdb1-rep2      :&quot;<br>
&gt;<br>
&gt;         I notice that even with the unmatched statements, there is a<br>
&gt;         colon.  For example, in the postgresql log, I see:<br>
&gt;<br>
&gt;         insert into &quot;public&quot;.&quot;table&quot;(blah,blah,blah) values<br>
&gt;         (blah,blah,blah);<br>
&gt;<br>
&gt;         but the same message once captured from syslog shows the<br>
&gt;         following in the log and logserver:<br>
&gt;<br>
&gt;         Sep 29 09:43:29 hcdb1-rep2      insert: into<br>
&gt;         &quot;public&quot;.&quot;table&quot;(blah,blah,blah) values (blah,blah,blah);<br>
&gt;<br>
&gt;         *Note the colon after &quot;insert&quot;.*  I can&#39;t seem to figure out<br>
&gt;         where this is coming from or how to avoid it.  It also causes<br>
&gt;         some filtering problems that I won&#39;t go into here so as to not<br>
&gt;         confuse the issues, but safe to say it is also related to the colon.<br>
&gt;<br>
&gt;         I have spent a lot of time trying to figure this out and am at a<br>
&gt;         dead-end.  Due to the amount of messages I need to filter out<br>
&gt;         (below is just one of the many filters I need to put in and have<br>
&gt;         tested with the same result), not being able to completely<br>
&gt;         filter these out is a killer.<br>
&gt;<br>
&gt;         I am using the 3.0.4 open-source edition on Ubuntu 8.  Here is<br>
&gt;         my config:<br>
&gt;<br>
&gt;         ******************************************************************************************<br>
&gt;         @version: 3.0<br>
&gt;<br>
&gt;         options {<br>
&gt;         };<br>
&gt;<br>
&gt;         ######<br>
&gt;         # sources<br>
&gt;         source s_local {<br>
&gt;         # message generated by Syslog-NG<br>
&gt;         internal();<br>
&gt;         # standard Linux log source (this is the default place for the<br>
&gt;         syslog()<br>
&gt;         # function to send logs to)<br>
&gt;         unix-stream(&quot;/dev/log&quot;);<br>
&gt;         # messages from the kernel<br>
&gt;         file(&quot;/proc/kmsg&quot; program_override(&quot;kernel: &quot;));<br>
&gt;         file(&quot;/var/log/postgresql/postgresql-8.3-main.log&quot;);<br>
&gt;         };<br>
&gt;<br>
&gt;<br>
&gt;         ######<br>
&gt;         # destinations<br>
&gt;         destination d_messages { file(&quot;/var/log/messages&quot;); };<br>
&gt;<br>
&gt;         #####<br>
&gt;         # filters<br>
&gt;<br>
&gt;         filter f_inserts2 {<br>
&gt;                 not match(&quot;_health_central&quot; value(&quot;MESSAGE&quot;));<br>
&gt;         };<br>
&gt;<br>
&gt;<br>
&gt;         destination d_logserver { tcp(&quot;<a href="http://internal.host.com" target="_blank">internal.host.com</a><br>
</div></div>&gt;         &lt;<a href="http://internal.host.com" target="_blank">http://internal.host.com</a>&gt; &lt;<a href="http://internal.host.com" target="_blank">http://internal.host.com</a>&gt; &quot;); };<br>
<div class="im">&gt;<br>
&gt;<br>
&gt;<br>
&gt;         log {<br>
&gt;         source(s_local);<br>
&gt;         filter(f_inserts2);<br>
&gt;         destination(d_messages);<br>
&gt;         #destination(d_logserver);<br>
&gt;         };<br>
&gt;         ******************************************************************************************<br>
&gt;<br>
&gt;         Thanks!<br>
&gt;         James Kelly<br>
&gt;<br>
&gt;         ------------------------------------------------------------------------<br>
&gt;         ______________________________________________________________________________<br>
&gt;         Member info: <a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a><br>
&gt;         Documentation:<br>
&gt;         <a href="http://www.balabit.com/support/documentation/?product=syslog-ng" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a><br>
&gt;         FAQ: <a href="http://www.campin.net/syslog-ng/faq.html" target="_blank">http://www.campin.net/syslog-ng/faq.html</a><br>
&gt;<br>
&gt;<br>
&gt;     ______________________________________________________________________________<br>
&gt;     Member info: <a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a><br>
&gt;     Documentation:<br>
&gt;     <a href="http://www.balabit.com/support/documentation/?product=syslog-ng" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a><br>
&gt;     FAQ: <a href="http://www.campin.net/syslog-ng/faq.html" target="_blank">http://www.campin.net/syslog-ng/faq.html</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
<br>
<br>
</div><font color="#888888">--<br>
Evan Rempel                               <a href="mailto:erempel@uvic.ca">erempel@uvic.ca</a><br>
Senior Programmer Analyst                    250.721.7691<br>
Unix Services, University Systems, University of Victoria<br>
</font><div><div></div><div class="h5">______________________________________________________________________________<br>
Member info: <a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a><br>
Documentation: <a href="http://www.balabit.com/support/documentation/?product=syslog-ng" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a><br>
FAQ: <a href="http://www.campin.net/syslog-ng/faq.html" target="_blank">http://www.campin.net/syslog-ng/faq.html</a><br>
<br>
</div></div></blockquote></div><br>