Go to main content

man pages section 8: System Administration Commands

Exit Print View

Updated: Thursday, June 13, 2019
 
 

fmdump(8)

Name

fmdump - fault management log viewer

Synopsis

fmdump [[-e | -i | -I] | -A ] [-f] [-mvVp] [-c class] [-R root]
     [-t time] [-T time] [-u uuid] [-n name[.name]*[=value]]
     [-E ENA] [file] ...

Description

The fmdump utility can be used to display the contents of any of the log files associated with the Solaris Fault Manager, fmd(8). The Fault Manager runs in the background on each Solaris system. It receives telemetry information relating to problems detected by the system software, diagnoses these problems, and initiates proactive self-healing activities such as disabling faulty components.

The fmdump utility is not intended as the primary administrative interface to the Fault Manager. For that purpose, use fmadm (and see fmadm(8)). The fmdump utility simply dumps Fault Manager historical logs with little further interpretation, and can include implementation detail without explanation. See the ATTRIBUTES section below.

The Fault Manager maintains several sets of log files for use by service personnel and, to a lesser extent, administrators:

error log

A log that records error telemetry, the symptoms of problems detected by the system.

info log

A log that records informational events. This is realized as two sets of log files: high-value informational events, and other informational events.

fault log

A log that records fault diagnosis information, the problems believed to explain the symptoms recorded in the error and info logs.

A log file set consists of the current active log file together with a possible number of older rotated log files in that set. All logs are managed with logadm(8) and have entries in /etc/logadm.conf.

Note that the fmdump utility dumps the current log file and all rotated log files for the target set. It therefore displays the entire log history. For the fault log, in particular, it is important to recognize that fmdump will show all problems ever diagnosed and is not limited to still-current problems. (Use fmadm faulty for that information.)

By default, fmdump displays the contents of the fault log, which records the result of each diagnosis made by the fault manager or one of its component modules. The error log can be selected using –e, the info log with –i, and the high-value info log with –I; or a specific log file path may be specified as [file] on the command line (which will dump just that file and not look for rotated versions of the log). One can also use option –A to aggregate all logs, or a set of log file paths listed on the command line.

An example of a default fmdump display follows:

# fmdump
TIME                 UUID                                 SUNW-MSG-ID EVENT
Mar 23 14:06:35.2682 0a11a1a7-a8ce-c941-8527-8d7a9d320071 ZFS-8000-CS Diagnosed
Mar 25 14:51:41.2261 0a11a1a7-a8ce-c941-8527-8d7a9d320071 FMD-8000-4M Repaired
Mar 25 14:51:41.2523 0a11a1a7-a8ce-c941-8527-8d7a9d320071 FMD-8000-6U Resolved
May 31 23:35:39.9146 c63ac52e-506b-c1cc-e965-ff3b8544490d SMF-8000-YX Diagnosed
...

(Output wraps on displays of 80 or fewer characters.)

This dumps the fault log, because no command line options or arguments selected any other log. The fault log records the lifecycle of problems diagnosed by the Fault Manager or its component modules, from initial problem diagnosis to problem resolution.

Each problem recorded in the fault log is identified by:

  • The timestamp of the event describing the problem lifecycle state change.

  • A Universal Unique Identifier (UUID) that can be used to uniquely identify this particular problem across any set of systems. All events describing problem lifecycle state changes for a given problem will use the same UUID (as above: we see initial diagnosis and, later, repair and resolution all quoting the same problem UUID).

  • A message identifier that can be used to access a corresponding knowledge article located at the web site, http://support.oracle.com/msg/

If a problem requires action by a human administrator or service technician or affects system behavior, the Fault Manager also issues a human-readable message to syslogd(8). This message provides a summary of the problem and a reference to the knowledge article on the web site, http://support.oracle.com/msg/. The fmdump utility can dump fltlog entries in a similar format to that rendered to syslog through use of the –m option.

You can use the –v and –V options to expand the display from a single-line summary to increased levels of detail for each event recorded in the log. The –p option can be used with –V to request “prettier” output.

The –c, –t, –T, –n and –u options can be used to filter the output by selecting only those events that match the specified class, range of times, or uuid. If more than one filter option is present on the command-line, the options combine to display only those events that are selected by the logical AND of the options. If more than one instance of the same filter option is present on the command-line, the like options combine to display any events selected by the logical OR of the options. For example, the command:

# fmdump -u uuid1 -u uuid2 -t 02Dec09

