Skip to content
  • Thomas Bellman's avatar
    faa954bc
    Do client queueing to handle server outages. · faa954bc
    Thomas Bellman authored
    Add support to syslog::client to queue up messages in the client if
    the server can't be reached.  This should allow us to not lose log
    messages in case of shorter outages (hours, but not days) of the log
    server, whether planned or unscheduled.
    
    The defult setting is to have a queue of at most 100'000 messages,
    stored in memory on the client rsyslog daemon.  For many systems at
    NSC, that would cover several hours of server outage.  Systems that
    generate large amounts of logs, may want to tune that, or enable
    disk-assisted queueing, where rsyslog stores "overflow" on disk.
    
    In order for the client to detect that the log server is gone, it
    needs to use TCP or RELP, not UDP.  We thus change the default of
    the protocol parameter of syslog::client to "tcp" as well.
    
    Preliminary support for disk-assisted queueing is included, but we
    have had some troubles getting this mode to work well in our testing
    (rsyslogd hung when shut down, for example), so consider that support
    to be experimental for the time being!
    
    Currently, we generate old-style directives in the configuration
    snippet.  This works both in rsyslog version 5 (RHEL-6) and rsyslog
    version 8 (RHEL-7 and RHEL-8), so we don't need multiple code paths
    to handle them both.  However, when we can retire version 5 support
    some time in the future, we should transition to RainerScript for
    this.
    faa954bc
    Do client queueing to handle server outages.
    Thomas Bellman authored
    Add support to syslog::client to queue up messages in the client if
    the server can't be reached.  This should allow us to not lose log
    messages in case of shorter outages (hours, but not days) of the log
    server, whether planned or unscheduled.
    
    The defult setting is to have a queue of at most 100'000 messages,
    stored in memory on the client rsyslog daemon.  For many systems at
    NSC, that would cover several hours of server outage.  Systems that
    generate large amounts of logs, may want to tune that, or enable
    disk-assisted queueing, where rsyslog stores "overflow" on disk.
    
    In order for the client to detect that the log server is gone, it
    needs to use TCP or RELP, not UDP.  We thus change the default of
    the protocol parameter of syslog::client to "tcp" as well.
    
    Preliminary support for disk-assisted queueing is included, but we
    have had some troubles getting this mode to work well in our testing
    (rsyslogd hung when shut down, for example), so consider that support
    to be experimental for the time being!
    
    Currently, we generate old-style directives in the configuration
    snippet.  This works both in rsyslog version 5 (RHEL-6) and rsyslog
    version 8 (RHEL-7 and RHEL-8), so we don't need multiple code paths
    to handle them both.  However, when we can retire version 5 support
    some time in the future, we should transition to RainerScript for
    this.
Loading