This section describes how to empty disk-buffer files used in syslog-ng Premium Edition ( syslog-ng PE ).
|
Caution:
Hazard of data loss! You must stop log reception to be able to empty a disk-buffer. If you fail to stop log reception before emptying a disk-buffer, your newly received log messages may get stored in the disk-buffer, overwriting your previous log messages. To avoid log loss, One Identity recommends that you redirect your logs to a different syslog server when emptying your disk-buffer files. |
NOTE: Consider the following while reading this section:
This section uses a simple example configuration with one source and one destination with disk-buffer.
If you are not aware of disk-buffers or you're not sure which of your destinations use disk-buffer, One Identity recommends that you do not proceed with the procedure of emptying your disk-buffer files. Instead, One Identity recommends that you contact our Support Team and open a service request. When opening the service request, describe your issue and attach a collected debug bundle from your system.
For more information about collecting a debug bundle for Microsoft Windows, see How to create a syslog-ng debug bundle archive on Windows operating system.
For more information about collecting a debug bundle for Linux or Unix OS, see How to create a syslog-ng debug bundle on Linux Or Unix operating system.
Recommendation
One Identity recommends that you empty your disk-buffer files before you begin the following:
-
Upgrading syslog-ng Premium Edition ( syslog-ng PE ) from version 6 to 7.
-
Changing the configuration of a remote destination with disk-buffer.
-
Applying a solution that includes the removal of the syslog-ng PE persistent file.
Example configuration for emptying disk-buffer files
The syslog-ng PE application uses the following example configuration to describe how to empty disk-buffer files:
source s_net { network(); }; destination d_logserver { network("10.21.10.20" port(514) disk-buffer( disk-buf-size(2000000) ) ); }; log { source(s_net); destination(d_logserver); };
To empty disk-buffer files,
-
Name the disk-buffer file to empty and the destination statement using it.
If you are not sure about which disk-buffer file to empty, or the destination statement using the disk-buffer file in question, you can use one of the following methods:
-
Check the list and the status of the disk-buffer files.
Examples
-
Non-empty disk-buffer file
Disk-buffer state loaded; filename='/opt/syslog-ng/var/syslog-ng-00000.qf', qout_length='0', qbacklog_length='0', qoverflow_length='0', qdisk_length='3006'
-
IP:PORT information of the destination with the disk-buffer in use
afsocket_dd_qfile(stream,10.21.10.20:514) = { "queue_file": "/opt/syslog-ng/var/syslog-ng-00000.qf" }
For more information about getting information about disk-buffer files, see Information about disk-buffer files.
-
-
Find the destination statement in the syslog-ng PE configuration using the IP:PORT information.
destination d_logserver { network("10.21.10.20" port(514) disk-buffer( disk-buf-size(2000000) ) ); };
-
-
Locate the log statements that use the destination statement you named previously.
-
Disable the sources in the log statements.
Add '#' at the beginning of all source() entries in the log paths.
log { #source(s_net); destination(d_logserver); }
-
Reload syslog-ng PE by entering the /opt/syslog-ng/sbin/syslog-ng-ctl reload command.
-
Check the disk-buffer file status.
For more information, see Getting the status information of disk-buffer files.
-
To enable the sources again, remove '#' from the log paths and reload syslog-ng PE .