...selects events whose attributes are (uuid1 OR uuid2) AND (time on or after 02Dec09).

Options

The following options are supported:

–A

Perform log aggregation. If one of more log file paths are listed on the command line, then aggregate those files; otherwise aggregate all known log types, including all logadm-rotated files. Logs are merged in time order but with the characteristic that any two records from the same log file are ordered in the aggregation exactly as they were in the original log file (which is in the order they were received and processed by the Fault Manager, which will be an approximate time order).

You cannot use other log set selection options with –A: –e, –i, or –I. Filter options such as –c, –t, –T, and –n can be used, but –u cannot. Output options –v, –V, and –p are available, but –m is not. Option –f will follow all the selected logs.

–c class

Select events that match the specified class. The class argument can use the glob pattern matching syntax described in sh(1). The class represents a hierarchical classification string indicating the type of telemetry event. For more information about predictive self-healing, see http://support.oracle.com/msg/.

–e

Display events from the fault management error log instead of the fault log.

The error log contains Private telemetry information used by Sun's automated diagnosis software. This information is recorded to facilitate post-mortem analysis of problems and event replay, and should not be parsed or relied upon for the development of scripts and other tools. See attributes(7) for information about Sun's rules for Private interfaces.

–E ENA

Select events, of any generation, that match the specified ENA value. For detectors that support ENA, this option can be used to show multiple events associated with the same operation.

–f

Follow the growth of the log file (or files if using –A) by waiting for additional data. fmdump enters an infinite loop where it will sleep for a second, attempt to read and format new data from the log file, and then go back to sleep. This loop can be terminated at any time by sending an interrupt (Control-C).

–m

Print the localized diagnosis message associated with each entry in the fault log.

–n name[.name]*[=value]

Select log events (from the log(s) selected on the command line) that have properties with a matching name (and optionally a matching value). For string properties the value can be a regular expression match. Regular expression syntax is described in the EXTENDED REGULAR EXPRESSIONS section of the regex(7) manual page. Be careful when using the characters:

