mirror of
https://github.com/unraid/webgui.git
synced 2026-04-22 10:08:25 -05:00
Syslog: added log rotation settings
This commit is contained in:
@@ -22,11 +22,16 @@ $syslog = @(array)parse_ini_file('/boot/config/rsyslog.cfg');
|
||||
span.span{display:inline-block;width:224px}
|
||||
</style>
|
||||
<script>
|
||||
function localFolder(state) {
|
||||
if (state) $('#local_folder').show(); else $('#local_folder').hide();
|
||||
function localFolder(local,time) {
|
||||
if (local) $('#local_folder').show(time); else $('#local_folder').hide(time);
|
||||
}
|
||||
function logOptions(log,time) {
|
||||
if (log) $('#log_options').show(time); else $('#log_options').hide(time);
|
||||
}
|
||||
|
||||
$(function(){
|
||||
localFolder(document.syslog.local_server.value);
|
||||
logOptions(document.syslog.log_rotation.value);
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -35,11 +40,11 @@ $(function(){
|
||||
<input type="hidden" name="#command" value="/webGui/scripts/rsyslog_config">
|
||||
|
||||
Local syslog server:
|
||||
: <span class="span"><select name="local_server" class="narrow" size="1" onchange="localFolder(this.value)">
|
||||
: <span class="span"><select name="local_server" class="narrow" onchange="localFolder(this.value,'slow')">
|
||||
<?=mk_option($syslog['local_server'], "", "Disabled")?>
|
||||
<?=mk_option($syslog['local_server'], "1", "Enabled")?>
|
||||
</select></span>
|
||||
<select name="server_protocol" class="narrow" size="1">
|
||||
<select name="server_protocol" class="narrow">
|
||||
<?=mk_option($syslog['server_protocol'], "udp", "UDP")?>
|
||||
<?=mk_option($syslog['server_protocol'], "tcp", "TCP")?>
|
||||
<?=mk_option($syslog['server_protocol'], "both", "Both")?>
|
||||
@@ -53,7 +58,7 @@ Local syslog server:
|
||||
|
||||
<div markdown="1" id="local_folder" style="display:none">
|
||||
Local syslog folder:
|
||||
: <select name="server_folder" class="narrow" size="1">
|
||||
: <select name="server_folder" class="narrow">
|
||||
<?=mk_option(0,'','<custom>','disabled')?>
|
||||
<?foreach ($shares as $share){echo mk_option($syslog['server_folder'], '/mnt/user/'.$share['name'], $share['name']);}?>
|
||||
</select>
|
||||
@@ -61,6 +66,43 @@ Local syslog folder:
|
||||
> Select the share folder where the syslogs will be stored.
|
||||
> It is recommended that you use a share located on the cache drive to prevent array disk spinups.
|
||||
|
||||
Syslog LOG rotation:
|
||||
: <select name="log_rotation" class="narrow" onchange="logOptions(this.value,'slow')">
|
||||
<?=mk_option($syslog['log_rotation'], "", "Disabled")?>
|
||||
<?=mk_option($syslog['log_rotation'], "1", "Enabled")?>
|
||||
</select>
|
||||
|
||||
> By default LOG rotation is disabled and will create a single LOG file of unlimited size.
|
||||
>
|
||||
> Enable LOG rotation to limit the size of the LOG file and specify the number of files to keep in the rotation scheme.
|
||||
|
||||
<div markdown="1" id="log_options" style="display:none">
|
||||
Syslog LOG maximum file size:
|
||||
: <select name="log_size" class="narrow">
|
||||
<?=mk_option($syslog['log_size'], '1M', '1 MB')?>
|
||||
<?=mk_option($syslog['log_size'], '2M', '2 MB')?>
|
||||
<?=mk_option($syslog['log_size'], '5M', '5 MB')?>
|
||||
<?=mk_option($syslog['log_size'], '10M', '10 MB')?>
|
||||
<?=mk_option($syslog['log_size'], '20M', '20 MB')?>
|
||||
<?=mk_option($syslog['log_size'], '50M', '50 MB')?>
|
||||
<?=mk_option($syslog['log_size'], '100M', '100 MB')?>
|
||||
<?=mk_option($syslog['log_size'], '200M', '200 MB')?>
|
||||
<?=mk_option($syslog['log_size'], '500M', '500 MB')?>
|
||||
</select>
|
||||
|
||||
> Specifies the maximum LOG size. When exceeded LOG rotation will occur.
|
||||
|
||||
Syslog LOG number of files:
|
||||
: <select name="log_files" class="narrow">
|
||||
<?=mk_option($syslog['log_files'], '1', '1')?>
|
||||
<?=mk_option($syslog['log_files'], '2', '2')?>
|
||||
<?=mk_option($syslog['log_files'], '3', '3')?>
|
||||
<?=mk_option($syslog['log_files'], '4', '4')?>
|
||||
</select>
|
||||
|
||||
> Specifies the number of additional LOG files to keep in the rotation scheme.
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Remote syslog server:
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
#!/bin/bash
|
||||
ETC=/etc/rsyslog.conf
|
||||
USB=/boot/config/rsyslog.local
|
||||
LOG=/etc/logrotate.d/rsyslog.local
|
||||
|
||||
if grep -qP '^#\*\.\* \?remote$' $ETC; then
|
||||
sed -ri 's/^#(\*\.\* \?remote)$/\1/' $ETC
|
||||
/etc/rc.d/rc.rsyslogd restart &> /dev/null
|
||||
fi
|
||||
if [[ -f $USB ]]; then
|
||||
cp -f $USB $LOG
|
||||
chmod 644 $LOG
|
||||
fi
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
CONF=/boot/config/rsyslog.conf
|
||||
CFG=/boot/config/rsyslog.conf
|
||||
ETC=/etc/rsyslog.conf
|
||||
USB=/boot/config/rsyslog.local
|
||||
LOG=/etc/logrotate.d/rsyslog.local
|
||||
|
||||
# read settings
|
||||
source /boot/config/rsyslog.cfg
|
||||
@@ -57,11 +59,34 @@ else
|
||||
fi
|
||||
|
||||
# copy conf to flash (read settings on reboot)
|
||||
todos <$ETC >$CONF
|
||||
todos <$ETC >$CFG
|
||||
|
||||
# keep local logging disabled at startup
|
||||
# disk mount and disk unmount events are used to start/stop logging
|
||||
sed -ri 's/^(\*\.\* \?remote)/#\1/' $CONF
|
||||
sed -ri 's/^(\*\.\* \?remote)/#\1/' $CFG
|
||||
|
||||
# update syslog rotation
|
||||
if [[ -n $local_server && -n $log_rotation ]]; then
|
||||
cat <<- EOF > $LOG
|
||||
$server_folder/*.log {
|
||||
su nobody users
|
||||
missingok
|
||||
create 0666 nobody users
|
||||
size $log_size
|
||||
rotate $log_files
|
||||
sharedscripts
|
||||
postrotate
|
||||
/bin/kill -HUP \$(cat /var/run/rsyslogd.pid 2>/dev/null) 2>/dev/null || true
|
||||
endscript
|
||||
}
|
||||
EOF
|
||||
chmod 644 $LOG
|
||||
# keep copy on flash
|
||||
cp -f $LOG $USB
|
||||
else
|
||||
# clean up
|
||||
rm -f $LOG $USB
|
||||
fi
|
||||
|
||||
# update syslog daemon
|
||||
/etc/rc.d/rc.rsyslogd restart &> /dev/null
|
||||
|
||||
Reference in New Issue
Block a user