From 935a9eef5770a4a298d1ccefab59e3863210fc68 Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Tue, 14 Jul 2009 16:57:49 +0200 Subject: added tcp output rebinding option. added tcp output rebinding option. needs some more testing and doc --- tcpclt.c | 14 ++++++++++++++ tcpclt.h | 6 +++++- tools/omfwd.c | 6 ++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/tcpclt.c b/tcpclt.c index c53f00f7..617aaef6 100644 --- a/tcpclt.c +++ b/tcpclt.c @@ -297,6 +297,12 @@ Send(tcpclt_t *pThis, void *pData, char *msg, size_t len) CHKiRet(TCPSendBldFrame(pThis, &msg, &len, &bMsgMustBeFreed)); + if(pThis->iRebindInterval > 0 && ++pThis->iNumMsgs == pThis->iRebindInterval) { + /* we need to rebind, and use the retry logic for this*/ + CHKiRet(pThis->prepRetryFunc(pData)); /* try to recover */ + pThis->iNumMsgs = 0; + } + while(!bDone) { /* loop is broken when send succeeds or error occurs */ CHKiRet(pThis->initFunc(pData)); iRet = pThis->sendFunc(pData, msg, len); @@ -388,6 +394,13 @@ SetFraming(tcpclt_t *pThis, TCPFRAMINGMODE framing) pThis->tcp_framing = framing; RETiRet; } +static rsRetVal +SetRebindInterval(tcpclt_t *pThis, int iRebindInterval) +{ + DEFiRet; + pThis->iRebindInterval = iRebindInterval; + RETiRet; +} /* Standard-Constructor @@ -445,6 +458,7 @@ CODESTARTobjQueryInterface(tcpclt) pIf->SetSendFrame = SetSendFrame; pIf->SetSendPrepRetry = SetSendPrepRetry; pIf->SetFraming = SetFraming; + pIf->SetRebindInterval = SetRebindInterval; finalize_it: ENDobjQueryInterface(tcpclt) diff --git a/tcpclt.h b/tcpclt.h index 1d704044..5a8eba75 100644 --- a/tcpclt.h +++ b/tcpclt.h @@ -36,6 +36,8 @@ typedef struct tcpclt_s { short bResendLastOnRecon; /* should the last message be resent on a successful reconnect? */ size_t lenPrevMsg; /* session specific callbacks */ + int iRebindInterval; /* how often should the send socket be rebound? */ + int iNumMsgs; /* number of messages during current "rebind session" */ rsRetVal (*initFunc)(void*); rsRetVal (*sendFunc)(void*, char*, size_t); rsRetVal (*prepRetryFunc)(void*); @@ -55,8 +57,10 @@ BEGINinterface(tcpclt) /* name must also be changed in ENDinterface macro! */ rsRetVal (*SetSendFrame)(tcpclt_t*, rsRetVal (*)(void*, char*, size_t)); rsRetVal (*SetSendPrepRetry)(tcpclt_t*, rsRetVal (*)(void*)); rsRetVal (*SetFraming)(tcpclt_t*, TCPFRAMINGMODE framing); + /* v3, 2009-07-14*/ + rsRetVal (*SetRebindInterval)(tcpclt_t*, int iRebindInterval); ENDinterface(tcpclt) -#define tcpcltCURR_IF_VERSION 2 /* increment whenever you change the interface structure! */ +#define tcpcltCURR_IF_VERSION 3 /* increment whenever you change the interface structure! */ /* prototypes */ diff --git a/tools/omfwd.c b/tools/omfwd.c index d207cce5..fe65f515 100644 --- a/tools/omfwd.c +++ b/tools/omfwd.c @@ -90,6 +90,7 @@ typedef struct _instanceData { char *port; int protocol; int iUDPRebindInterval; /* rebind interval */ + int iTCPRebindInterval; /* rebind interval */ int nXmit; /* number of transmissions since last (re-)bind */ # define FORW_UDP 0 # define FORW_TCP 1 @@ -104,6 +105,7 @@ static short iStrmDrvrMode = 0; /* mode for stream driver, driver-dependent (0 m static short bResendLastOnRecon = 0; /* should the last message be re-sent on a successful reconnect? */ static uchar *pszStrmDrvrAuthMode = NULL; /* authentication mode to use */ static int iUDPRebindInterval = 0; /* support for automatic re-binding (load balancers!). 0 - no rebind */ +static int iTCPRebindInterval = 0; /* support for automatic re-binding (load balancers!). 0 - no rebind */ static permittedPeers_t *pPermPeers = NULL; @@ -643,6 +645,7 @@ CODE_STD_STRING_REQUESTparseSelectorAct(1) /* copy over config data as needed */ pData->iUDPRebindInterval = iUDPRebindInterval; + pData->iTCPRebindInterval = iTCPRebindInterval; /* process template */ CHKiRet(cflineParseTemplateName(&p, *ppOMSR, 0, OMSR_NO_RQD_TPL_OPTS, @@ -657,6 +660,7 @@ CODE_STD_STRING_REQUESTparseSelectorAct(1) CHKiRet(tcpclt.SetSendFrame(pData->pTCPClt, TCPSendFrame)); CHKiRet(tcpclt.SetSendPrepRetry(pData->pTCPClt, TCPSendPrepRetry)); CHKiRet(tcpclt.SetFraming(pData->pTCPClt, tcp_framing)); + CHKiRet(tcpclt.SetRebindInterval(pData->pTCPClt, pData->iTCPRebindInterval)); pData->iStrmDrvrMode = iStrmDrvrMode; if(pszStrmDrvr != NULL) CHKmalloc(pData->pszStrmDrvr = (uchar*)strdup((char*)pszStrmDrvr)); @@ -728,6 +732,7 @@ static rsRetVal resetConfigVariables(uchar __attribute__((unused)) *pp, void __a iStrmDrvrMode = 0; bResendLastOnRecon = 0; iUDPRebindInterval = 0; + iTCPRebindInterval = 0; return RS_RET_OK; } @@ -742,6 +747,7 @@ CODEmodInit_QueryRegCFSLineHdlr CHKiRet(objUse(net,LM_NET_FILENAME)); CHKiRet(regCfSysLineHdlr((uchar *)"actionforwarddefaulttemplate", 0, eCmdHdlrGetWord, NULL, &pszTplName, NULL)); + CHKiRet(regCfSysLineHdlr((uchar *)"actionsendtcprebindinterval", 0, eCmdHdlrInt, NULL, &iTCPRebindInterval, NULL)); CHKiRet(regCfSysLineHdlr((uchar *)"actionsendudprebindinterval", 0, eCmdHdlrInt, NULL, &iUDPRebindInterval, NULL)); CHKiRet(regCfSysLineHdlr((uchar *)"actionsendstreamdriver", 0, eCmdHdlrGetWord, NULL, &pszStrmDrvr, NULL)); CHKiRet(regCfSysLineHdlr((uchar *)"actionsendstreamdrivermode", 0, eCmdHdlrInt, NULL, &iStrmDrvrMode, NULL)); -- cgit From 095a20360ab547f37bf4fd8b099fdf0b03a5c86f Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Tue, 14 Jul 2009 19:53:04 +0200 Subject: added ability for the TCP output action to "rebind" its send socket ...after sending n messages (actually, it re-opens the connection, the name is used because this is a concept very similiar to $ActionUDPRebindInterval). New config directive $ActionSendTCPRebindInterval added for the purpose. By default, rebinding is disabled. This is considered# useful for load balancers. --- ChangeLog | 6 ++++++ doc/rsyslog_conf_global.html | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/ChangeLog b/ChangeLog index 9aca45f7..b0c6a05b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14,6 +14,12 @@ Version 4.5.1 [DEVEL] (rgerhards), 2009-07-?? - bugfix: message could be truncated after TAG, often when forwarding This was a result of an internal processing error if maximum field sizes had been specified in the property replacer. +- added ability for the TCP output action to "rebind" its send socket after + sending n messages (actually, it re-opens the connection, the name is + used because this is a concept very similiar to $ActionUDPRebindInterval). + New config directive $ActionSendTCPRebindInterval added for the purpose. + By default, rebinding is disabled. This is considered useful for load + balancers. - testbench improvements --------------------------------------------------------------------------- Version 4.5.0 [DEVEL] (rgerhards), 2009-07-02 diff --git a/doc/rsyslog_conf_global.html b/doc/rsyslog_conf_global.html index 03842758..577eb1aa 100644 --- a/doc/rsyslog_conf_global.html +++ b/doc/rsyslog_conf_global.html @@ -96,6 +96,13 @@ default 60000 (1 minute)] (driver-specific)
  • $ActionSendStreamDriverAuthMode <mode>,  authentication mode to use with the stream driver (driver-specific)
  • $ActionSendStreamDriverPermittedPeer <ID>,  accepted fingerprint (SHA1) or name of remote peer (driver-specific) - directive may go away!
  • +
  • $ActionSendTCPRebindInterval nbr- [available since 4.5.1] - instructs the TCP send +action to close and re-open the connection to the remote host every nbr of messages sent. +Zero, the default, means that no such processing is done. This directive is useful for +use with load-balancers. Note that there is some performance overhead associated with it, +so it is advisable to not too often "rebind" the connection (what +"too often" actually means depends on your configuration, a rule of thumb is +that it should be not be much more often than once per second).
  • $ActionSendUDPRebindInterval nbr- [available since 4.3.2] - instructs the UDP send action to rebind the send socket every nbr of messages sent. Zero, the default, means that no rebind is done. This directive is useful for use with load-balancers.
  • -- cgit From b6340c77148a28682d347806860d4bd62be4f608 Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Wed, 15 Jul 2009 10:19:23 +0200 Subject: removed mentioning HUP as a way of restarting from the doc set ... part of the deprecation effort for v5 --- doc/index.html | 7 +++---- doc/manual.html | 1 - doc/rsconf1_dirgroup.html | 4 ++-- doc/rsconf1_dirowner.html | 4 ++-- doc/rsconf1_filegroup.html | 4 ++-- doc/rsconf1_fileowner.html | 4 ++-- doc/rsyslog_php_syslog_ng.html | 4 ++-- doc/rsyslog_recording_pri.html | 2 +- doc/rsyslog_tls.html | 2 +- tools/rsyslogd.8 | 15 ++++++--------- 10 files changed, 21 insertions(+), 26 deletions(-) diff --git a/doc/index.html b/doc/index.html index 349c8e57..b3b336a7 100644 --- a/doc/index.html +++ b/doc/index.html @@ -25,8 +25,7 @@ To do the really cool things, though, you need to learn a bit about its new features. The man pages offer a bare minimum of information (and are still quite long). Read the html documentation instead. -When you change the configuration, -remember to restart (or HUP) rsyslogd, because otherwise it won't use your -new settings (and you'll end up totally puzzled why this great config of yours -does not even work a bit...;)) +When you change the configuration, remember to restart rsyslogd, because otherwise +it will not use your new settings (and you'll end up totally puzzled why this great +config of yours does not even work a bit...;)) diff --git a/doc/manual.html b/doc/manual.html index 42ee5a8d..22fd63b8 100644 --- a/doc/manual.html +++ b/doc/manual.html @@ -41,7 +41,6 @@ the links below for the

    We have some in-depth papers on

      diff --git a/doc/rsconf1_dirgroup.html b/doc/rsconf1_dirgroup.html index 868e5ecd..4575a7e8 100644 --- a/doc/rsconf1_dirgroup.html +++ b/doc/rsconf1_dirgroup.html @@ -7,7 +7,7 @@

      Type: global configuration directive

      Default:

      Description:

      -

      Set the group for directories newly created. Please note that this setting does not affect the group of directories already existing. The parameter is a group name, for which the groupid is obtained by rsyslogd on startup and on HUPing. Interim changes to the user mapping are not detected.

      +

      Set the group for directories newly created. Please note that this setting does not affect the group of directories already existing. The parameter is a group name, for which the groupid is obtained by rsyslogd on during startup processing. Interim changes to the user mapping are not detected.

      Sample:

      $DirGroup loggroup

      @@ -19,4 +19,4 @@ Copyright © 2007 by Rainer Gerhard Adiscon. Released under the GNU GPL version 2 or higher.

      - \ No newline at end of file + diff --git a/doc/rsconf1_dirowner.html b/doc/rsconf1_dirowner.html index e85a5122..34291856 100644 --- a/doc/rsconf1_dirowner.html +++ b/doc/rsconf1_dirowner.html @@ -7,7 +7,7 @@

      Type: global configuration directive

      Default:

      Description:

      -

      Set the file owner for directories newly created. Please note that this setting does not affect the owner of directories already existing. The parameter is a user name, for which the userid is obtained by rsyslogd on startup and on HUPing. Interim changes to the user mapping are not detected.

      +

      Set the file owner for directories newly created. Please note that this setting does not affect the owner of directories already existing. The parameter is a user name, for which the userid is obtained by rsyslogd during startup processing. Interim changes to the user mapping are not detected.

      Sample:

      $DirOwner loguser

      @@ -19,4 +19,4 @@ Copyright © 2007 by Rainer Gerhard Adiscon. Released under the GNU GPL version 2 or higher.

      - \ No newline at end of file + diff --git a/doc/rsconf1_filegroup.html b/doc/rsconf1_filegroup.html index b9acaab7..92e4813b 100644 --- a/doc/rsconf1_filegroup.html +++ b/doc/rsconf1_filegroup.html @@ -7,7 +7,7 @@

      Type: global configuration directive

      Default:

      Description:

      -

      Set the group for dynaFiles newly created. Please note that this setting does not affect the group of files already existing. The parameter is a group name, for which the groupid is obtained by rsyslogd on startup and on HUPing. Interim changes to the user mapping are not detected.

      +

      Set the group for dynaFiles newly created. Please note that this setting does not affect the group of files already existing. The parameter is a group name, for which the groupid is obtained by rsyslogd during startup processing. Interim changes to the user mapping are not detected.

      Sample:

      $FileGroup loggroup

      @@ -19,4 +19,4 @@ Copyright © 2007 by Rainer Gerhard Adiscon. Released under the GNU GPL version 2 or higher.

      - \ No newline at end of file + diff --git a/doc/rsconf1_fileowner.html b/doc/rsconf1_fileowner.html index 7a9cbbc7..f8d5ebf3 100644 --- a/doc/rsconf1_fileowner.html +++ b/doc/rsconf1_fileowner.html @@ -7,7 +7,7 @@

      Type: global configuration directive

      Default:

      Description:

      -

      Set the file owner for dynaFiles newly created. Please note that this setting does not affect the owner of files already existing. The parameter is a user name, for which the userid is obtained by rsyslogd on startup and on HUPing. Interim changes to the user mapping are not detected.

      +

      Set the file owner for dynaFiles newly created. Please note that this setting does not affect the owner of files already existing. The parameter is a user name, for which the userid is obtained by rsyslogd during startup processing. Interim changes to the user mapping are not detected.

      Sample:

      $FileOwner loguser

      @@ -19,4 +19,4 @@ Copyright © 2007 by Rainer Gerhard Adiscon. Released under the GNU GPL version 2 or higher.

      - \ No newline at end of file + diff --git a/doc/rsyslog_php_syslog_ng.html b/doc/rsyslog_php_syslog_ng.html index 9e722755..bf48a1eb 100644 --- a/doc/rsyslog_php_syslog_ng.html +++ b/doc/rsyslog_php_syslog_ng.html @@ -107,7 +107,7 @@ server machine, "syslog" is the database name (default from the schema and "pass" are the logon credentials. Use a user with low privileges, insert into the logs table is sufficient. "syslog-ng" is the template name and tells rsyslogd to use the SQL statement shown above.

      -

      Once you have made the changes, all you need to do is reload (or HUP) +

      Once you have made the changes, all you need to do is restart rsyslogd. Then, you should see syslog messages flow into your database - and show up in php-syslog-ng.

      Conclusion

      @@ -148,4 +148,4 @@ no Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be viewed at http://www.gnu.org/copyleft/fdl.html.

      - \ No newline at end of file + diff --git a/doc/rsyslog_recording_pri.html b/doc/rsyslog_recording_pri.html index 1dcf00c7..cf11e3e5 100644 --- a/doc/rsyslog_recording_pri.html +++ b/doc/rsyslog_recording_pri.html @@ -62,7 +62,7 @@ semicolon:

      That's all you need to do. There is one common pitfall: you need to define the template before you use it in a selector line. Otherwise, you will receive an error.

      -

      Once you have applied the changes, you need to restart or HUP rsyslogd. It +

      Once you have applied the changes, you need to restart rsyslogd. It will then pick the new configuration.

      What if I do not want rsyslogd to be the standard syslogd?

      If you do not want to switch to rsyslog, you can still use it as a setup aid. diff --git a/doc/rsyslog_tls.html b/doc/rsyslog_tls.html index a26a9f53..0a27b90e 100644 --- a/doc/rsyslog_tls.html +++ b/doc/rsyslog_tls.html @@ -127,7 +127,7 @@ This is all you need to do. You can use the rest of your rsyslog.conf together with this configuration. The way messages are received does not interfer with any other option, so you are able to do anything else you like without any restrictions. -

      Restart (or HUP) rsyslogd. The server should now be fully +

      Restart rsyslogd. The server should now be fully operational.

      Client Setup

      The client setup is equally simple. You need less diff --git a/tools/rsyslogd.8 b/tools/rsyslogd.8 index 7d4b5e03..6ac30e46 100644 --- a/tools/rsyslogd.8 +++ b/tools/rsyslogd.8 @@ -248,20 +248,17 @@ kill -HUP $(cat /var/run/rsyslogd.pid) .B HUP This lets .B rsyslogd -perform a re-initialization. All open files are closed, the -configuration file (default is -.IR /etc/rsyslog.conf ")" -will be reread and the -.BR rsyslog (3) -facility is started again. +perform close all open files. +Also, in v3 a full restart will be done in order to read changed configuration files. Note that this means a full rsyslogd restart is done. This has, among others, the consequence that TCP and other connections are torn down. Also, if any queues are not running in disk assisted mode or are not set to persist data on shutdown, queue data is lost. HUPing rsyslogd is an extremely expensive operation and should only be done when actually necessary. Actually, it is -a rsyslgod stop immediately followed by a restart. Future versions will probably -include a special handling which only closes files, but will not cause any -of the other effects. +a rsyslgod stop immediately followed by a restart. Future versions will remove +this restart functionality of HUP (it will go away in v5). So it is advised to use +HUP only for closing files, and a "real restart" (e.g. /etc/rc.d/rsyslogd restart) +to activate configuration changes. .TP .B TERM ", " INT ", " QUIT .B Rsyslogd -- cgit From 17b5f2264fad2e3866f9f3325f2bd67bf4aa69f0 Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Wed, 15 Jul 2009 10:21:20 +0200 Subject: removed outdated html version of man page html doc is better --- doc/man_rsyslogd.html | 438 -------------------------------------------------- 1 file changed, 438 deletions(-) delete mode 100644 doc/man_rsyslogd.html diff --git a/doc/man_rsyslogd.html b/doc/man_rsyslogd.html deleted file mode 100644 index d18fd88a..00000000 --- a/doc/man_rsyslogd.html +++ /dev/null @@ -1,438 +0,0 @@ -

      -RSYSLOGD(8)               Linux System Administration              RSYSLOGD(8)
      -
      -
      -
      -NAME
      -       rsyslogd - reliable and extended syslogd
      -
      -SYNOPSIS
      -       rsyslogd [ -4 ] [ -6 ] [ -A ] [ -a socket ] [ -d ] [ -e ]
      -       [ -f config file ] [ -h ] [ -i pid file ] [ -l hostlist ]
      -       [ -m interval ] [ -n ] [ -o ] [ -p socket ]
      -       [ -r [port] ] [ -s domainlist ] [ -t port,max-nbr-of-sessions ]
      -       [ -v ] [ -w ] [ -x ]
      -
      -
      -DESCRIPTION
      -       Rsyslogd  is  a  system  utility providing support for message logging.
      -       Support of both internet and unix domain sockets enables  this  utility
      -       to support both local and remote logging (via UDP and TCP).
      -
      -       Rsyslogd(8)  is  derived  from  the  sysklogd  package which in turn is
      -       derived from the stock BSD sources.
      -
      -       Rsyslogd provides a kind of logging  that  many  modern  programs  use.
      -       Every  logged  message  contains  at least a time and a hostname field,
      -       normally a program name field, too, but that depends on how trusty  the
      -       logging  program  is.  The  rsyslog package supports free definition of
      -       output formats via templates. It also supports precise  timestamps  and
      -       writing  directly  to  MySQL databases. If the database option is used,
      -       tools like phpLogCon can be used to view the log data.
      -
      -       While the rsyslogd sources have been heavily modified a couple of notes
      -       are  in  order.   First  of  all there has been a systematic attempt to
      -       insure that rsyslogd follows its default,  standard  BSD  behavior.  Of
      -       course,  some configuration file changes are necessary in order to sup-
      -       port the template system. However, rsyslogd should be  able  to  use  a
      -       standard  syslog.conf  and  act  like  the original syslogd. However, an
      -       original syslogd will not work correctly with a  rsyslog-enhanced  con-
      -       figuration  file.  At  best, it will generate funny looking file names.
      -       The second important concept to note is that this version  of  rsyslogd
      -       interacts  transparently  with the version of syslog found in the stan-
      -       dard libraries.  If a binary linked to the  standard  shared  libraries
      -       fails  to  function correctly we would like an example of the anomalous
      -       behavior.
      -
      -       The main configuration file /etc/rsyslog.conf or an  alternative  file,
      -       given  with  the  -f  option, is read at startup.  Any lines that begin
      -       with the hash mark (‘‘#’’) and empty lines are ignored.   If  an  error
      -       occurs  during  parsing  the  error  element is ignored. It is tried to
      -       parse the rest of the line.
      -
      -       For details and configuration examples, see the  rsyslog.conf  (5)  man
      -       page.
      -
      -
      -
      -OPTIONS
      -       -A     When sending UDP messages, there are potentially multiple paths
      -              to the target destination. By default, rsyslogd  only  sends  to
      -              the  first  target  it can successfully send to. If -A is given,
      -              messages are sent to all targets. This may improve  reliability,
      -              but  may  also  cause  message  duplication.  This  option should
      -              enabled only if it is fully understood.
      -
      -       -4     Causes rsyslogd to listen to IPv4 addresses only.  If neither -4
      -              nor -6 is given, rsyslogd listens to all configured addresses of
      -              the system.
      -
      -       -6     Causes rsyslogd to listen to IPv6 addresses only.  If neither -4
      -              nor -6 is given, rsyslogd listens to all configured addresses of
      -              the system.
      -
      -       -a socket
      -              Using this argument you can specify additional sockets from that
      -              rsyslogd  has  to  listen to.  This is needed if you’re going to
      -              let some daemon run within a chroot() environment.  You can  use
      -              up  to  19  additional  sockets.  If your environment needs even
      -              more, you have to increase the symbol MAXFUNIX within  the  sys-
      -              logd.c  source  file.   An  example  for  a  chroot()  daemon is
      -              described     by     the     people     from     OpenBSD      at
      -              http://www.psionic.com/papers/dns.html.
      -
      -       -d     Turns  on  debug mode.  Using this the daemon will not proceed a
      -              fork(2) to set itself in the background, but  opposite  to  that
      -              stay  in  the foreground and write much debug information on the
      -              current tty.  See the DEBUGGING section for more information.
      -
      -       -e     Set the default of $RepeatedMsgReduction config option to "off".
      -              Hine:  "e"  like  "every  message". For further information, see
      -              there.
      -
      -       -f config file
      -              Specify an alternative configuration file instead of  /etc/rsys-
      -              log.conf, which is the default.
      -
      -       -h     By  default  rsyslogd will not forward messages it receives from
      -              remote hosts.  Specifying this switch on the command  line  will
      -              cause  the log daemon to forward any remote messages it receives
      -              to forwarding hosts which have been defined.
      -
      -       -i pid file
      -              Specify an alternative pid file  instead  of  the  default  one.
      -              This  option  must  be  used  if  multiple instances of rsyslogd
      -              should run on a single machine.
      -
      -       -l hostlist
      -              Specify a hostname that should be logged only  with  its  simple
      -              hostname  and  not  the  fqdn.   Multiple hosts may be specified
      -              using the colon (‘‘:’’) separator.
      -
      -       -m interval
      -              The rsyslogd logs  a  mark  timestamp  regularly.   The  default
      -              interval  between  two -- MARK -- lines is 20 minutes.  This can
      -              be changed with this option.  Setting the interval to zero turns
      -              it off entirely.
      -
      -       -n     Avoid  auto-backgrounding.   This  is  needed  especially if the
      -              rsyslogd is started and controlled by init(8).
      -
      -       -o     Omit reading the standard local log socket. This option is  most
      -              useful  for  running  multiple instances of rsyslogd on a single
      -              machine. When specified, no local log socket is opened at all.
      -
      -       -p socket
      -              You can specify an alternative unix  domain  socket  instead  of
      -              /dev/log.
      -
      -       -r ["port"]
      -              Activates  the  syslog/udp  listener  service. The listener will
      -              listen to the specified port.  If no port  is  specified,  0  is
      -              used  as port number, which in turn will lead to a lookup of the
      -              system default syslog port. If there is no system  default,  514
      -              is  used.  Please note that the port must immediately follow the
      -              -r option. Thus "-r514" is valid while "-r 514" is invalid (note
      -              the space).
      -
      -       -s domainlist
      -              Specify a domainname that should be stripped off before logging.
      -              Multiple domains may be specified using the colon (‘‘:’’)  sepa-
      -              rator.   Please  be advised that no sub-domains may be specified
      -              but only entire domains.  For example if -s north.de  is  speci-
      -              fied  and the host logging resolves to satu.infodrom.north.de no
      -              domain would be cut, you will have to specify two domains  like:
      -              -s north.de:infodrom.north.de.
      -
      -       -t port,max-nbr-of-sessions
      -              Activates  the  syslog/tcp  listener  service. The listener will
      -              listen to the specified port. If max-nbr-of-sessions  is  speci-
      -              fied,  that  becomes  the  maximum number of concurrent tcp ses-
      -              sions. If not specified, the default is 200.  Please  note  that
      -              syslog/tcp  is not standardized, but the implementation in rsys-
      -              logd follows common practice and is compatible with  e.g.  Cisco
      -              PIX,  syslog-ng and MonitorWare (Windows).  Please note that the
      -              port must immediately follow the  -t  option.  Thus  "-t514"  is
      -              valid while "-t 514" is invalid (note the space).
      -
      -       -v     Print version and exit.
      -
      -       -w     Supress  warnings  issued  when  messages are received from non-
      -              authorized machines (those, that are in no AllowedSender  list).
      -
      -       -x     Disable DNS for remote messages.
      -
      -
      -SIGNALS
      -       Rsyslogd  reacts  to a set of signals.  You may easily send a signal to
      -       rsyslogd using the following:
      -
      -              kill -SIGNAL ‘cat /var/run/rsyslogd.pid‘
      -
      -
      -       SIGHUP This lets rsyslogd perform a re-initialization.  All open  files
      -              are  closed,  the  configuration  file  (default  is  /etc/rsys-
      -              log.conf) will be reread and the rsyslog(3) facility is  started
      -              again.
      -
      -       SIGTERM
      -              Rsyslogd will die.
      -
      -       SIGINT, SIGQUIT
      -              If  debugging  is  enabled these are ignored, otherwise rsyslogd
      -              will die.
      -
      -       SIGUSR1
      -              Switch debugging on/off.  This option can only be used if  rsys-
      -              logd is started with the -d debug option.
      -
      -       SIGCHLD
      -              Wait for childs if some were born, because of wall’ing messages.
      -
      -
      -SUPPORT FOR REMOTE LOGGING
      -       Rsyslogd provides network support to  the  syslogd  facility.   Network
      -       support  means  that  messages  can  be forwarded from one node running
      -       rsyslogd to another node  running  rsyslogd  (or  a  compatible  syslog
      -       implementation) where they will be actually logged to a disk file.
      -
      -       To  enable  this  you have to specify either the -r or -t option on the
      -       command line.  The default behavior is that rsyslogd  won’t  listen  to
      -       the  network.  You can also combine these two options if you want rsys-
      -       logd to listen to both TCP and UDP messages.
      -
      -       The strategy is to have rsyslogd listen on a  unix  domain  socket  for
      -       locally  generated  log messages.  This behavior will allow rsyslogd to
      -       inter-operate with the syslog found in the standard C library.  At  the
      -       same  time  rsyslogd  listens  on the standard syslog port for messages
      -       forwarded from other hosts.  To  have  this  work  correctly  the  ser-
      -       vices(5) files (typically found in /etc) must have the following entry:
      -
      -                   syslog          514/udp
      -
      -       If this entry is missing rsyslogd will use the well known port  of  514
      -       (so in most cases, it’s not really needed).
      -
      -       To  cause  messages  to be forwarded to another host replace the normal
      -       file line in the rsyslog.conf file with the name of the host  to  which
      -       the  messages  is  to be sent prepended with an @ (for UDP delivery) or
      -       the sequence @@ (for TCP delivery). The host name can also be  followed
      -       by  a colon and a port number, in which case the message is sent to the
      -       specified port on the remote host.
      -
      -              For example, to forward ALL messages to a remote  host  use  the
      -              following rsyslog.conf entry:
      -
      -                   # Sample rsyslogd configuration file to
      -                   # messages to a remote host forward all.
      -                   *.*            @hostname
      -              More samples can be found in sample.conf.
      -
      -              If  the  remote  hostname cannot be resolved at startup, because
      -              the name-server might not be accessible (it may be started after
      -              rsyslogd)  you  don’t  have  to  worry.   Rsyslogd will retry to
      -              resolve the name ten times and then complain.  Another possibil-
      -              ity to avoid this is to place the hostname in /etc/hosts.
      -
      -              With  normal syslogds you would get syslog-loops if you send out
      -              messages that were received from a remote host to the same  host
      -              (or  more  complicated to a third host that sends it back to the
      -              first one, and so on).
      -
      -              To avoid this no messages that were received from a remote  host
      -              are  sent out to another (or the same) remote host. You can dis-
      -              able this feature by the -h option.
      -
      -              If the remote host is located in the same domain  as  the  host,
      -              rsyslogd  is running on, only the simple hostname will be logged
      -              instead of the whole fqdn.
      -
      -              In a local network you may provide a central log server to  have
      -              all  the important information kept on one machine.  If the net-
      -              work consists of different domains you don’t  have  to  complain
      -              about logging fully qualified names instead of simple hostnames.
      -              You may want to use the strip-domain feature -s of this  server.
      -              You  can  tell  rsyslogd to strip off several domains other than
      -              the one the server is located in and only log simple  hostnames.
      -
      -              Using  the -l option there’s also a possibility to define single
      -              hosts as local machines.  This, too,  results  in  logging  only
      -              their simple hostnames and not the fqdns.
      -
      -
      -OUTPUT TO DATABASES
      -       Rsyslogd  has  support  for  writing data to MySQL database tables. The
      -       exact specifics are described in the rsyslog.conf (5) man page. Be sure
      -       to read it if you plan to use database logging.
      -
      -       While  it  is  often  handy to have the data in a database, you must be
      -       aware of the implications. Most importantly, database logging takes far
      -       longer  than  logging  to a text file. A system that can handle a large
      -       log volume when writing to text files can most likely not handle a sim-
      -       ilar large volume when writing to a database table.
      -
      -
      -OUTPUT TO NAMED PIPES (FIFOs)
      -       Rsyslogd has support for logging output to named pipes (fifos).  A fifo
      -       or named pipe can be used as a destination for log messages by prepend-
      -       ing  a  pipy symbol (‘‘|’’) to the name of the file.  This is handy for
      -       debugging.  Note that the fifo must be created with the mkfifo  command
      -       before rsyslogd is started.
      -
      -              The  following configuration file routes debug messages from the
      -              kernel to a fifo:
      -
      -                   # Sample configuration to route kernel debugging
      -                   # messages ONLY to /usr/adm/debug which is a
      -                   # named pipe.
      -                   kern.=debug              |/usr/adm/debug
      -
      -
      -INSTALLATION CONCERNS
      -       There is probably one important consideration when installing rsyslogd.
      -       It  is  dependent  on proper formatting of messages by the syslog func-
      -       tion.  The functioning of the syslog function in the  shared  libraries
      -       changed  somewhere  in  the  region of libc.so.4.[2-4].n.  The specific
      -       change was to null-terminate the message before transmitting it to  the
      -       /dev/log  socket.   Proper  functioning  of this version of rsyslogd is
      -       dependent on null-termination of the message.
      -
      -       This problem will typically manifest itself if  old  statically  linked
      -       binaries  are being used on the system.  Binaries using old versions of
      -       the syslog function will cause empty lines to be logged followed by the
      -       message  with  the  first  character in the message removed.  Relinking
      -       these binaries to newer versions of the shared libraries  will  correct
      -       this problem.
      -
      -       The  rsyslogd(8) can be run from init(8) or started as part of the rc.*
      -       sequence.  If it is started from init the option -n must be set, other-
      -       wise  you’ll  get  tons  of  syslog  daemons  started.  This is because
      -       init(8) depends on the process ID.
      -
      -
      -SECURITY THREATS
      -       There is the potential for the rsyslogd daemon to be used as a  conduit
      -       for a denial of service attack.  A rogue program(mer) could very easily
      -       flood the rsyslogd daemon with syslog messages  resulting  in  the  log
      -       files  consuming all the remaining space on the filesystem.  Activating
      -       logging over the inet domain sockets will of course expose a system  to
      -       risks outside of programs or individuals on the local machine.
      -
      -       There are a number of methods of protecting a machine:
      -
      -       1.     Implement  kernel  firewalling  to limit which hosts or networks
      -              have access to the 514/UDP socket.
      -
      -       2.     Logging can be directed to an isolated  or  non-root  filesystem
      -              which, if filled, will not impair the machine.
      -
      -       3.     The ext2 filesystem can be used which can be configured to limit
      -              a certain percentage of a filesystem  to  usage  by  root  only.
      -              NOTE  that  this  will  require rsyslogd to be run as a non-root
      -              process.  ALSO NOTE that this will prevent usage of remote  log-
      -              ging  since  rsyslogd  will  be  unable  to  bind to the 514/UDP
      -              socket.
      -
      -       4.     Disabling inet domain sockets  will  limit  risk  to  the  local
      -              machine.
      -
      -       5.     Use step 4 and if the problem persists and is not secondary to a
      -              rogue program/daemon get a 3.5 ft (approx. 1  meter)  length  of
      -              sucker rod* and have a chat with the user in question.
      -
      -              Sucker  rod  def.  —  3/4,  7/8 or 1in. hardened steel rod, male
      -              threaded on each end.  Primary use in the oil industry in  West-
      -              ern North Dakota and other locations to pump ’suck’ oil from oil
      -              wells.  Secondary uses are for the construction of  cattle  feed
      -              lots  and  for  dealing with the occasional recalcitrant or bel-
      -              ligerent individual.
      -
      -   Message replay and spoofing
      -       If remote logging is  enabled,  messages  can  easily  be  spoofed  and
      -       replayed.   As  the messages are transmitted in clear-text, an attacker
      -       might use the information  obtained  from  the  packets  for  malicious
      -       things.  Also,  an  attacker  might  reply recorded messages or spoof a
      -       sender’s IP address, which could lead to a wrong perception  of  system
      -       activity.  Be  sure  to  think  about  syslog  network  security before
      -       enabling it.
      -
      -
      -DEBUGGING
      -       When debugging is turned on using -d option then rsyslogd will be  very
      -       verbose  by  writing much of what it does on stdout.  Whenever the con-
      -       figuration file is reread and re-parsed you’ll see  a  tabular,  corre-
      -       sponding to the internal data structure.  This tabular consists of four
      -       fields:
      -
      -       number This field contains a serial number starting by zero.  This num-
      -              ber represents the position in the internal data structure (i.e.
      -              the array).  If one number is left out then there  might  be  an
      -              error in the corresponding line in /etc/rsyslog.conf.
      -
      -       pattern
      -              This  field  is  tricky  and  represents  the internal structure
      -              exactly.  Every column stands for  a  facility  (refer  to  sys-
      -              log(3)).   As  you can see, there are still some facilities left
      -              free for former use, only the left most are used.   Every  field
      -              in a column represents the priorities (refer to syslog(3)).
      -
      -       action This  field  describes  the  particular  action that takes place
      -              whenever a message is received that matches the pattern.   Refer
      -              to the syslog.conf(5) manpage for all possible actions.
      -
      -       arguments
      -              This field shows additional arguments to the actions in the last
      -              field.  For file-logging this is the filename for  the  logfile;
      -              for  user-logging  this  is  a list of users; for remote logging
      -              this is the hostname of the machine to log to; for  console-log-
      -              ging this is the used console; for tty-logging this is the spec-
      -              ified tty; wall has no additional arguments.
      -
      -
      -          templates
      -              There will also be a second internal structure which  lists  all
      -              defined  templates  and there contents. This also enables you to
      -              see the internally-defined, hardcoded templates.
      -
      -FILES
      -       /etc/rsyslog.conf
      -              Configuration file for rsyslogd.  See rsyslog.conf(5) for  exact
      -              information.
      -       /dev/log
      -              The  Unix  domain socket to from where local syslog messages are
      -              read.
      -       /var/run/rsyslogd.pid
      -              The file containing the process id of rsyslogd.
      -
      -BUGS
      -       Please review the file BUGS for up-to-date information  on  known  bugs
      -       and annoyances.
      -
      -Further Information
      -       Please  visit  http://www.rsyslog.com/doc  for  additional information,
      -       tutorials and a support forum.
      -
      -SEE ALSO
      -       rsyslog.conf(5),   logger(1),   syslog(2),   syslog(3),    services(5),
      -       savelog(8)
      -
      -
      -COLLABORATORS
      -       rsyslogd is derived from sysklogd sources, which in turn was taken from
      -       the BSD sources. Special thanks  to  Greg  Wettstein  (greg@wind.enjel-
      -       lic.com) and Martin Schulze (joey@linux.de) for the fine sysklogd pack-
      -       age.
      -
      -       Rainer Gerhards
      -       Adiscon GmbH
      -       Grossrinderfeld, Germany
      -       rgerhards@adiscon.com
      -
      -       Michael Meckelein
      -       Adiscon GmbH
      -       mmeckelein@adiscon.com
      -
      -
      -
      -Version 1.16.1 (devel)           17 July 2007                      RSYSLOGD(8)
      -
      -- cgit From a8b583669a74dc053b0073531d8d3076779416a6 Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Wed, 15 Jul 2009 11:12:28 +0200 Subject: CONFIG CHANGE: $HUPisRestart default is now "off". We are doing this to support removal of restart-type HUP in v5. Elaborate doc added to explain reasoning and actions to be taken. --- ChangeLog | 2 ++ doc/Makefile.am | 2 +- doc/manual.html | 13 ++++---- doc/rsyslog_conf_global.html | 12 ++++--- doc/v4compatibility.html | 77 ++++++++++++++++++++++++++++++++++++++++++++ runtime/glbl.c | 4 +-- 6 files changed, 97 insertions(+), 13 deletions(-) create mode 100644 doc/v4compatibility.html diff --git a/ChangeLog b/ChangeLog index 9aca45f7..e44b9f83 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ --------------------------------------------------------------------------- Version 4.5.1 [DEVEL] (rgerhards), 2009-07-?? +- CONFIG CHANGE: $HUPisRestart default is now "off". We are doing this + to support removal of restart-type HUP in v5. - bugfix: fromhost-ip was sometimes truncated - bugfix: potential segfault when zip-compressed syslog records were received (double free) diff --git a/doc/Makefile.am b/doc/Makefile.am index 62ec7500..3dfc8d3a 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -13,7 +13,6 @@ html_files = \ ipv6.html \ log_rotation_fix_size.html \ manual.html \ - man_rsyslogd.html \ modules.html \ property_replacer.html \ rsyslog_ng_comparison.html \ @@ -91,6 +90,7 @@ html_files = \ rsconf1_resetconfigvariables.html \ rsconf1_umask.html \ v3compatibility.html \ + v4compatibility.html \ im3195.html \ netstream.html \ ns_gtls.html \ diff --git a/doc/manual.html b/doc/manual.html index 8a1e4fa0..d473f485 100644 --- a/doc/manual.html +++ b/doc/manual.html @@ -28,12 +28,13 @@ time - even a single mouse click helps. Learn how to hel Due to popular demand, there is now a side-by-side comparison between rsyslog and syslog-ng.

      If you are upgrading from rsyslog v2 or stock sysklogd, -be -sure to read the rsyslog v3 compatibility document! It will work even +be sure to read the rsyslog v3 compatibility document, +and if you are upgrading from v3, read the +rsyslog v4 compatibility document. +

      Rsyslog will work even if you do not read the doc, but doing so will definitely improve your experience.

      -

      Follow -the links below for the

        - +

        Follow the links below for the

        +
        • troubleshooting rsyslog problems
        • configuration file syntax (rsyslog.conf)
        • a regular expression checker/generator tool for rsyslog
        • @@ -42,7 +43,7 @@ the links below for the

          We have some in-depth papers on

          diff --git a/doc/rsyslog_conf_global.html b/doc/rsyslog_conf_global.html index 03842758..1fe72c5f 100644 --- a/doc/rsyslog_conf_global.html +++ b/doc/rsyslog_conf_global.html @@ -129,11 +129,15 @@ our paper on using multiple rule sets in rsyslog$GssForwardServiceName
        • $GssListenServiceName
        • $GssMode
        • -
        • $HUPisRestart [on/off] - if set to on, a HUP is a full daemon restart. This means any queued messages are discarded (depending +
        • $HUPisRestart [on/off] - if set to on, a HUP is a full daemon restart. This means any queued messages are discarded (depending on queue configuration, of course) all modules are unloaded and reloaded. This mode keeps compatible with sysklogd, but is -not recommended for use with rsyslog. To do a full restart, simply stop and start the daemon. The default is "on" for -compatibility reasons. If it is set to "off", a HUP will only close open files. This is a much quicker action and usually -the only one that is needed e.g. for log rotation. It is recommended to set the setting to "off".
        • +not recommended for use with rsyslog. To do a full restart, simply stop and start the daemon. The default (since 4.5.1) is "off". +If it is set to "off", a HUP will only close open files. This is a much quicker action and usually +the only one that is needed e.g. for log rotation. Restart-type HUPs (value "on") are depricated +and will go away in rsyslog v5. So it is a good idea to change anything that needs it, now. +Usually that should not be a big issue, as the restart-type HUP can easily be replaced by +something along the lines of "/etc/init.d/rsyslog restart". +
        • $IncludeConfig
        • MainMsgQueueCheckpointInterval <number>
        • $MainMsgQueueDequeueSlowdown <number> [number is timeout in microseconds (1000000us is 1sec!), diff --git a/doc/v4compatibility.html b/doc/v4compatibility.html new file mode 100644 index 00000000..5d877af1 --- /dev/null +++ b/doc/v4compatibility.html @@ -0,0 +1,77 @@ + +Compatibility notes for rsyslog v4 + + +

          Compatibility Notes for rsyslog v4

          +

          Written by Rainer Gerhards +(2009-07-15)

          +

          The changes introduced in rsyslog v4 are numerous, but not very intrusive. +This document describes things to keep in mind when moving from v3 to v4. It +does not list enhancements nor does it talk about compatibility concerns introduced +by v3 (for this, see the rsyslog v3 compatibility notes). +

          HUP processing

          +

          With v3 and below, rsyslog used the traditional HUP behaviour. That meant that +all output files are closed and the configuration file is re-read and the new configuration +applied. +

          With a program as simple and static as sysklogd, this was not much of an issue. The +most important config settings (like udp reception) of a traditional syslogd can not be +modified via the configuration file. So a config file reload only meant setting up a new set of filters. It also didn't account as problem that while doing so messages may be lost - without +any threading and queuing model, a traditional syslogd will potentially always loose +messages, so it is irrelevant if this happens, too, during the short config re-read +phase. +

          In rsyslog, things are quite different: the program is more or less a framework into +which loadable modules are loaded as needed for a particular configuration. The software +that will acutally be running is taylored via the config file. Thus, a re-read of +the config file requires a full, very heavy restart, because the software acutally +running with the new config can be totally different from what ran with the old config. +

          Consequently, the traditional HUP is a very heavy operation and may even cause some +data loss because queues must be shut down, listeners stopped and so on. Some of these +operations (depending on their configuration) involve intentional message loss. The operation +also takes up a lot of system resources and needs quite some time (maybe seconds) to be +completed. During this restart period, the syslog subsytem is not fully available. +

          From the software developer's point of view, the full restart done by a HUP is rather complex, +especially if user-timeout limits set on action completion are taken into consideration (for +those in the know: at the extreme ends this means we need to cancel threads as a last resort, +but than we need to make sure that such cancellation does not happen at points where it +would be fatal for a restart). A regular restart, where the process is actually terminated, is +much less complex, because the operating system does a full cleanup after process termination, +so rsyslogd does not need to take care for exotic cleanup cases and leave that to the OS. +In the end result, restart-type HUPs clutter the code, increase complexity (read: add bugs) +and cost performance. +

          On the contrary, a HUP is typically needed for log rotation, and the real desire is +to close files. This is a non-disruptive and very lightweigth operation. +

          Many people have said that they are used to HUP the syslogd to apply configuration +changes. This is true, but it is questionable if that really justifies all the cost that +comes with it. After all, it is the difference between typing +

          +$ kill -HUP `cat /var/run/rsyslogd.pid`
          +
          +versus +
          +$ /etc/init.d/rsyslog restart
          +
          +Semantically, both is mostly the same thing. The only difference is that with the restart +command rsyslogd can spit config error message to stderr, so that the user is able to see +any problems and fix them. With a HUP, we do not have access to stderr and thus can log +error messages only to their configured destinations; exprience tells that most users +will never find them there. What, by the way, is another strong argument against +restarting rsyslogd by HUPing it. +

          So a restart via HUP is not strictly necessary +and most other deamons require that a restart command is typed in if a restart is required. +

          Rsyslog will follow this paradigm in the next versions, resulting in many benefits. In v4, +we provide some support for the old-style semantics. We introduced a setting $HUPisRestart +which may be set to "on" (tradional, heavy operationg) +or "off" (new, lightweight "file close only" operation). +The initial versions had the default set to traditional behavior, but starting with 4.5.1 +we are now using the new behavior as the default. +

          Most importantly, this may break some scripts, but my sincere belief is that +there are very few scripts that automatically change rsyslog's config and then do a +HUP to reload it. Anyhow, if you have some of these, it may be a good idea to change +them now instead of turning restart-type HUPs on. Other than that, one mainly needs +to change the habit of how to restart rsyslog after a configuration change. +

          Please note that restart-type HUP is depricated and will go away in rsyslog v5. +So it is a good idea to become ready for the new version now and also enjoy some of the +benefits of the "real restart", like the better error-reporting capability. +

          Note that code complexity reduction (and thus performance improvement) needs the restart-type +HUP code to be removed, so these changes can (and will) only happen in version 5. + diff --git a/runtime/glbl.c b/runtime/glbl.c index 32b85622..7fa61963 100644 --- a/runtime/glbl.c +++ b/runtime/glbl.c @@ -55,7 +55,7 @@ DEFobjCurrIf(prop) */ static uchar *pszWorkDir = NULL; static int bOptimizeUniProc = 1; /* enable uniprocessor optimizations */ -static int bHUPisRestart = 1; /* should SIGHUP cause a full system restart? */ +static int bHUPisRestart = 0; /* should SIGHUP cause a full system restart? */ static int bPreserveFQDN = 0; /* should FQDNs always be preserved? */ static int iMaxLine = 2048; /* maximum length of a syslog message */ static int iDefPFFamily = PF_UNSPEC; /* protocol family (IPv4, IPv6 or both) */ @@ -293,7 +293,7 @@ static rsRetVal resetConfigVariables(uchar __attribute__((unused)) *pp, void __a } bDropMalPTRMsgs = 0; bOptimizeUniProc = 1; - bHUPisRestart = 1; + bHUPisRestart = 0; bPreserveFQDN = 0; return RS_RET_OK; } -- cgit From 07b076ddcfed4ea9b447d0be574d1dcdb799bc2f Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Wed, 15 Jul 2009 11:33:49 +0200 Subject: final touches for 4.5.1 --- ChangeLog | 2 +- configure.ac | 2 +- doc/manual.html | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index a935f42f..6a6d1d92 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,5 @@ --------------------------------------------------------------------------- -Version 4.5.1 [DEVEL] (rgerhards), 2009-07-?? +Version 4.5.1 [DEVEL] (rgerhards), 2009-07-15 - CONFIG CHANGE: $HUPisRestart default is now "off". We are doing this to support removal of restart-type HUP in v5. - bugfix: fromhost-ip was sometimes truncated diff --git a/configure.ac b/configure.ac index 6d22566b..dc1aab3a 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.61) -AC_INIT([rsyslog],[4.5.0],[rsyslog@lists.adiscon.com]) +AC_INIT([rsyslog],[4.5.1],[rsyslog@lists.adiscon.com]) AM_INIT_AUTOMAKE AC_CONFIG_SRCDIR([ChangeLog]) AC_CONFIG_MACRO_DIR([m4]) diff --git a/doc/manual.html b/doc/manual.html index d473f485..0fb91e1d 100644 --- a/doc/manual.html +++ b/doc/manual.html @@ -19,9 +19,9 @@ rsyslog support available directly from the source!

          Please visit the rsyslog sponsor's page to honor the project sponsors or become one yourself! We are very grateful for any help towards the project goals.

          -

          This documentation is for version 4.5.0 (beta branch) of rsyslog. -Visit the rsyslog status page to obtain current -version information and project status. +

          This documentation is for version 4.5.1 (beta branch) of rsyslog. +Visit the rsyslog status page +to obtain current version information and project status.

          If you like rsyslog, you might want to lend us a helping hand. It doesn't require a lot of time - even a single mouse click helps. Learn how to help the rsyslog project. -- cgit From f7894c401fdb8a2ad7bb3a1d87a74d438cc366c3 Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Wed, 15 Jul 2009 11:43:05 +0200 Subject: added v5 compatibility notes --- doc/Makefile.am | 1 + doc/manual.html | 6 ++++-- doc/v5compatibility.html | 19 +++++++++++++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 doc/v5compatibility.html diff --git a/doc/Makefile.am b/doc/Makefile.am index 3dfc8d3a..671aeb3b 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -91,6 +91,7 @@ html_files = \ rsconf1_umask.html \ v3compatibility.html \ v4compatibility.html \ + v5compatibility.html \ im3195.html \ netstream.html \ ns_gtls.html \ diff --git a/doc/manual.html b/doc/manual.html index 0fb91e1d..a563ebe5 100644 --- a/doc/manual.html +++ b/doc/manual.html @@ -28,9 +28,11 @@ time - even a single mouse click helps. Learn how to hel Due to popular demand, there is now a side-by-side comparison between rsyslog and syslog-ng.

          If you are upgrading from rsyslog v2 or stock sysklogd, -be sure to read the rsyslog v3 compatibility document, +be sure to read the rsyslog v3 compatibility notes, and if you are upgrading from v3, read the -rsyslog v4 compatibility document. +rsyslog v4 compatibility notes and +if you upgrade from v4, read the +rsyslog v5 compatibility notes.

          Rsyslog will work even if you do not read the doc, but doing so will definitely improve your experience.

          Follow the links below for the

          diff --git a/doc/v5compatibility.html b/doc/v5compatibility.html new file mode 100644 index 00000000..7f5a784d --- /dev/null +++ b/doc/v5compatibility.html @@ -0,0 +1,19 @@ + +Compatibility notes for rsyslog v5 + + +

          Compatibility Notes for rsyslog v5

          +

          Written by Rainer Gerhards +(2009-07-15)

          +

          The changes introduced in rsyslog v5 are numerous, but not very intrusive. +This document describes things to keep in mind when moving from v4 to v5. It +does not list enhancements nor does it talk about compatibility concerns introduced +by earlier versions (for this, see their respective compatibility documents). +

          HUP processing

          +

          The $HUPisRestart directive is supported by some early v5 versions, but will soon been +removed (around 5.1.x). That means that restart-type HUP processing is no longer +available. This processing was redundant and had a lot a drawbacks. +For details, please see the +rsyslog v4 compatibility notes which elaborate +on the reasons and the (few) things you may need to change. + -- cgit