$  *  {  ^  |  (  )  \

...or a regular expression, because these are meaningful to the shell. It is safest to enclose any of these in single quotes. For numeric properties, the value can be octal, hex, or decimal.

–p

Combined with –V (very verbose) option, requests that the pretty-printing options that are available are, in fact, performed.

–R dir

Use the specified root directory for the log files accessed by fmdump, instead of the default root (/).

–t time

Select events that occurred at or after the specified time. The time can be specified using any of the following forms:

mm/dd/yy hh:mm:ss

Month, day, year, hour in 24-hour format, minute, and second. Any amount of whitespace can separate the date and time. The argument should be quoted so that the shell interprets the two strings as a single argument.

mm/dd/yy hh:mm

Month, day, year, hour in 24-hour format, and minute. Any amount of whitespace can separate the date and time. The argument should be quoted so that the shell interprets the two strings as a single argument.

mm/dd/yy

12:00:00AM on the specified month, day, and year.

ddMonyy hh:mm:ss

Day, month name, year, hour in 24-hour format, minute, and second. Any amount of whitespace can separate the date and time. The argument should be quoted so that the shell interprets the two strings as a single argument.

ddMonyy hh:mm

Day, month name, year, hour in 24-hour format, and minute. Any amount of whitespace can separate the date and time. The argument should be quoted so that the shell interprets the two strings as a single argument.

Mon dd hh:mm:ss

Month, day, hour in 24-hour format, minute, and second of the current year.

yyyy-mm-dd [T hh:mm[:ss]]

Year, month, day, and optional hour in 24-hour format, minute, and second. The second, or hour, minute, and second, can be optionally omitted.

ddMonyy

12:00:00AM on the specified day, month name, and year.

hh:mm:ss

Hour in 24-hour format, minute, and second of the current day.

hh:mm

Hour in 24-hour format and minute of the current day.

Tns | Tnsec

T nanoseconds ago where T is an integer value specified in base 10.

Tus |Tusec

T microseconds ago where T is an integer value specified in base 10.

Tms | Tmsec

T milliseconds ago where T is an integer value specified in base 10.

Ts | Tsec

T seconds ago where T is an integer value specified in base 10.

Tm |Tmin

T minutes ago where T is an integer value specified in base 10.

Th |Thour

T hours ago where T is an integer value specified in base 10.

Td |Tday

T days ago where T is an integer value specified in base 10.

You can append a decimal fraction of the form .n to any –t option argument to indicate a fractional number of seconds beyond the specified time.

–T time

Select events that occurred at or before the specified time. time can be specified using any of the time formats described for the –t option.

–u uuid

Select problem diagnosis events in the fault log that exactly match the specified uuid. Each diagnosis is associated with a Universal Unique Identifier (UUID) for identification purposes. The –u option can be combined with other options, such as –v, to show all of the details associated with a particular diagnosis. Note that multiple fault log events can be associated with the same problem diagnosis UUID—all events describing the lifecycle of a single problem (from initial diagnosis to final resolution) quote the same problem UUID.

If the –e option and –u option are both present, the error events that are cross-referenced by the specified diagnosis are displayed.

–v

Display verbose event detail. The event display is enlarged to show additional common members of the selected events.

–V

Display very verbose event detail. The event display is enlarged to show every member of the name-value pair list associated with each event. In addition, for fault logs, the event display includes a list of cross-references to the corresponding errors that were associated with the diagnosis.

Use –p with –V to request pretty-printing.

Operands

The following operands are supported:

file

Specifies an alternate log file (or files if using –A) to display instead of the system fault log. The fmdump utility determines the type of the specified log automatically and produces appropriate output for the selected log.

Examples

Example 1 Retrieving Given Class from fmd Log

Use any of the following commands to retrieve information about a specified class from the fmd log. The complete class name is ereport.io.ddi.context.

# fmdump -Ve -c 'ereport.io.ddi.context'
# fmdump -Ve -c 'ereport.*.context'
# fmdump -Ve -n 'class=ereport.io.ddi.context'
# fmdump -Ve -n 'class=ereport.*.context'

Any of the preceding commands produces the following output:

Oct 06 2007 11:53:20.975021712 ereport.io.ddi.context
        nvlist version: 0
                class = ereport.io.ddi.context
                ena = 0x1b03a15ecf00001
                detector = (embedded nvlist)
                nvlist version: 0
                        version = 0x0
                        scheme = dev
                        device-path = /
                (end detector)

                __ttl = 0x1
                __tod = 0x470706b0 0x3a1da690
Example 2 Retrieving Specific Detector Device Path from fmd Log

The following command retrieves a detector device path from the fmd log.

# fmdump -Ve -n 'detector.device-path=.*/disk@1,0$'
Oct 06 2007 12:04:28.065660760 ereport.io.scsi.disk.rqs
nvlist version: 0
       class = ereport.io.scsi.disk.rqs
       ena = 0x453ff3732400401
       detector = (embedded nvlist)
                nvlist version: 0
                        version = 0x0
                        scheme = dev
                        device-path = /pci@0,0/pci1000,3060@3/disk@1,0
                (end detector)

                __ttl = 0x1
                __tod = 0x4707094c 0x3e9e758

Exit Status

The following exit values are returned:

0

Successful completion. All records in the log file were examined successfully.

1

A fatal error occurred. This prevented any log file data from being examined, such as failure to open the specified file.

2

Invalid command-line options were specified.

3

The log file was opened successfully, but one or more log file records were not displayed, either due to an I/O error or because the records themselves were malformed. fmdump issues a warning message for each record that could not be displayed, and then continues on and attempts to display other records.

Files

/var/fm/fmd

Fault management log directory

The fmdump utility requires the user to be assigned the solaris.fm.read RBAC authorization ("Fault Information" or "Fault Management" RBAC profile) to read files in the /var/fm/fmd directory

/var/fm/fmd/errlog

Fault management error log

/var/fm/fmd/fltlog

Fault management fault log

/var/fm/fmd/infolog_hival

High-value informational log

/var/fm/fmd/infolog

Informational log

Attributes

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Availability
system/fault-management
Interface Stability
See below

The command-line options are Uncommitted. The human-readable error log and informational log output is Private. The human-readable fault log output is Uncommitted.

See Also

sh(1), libexacct(3LIB), attributes(7), regex(7), fmd(8), fmstat(8), logadm(8), syslogd(8)

http://support.oracle.com/msg/

Notes

Fault logs contain references to records stored in error logs that can be displayed using fmdump –V to understand the errors that were used in the diagnosis of a particular fault. These links are preserved if an error log is renamed as part of log rotation. They can be broken by removing an error log file, or by moving it to another filesystem directory. fmdump can not display error information for such broken links. It continues to display any and all information present in the fault log.