(→To do) |
|||
Line 28: | Line 28: | ||
== Remote logging == | == Remote logging == | ||
Anaconda supports remote logging handled through the rsyslog daemon running on the installed system. It can be configured to forward its logs through TCP to an arbitrary machine in network that is also running a syslog daemon. This is controlled with the <code>syslog</code> [[Anaconda/Options|command line option]] | Anaconda supports remote logging handled through the rsyslog daemon running on the installed system. It can be configured to forward its logs through TCP to an arbitrary machine in network that is also running a syslog daemon. This is controlled with the <code>syslog</code> [[Anaconda/Options|command line option]]. | ||
It's up to you how the remote logging daemon is configured, the following is an example that logs the messages into the same files as they are logged on the installed system: | |||
#rsyslog v3 config file | |||
#### MODULES #### | |||
$ModLoad imuxsock.so # provides support for local system logging (e.g. via logger command) | |||
$SystemLogSocketName /home/akozumpl/projects/syslog/socket | |||
# Provides UDP syslog reception | |||
# $ModLoad imudp.so | |||
# $UDPServerRun 6080 | |||
# Provides TCP syslog reception | |||
$ModLoad imtcp.so | |||
$InputTCPServerRun 6080 | |||
#### GLOBAL DIRECTIVES #### | |||
# Use default timestamp format | |||
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat | |||
# File syncing capability is disabled by default. This feature is usually not required, | |||
# not useful and an extreme performance hit | |||
#$ActionFileEnableSync on | |||
#### RULES #### | |||
$template anaconda_tty4, "%timestamp:8:$:date-rfc3164%,%timestamp:1:3:date-subseconds% %syslogseverity-text:::uppercase% %programname%:%msg%\n" | |||
$template anaconda_debug, "%syslogfacility-text%|%hostname%|%syslogseverity-text%|%syslogtag%|%msg%\n" | |||
$template anaconda_syslog, "%timestamp:8:$:date-rfc3164%,%timestamp:1:3:date-subseconds% %syslogseverity-text:::uppercase% %programname%:%msg%\n" | |||
*.* /home/akozumpl/projects/syslog/out_all_debug.log;anaconda_debug | |||
kern.*;\ | |||
daemon.* /home/akozumpl/projects/syslog/messages.log;anaconda_syslog | |||
:programname, contains, "anaconda" /home/akozumpl/projects/syslog/anaconda.log;anaconda_syslog | |||
:programname, contains, "program" /home/akozumpl/projects/syslog/program.log;anaconda_syslog | |||
:programname, contains, "storage" /home/akozumpl/projects/syslog/storage.log;anaconda_syslog | |||
:hostname, contains, "sysimage" /home/akozumpl/projects/syslog/install.log.syslog;anaconda_syslog | |||
# discard those that we logged | |||
:programname, contains, "rsyslogd" ~ | |||
:programname, contains, "anaconda" ~ | |||
:programname, contains, "program" ~ | |||
:programname, contains, "storage" ~ | |||
:hostname, contains, "sysimage" ~ | |||
kern.* ~ | |||
daemon.* ~ | |||
# dump the rest | |||
*.* /home/akozumpl/projects/syslog/unknown_source.log;anaconda_debug | |||
The remote syslog configuration exploits several log message characteristics to be able to sort them into the correct files: | |||
* <code>anaconda.log, storage.log</code> and <code>program.log</code> have the name embedded in them as <code>programname</code>. | |||
* <code>messages.log</code> are coming in from kernel and daemon facilities, just like they do on the installed system | |||
* <code>install.log.syslog</code> made during package installation is logged as a special <code>sysimage</code> hostname. | |||
The sample configuration uses the same message format for remote logging as anaconda does, but note that the remote host can specify its own. | |||
== To do == | == To do == |
Revision as of 12:07, 25 January 2010
Introduction
Anaconda tracks all of its activities in logs. This includes:
- changing installation steps (that roughly correspond to different screens in the graphical installer)
- storage devices detection and manipulation
- installation media detection
- network initialization
- kernel messages
- calls to critical methods within anaconda
- calls to external programs
Logging on the installed system
During the installation the logs are stored in the /tmp
directory:
/tmp/anaconda.log
, the general installation information, particularly the step changes./tmp/storage.log
, storage devices scan and manipulation (hard drives, partitions, LVM, RAID), partitioning/tmp/program.log
, calls to external programs, their output/tmp/messages.log
, messages from kernel and external programs (Network Manager)/tmp/yum.log
, yum's internal log
Certain log messages are also written to the terminals.
/dev/tty3
, messages fromanaconda.log
,storage.log
andyum.log
./dev/tty4
, same asmessages.log
/dev/tty5
, stdout and stderr from external programs
tty3
and tty4
reflect certain log files. Log files always contain messages from all the loglevels, including debug, but the minimal loglevel on the terminals can be controlled with the loglevel
command line option.
There are two other log files created on the target filesystem, in the /root
directory, also accessible at /mnt/sysimage/root
during the installation:
/mnt/sysimage/root/install.log
, log of the package installation process./mnt/sysimage/root/install.log.syslog
, messages from installation chroot logged through the system's syslog. Mostly information about users and groups created during yum's package installation.
Remote logging
Anaconda supports remote logging handled through the rsyslog daemon running on the installed system. It can be configured to forward its logs through TCP to an arbitrary machine in network that is also running a syslog daemon. This is controlled with the syslog
command line option.
It's up to you how the remote logging daemon is configured, the following is an example that logs the messages into the same files as they are logged on the installed system:
#rsyslog v3 config file #### MODULES #### $ModLoad imuxsock.so # provides support for local system logging (e.g. via logger command) $SystemLogSocketName /home/akozumpl/projects/syslog/socket # Provides UDP syslog reception # $ModLoad imudp.so # $UDPServerRun 6080 # Provides TCP syslog reception $ModLoad imtcp.so $InputTCPServerRun 6080 #### GLOBAL DIRECTIVES #### # Use default timestamp format $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat # File syncing capability is disabled by default. This feature is usually not required, # not useful and an extreme performance hit #$ActionFileEnableSync on #### RULES #### $template anaconda_tty4, "%timestamp:8:$:date-rfc3164%,%timestamp:1:3:date-subseconds% %syslogseverity-text:::uppercase% %programname%:%msg%\n" $template anaconda_debug, "%syslogfacility-text%|%hostname%|%syslogseverity-text%|%syslogtag%|%msg%\n" $template anaconda_syslog, "%timestamp:8:$:date-rfc3164%,%timestamp:1:3:date-subseconds% %syslogseverity-text:::uppercase% %programname%:%msg%\n" *.* /home/akozumpl/projects/syslog/out_all_debug.log;anaconda_debug kern.*;\ daemon.* /home/akozumpl/projects/syslog/messages.log;anaconda_syslog :programname, contains, "anaconda" /home/akozumpl/projects/syslog/anaconda.log;anaconda_syslog :programname, contains, "program" /home/akozumpl/projects/syslog/program.log;anaconda_syslog :programname, contains, "storage" /home/akozumpl/projects/syslog/storage.log;anaconda_syslog :hostname, contains, "sysimage" /home/akozumpl/projects/syslog/install.log.syslog;anaconda_syslog # discard those that we logged :programname, contains, "rsyslogd" ~ :programname, contains, "anaconda" ~ :programname, contains, "program" ~ :programname, contains, "storage" ~ :hostname, contains, "sysimage" ~ kern.* ~ daemon.* ~ # dump the rest *.* /home/akozumpl/projects/syslog/unknown_source.log;anaconda_debug
The remote syslog configuration exploits several log message characteristics to be able to sort them into the correct files:
anaconda.log, storage.log
andprogram.log
have the name embedded in them asprogramname
.messages.log
are coming in from kernel and daemon facilities, just like they do on the installed systeminstall.log.syslog
made during package installation is logged as a specialsysimage
hostname.
The sample configuration uses the same message format for remote logging as anaconda does, but note that the remote host can specify its own.
To do
The current list of logging requirements and tasks is maintained in bugzilla 524980.
This page:
- remote logging details
- logging format