<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.chepkov.com/w/index.php?action=history&amp;feed=atom&amp;title=RSyslog</id>
	<title>RSyslog - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.chepkov.com/w/index.php?action=history&amp;feed=atom&amp;title=RSyslog"/>
	<link rel="alternate" type="text/html" href="https://www.chepkov.com/w/index.php?title=RSyslog&amp;action=history"/>
	<updated>2026-04-28T17:22:15Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://www.chepkov.com/w/index.php?title=RSyslog&amp;diff=229&amp;oldid=prev</id>
		<title>Vvc at 21:09, 3 February 2009</title>
		<link rel="alternate" type="text/html" href="https://www.chepkov.com/w/index.php?title=RSyslog&amp;diff=229&amp;oldid=prev"/>
		<updated>2009-02-03T21:09:44Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__TOC__&lt;br /&gt;
===Write syslog into Postgres database===&lt;br /&gt;
* create &amp;#039;&amp;#039;&amp;#039;syslog&amp;#039;&amp;#039;&amp;#039; table&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TABLE syslog&lt;br /&gt;
(&lt;br /&gt;
        id SERIAL PRIMARY KEY,&lt;br /&gt;
        host VARCHAR(32) NULL,&lt;br /&gt;
        facility VARCHAR(10) NULL,&lt;br /&gt;
        priority VARCHAR(10) NULL,&lt;br /&gt;
        tag VARCHAR(32) NULL,&lt;br /&gt;
        timestamp TIMESTAMP WITHOUT TIME ZONE NULL,&lt;br /&gt;
        message TEXT&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* create user id and grant permissions to insert new entries&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE USER sysuser PASSWORD &amp;#039;syspass&amp;#039;;&lt;br /&gt;
GRANT INSERT ON syslog TO sysuser;&lt;br /&gt;
GRANT SELECT,UPDATE ON syslog_id_seq TO sysuser;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* install &amp;#039;&amp;#039;&amp;#039;rsyslog-pgsql&amp;#039;&amp;#039;&amp;#039; package&lt;br /&gt;
----&lt;br /&gt;
rsyslog configuration by default is in &amp;#039;&amp;#039;&amp;#039;/etc/rsyslog.conf&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
----&lt;br /&gt;
* enable postrges support&lt;br /&gt;
 $ModLoad ompgsql.so&lt;br /&gt;
* enable logging from remote hosts if needed&lt;br /&gt;
 $ModLoad imudp.so&lt;br /&gt;
 $UDPServerRun 514&lt;br /&gt;
* add sql statement template&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$template syslogSQL,&amp;quot;insert into syslog (host,facility,priority,tag,timestamp,message) \&lt;br /&gt;
values (&amp;#039;%HOSTNAME%&amp;#039;,&amp;#039;%syslogfacility-text%&amp;#039;,&amp;#039;%syslogpriority-text%&amp;#039;,&amp;#039;%syslogtag:F,58:1%&amp;#039;,&amp;#039;%timereported:::date-pgsql%&amp;#039;,&amp;#039;%msg%&amp;#039;)&amp;quot;,stdsql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* set secure permission on configuration file, since we are going to store password to access postgres database there&lt;br /&gt;
 chmod 600 /etc/rsyslog.conf&lt;br /&gt;
* add action statement &lt;br /&gt;
 *.*      :ompgsql:localhost,syslogdb,sysuser,syspass;syslogSQL&lt;br /&gt;
* add the following configuration to ensure log entries will be preserved if database was busy of temporary unavailable&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$WorkDirectory /var/lib/rsyslog # where to place spool files&lt;br /&gt;
$ActionQueueFileName dbq      # unique name prefix for spool files&lt;br /&gt;
$ActionQueueMaxDiskSpace 512M   # 512M space limit (use as much as possible)&lt;br /&gt;
$ActionQueueSaveOnShutdown on # save messages to disk on shutdown&lt;br /&gt;
$ActionQueueType LinkedList   # run asynchronously&lt;br /&gt;
$ActionResumeRetryCount -1    # infinite retries if host is down&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* create spool directory&lt;br /&gt;
 mkdir /var/lib/rsyslog&lt;br /&gt;
* if you use [http://www.nsa.gov/research/selinux/ SELinux], you might need to change your local policy&lt;br /&gt;
:* local.te&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
type rsyslog_var_lib_t;&lt;br /&gt;
files_type(rsyslog_var_lib_t);&lt;br /&gt;
&lt;br /&gt;
manage_files_pattern(syslogd_t, rsyslog_var_lib_t, rsyslog_var_lib_t)&lt;br /&gt;
manage_dirs_pattern(syslogd_t, rsyslog_var_lib_t, rsyslog_var_lib_t)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:* local.fc&lt;br /&gt;
 /var/lib/rsyslog(/.*)?          gen_context(system_u:object_r:rsyslog_var_lib_t,s0)&lt;br /&gt;
:* fix security context&lt;br /&gt;
 restorecon -vR /var/lib/rsyslog&lt;br /&gt;
* start using rsyslog&lt;br /&gt;
 service rsyslog start&lt;br /&gt;
* add a maintenance script which will remove old entries, for example&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
 DELETE FROM syslog WHERE timestamp &amp;lt; LOCALTIMESTAMP - INTERVAL &amp;#039;30 days&amp;#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Write syslog entries from a host to a separate file===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Router&lt;br /&gt;
:FROMHOST, isequal, &amp;quot;vzrouter&amp;quot;     -/var/log/vzrouter.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;&amp;#039;-&amp;#039;&amp;lt;/tt&amp;gt; in front of a log file name instructs rsyslog to omit syncing the file after every logging&lt;br /&gt;
* Don&amp;#039;t forget to add &amp;#039;&amp;#039;&amp;#039;/var/log/vzrouter.log&amp;#039;&amp;#039;&amp;#039; into &amp;#039;&amp;#039;&amp;#039;/etc/logrotate.d/syslog&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Vvc</name></author>
	</entry>
</feed>