Flash Manager

General

Provides functionality to configure and rotate syslogs while storing into RAM or Flash

This OpenSync manager is responsible for storing system generated logs through syslog framework in the file system through configurable target option of device flash, rampoos or both. The rotational attribute can also be configured through kconfig.

Northbound API

FM uses Node_Config/Node_State tables. This is currently the default:

root@caesar:~# ovsh s Node_State -T -w module==FM +-----------+-----------+---------------+--------+---------+--------------+ | _uuid     | _version  | key           | module | persist | value        | +-----------+-----------+---------------+--------+---------+--------------+ | 6efd~9cb8 | 7115~f9e0 | FMLOG_options | FM     | true    | ramoops_only | +-----------+-----------+---------------+--------+---------+--------------+

FMLOG_options can have values:

  1. flash_ramoops - full means logging to flash and ramoops enabled;

  2. flash_only - flash means logging to flash only;

  3. ramoops_only - ramoops means logging to ramoops only;

  4. off - logging disabled.

Southbound API

We can configure FM via Kconfig:

config MANAGER_FM_CFG string "FM Startup configuration" default "fm;true;needs_plan_b=true" help Flash Manager startup configuration config FM_LOG_FILE string "Name of the log file to rotate" default "messages" help Name of the base log file to rotate config FM_LOG_ROTATED_FILE string "Name of the rotated log file" default "messages.0" help Name of the rotated log file config FM_LOG_PATH string "Path where FM_LOG_PATH and FM_LOG_ROTATED_FILE are stored" default "/var/log" help Path to log files config FM_LOG_FLASH_ARCHIVE_PATH string "Path where to keep archived syslogs on flash" default "$(INSTALL_PREFIX)/log_archive" help Path where to keep archived syslogs on flash when logging to flash is enabled config FM_LOG_RAM_ARCHIVE_PATH string "Path where to keep archived syslogs on RAM" default "/var/log/opensync/log_archive" help Path where to keep archived syslogs on RAM when logging to RAM is enabled config FM_LOG_ARCHIVE_SUBDIRECTORY string "Subdirectory in the archive directory to store syslogs" default "syslog" help Subdirectory in the archive directory to store syslogs config FM_LOG_TO_RAMOOPS bool "Logging to ramoops" default y help Logging to RAMOOPS config FM_LOG_TO_FLASH bool "Logging to flash" default n help Logging to flash only config FM_RAMOOPS_BUFFER string "Default path to ramoops buffer" default "/dev/pmsg0" help Path to a secured userspace-accessible pstore object config FM_BT_PATH string "Default path for backtrace syslogs" default "/var/log/opensync/crash" help Path to a destination directory for backtrace syslogs config FM_LOG_CRASH_ARCHIVE_PATH string "Path where to keep archived syslogs on RAM" default "/var/log/opensync/log_archive/crash" help Path where to keep archived syslogs on RAM when logging to RAM is enabled config FM_MAX_ROTATION_SYSLOG_FLASH_CNT int "Maximum number of syslog files in flash" default 8 help Maximum number of rotated syslog files to keep in flash config FM_MAX_ROTATION_SYSLOG_RAM_CNT int "Maximum number of syslog files in RAM" default 8 help Maximum number of rotated syslog files to keep in RAM config FM_USE_PERSIST bool "Use persist state by default" default n help Use persist state to keep data with logging type config FM_LOG_PERSISTENT_STATE string "Path to file with log state" default "$(INSTALL_PREFIX)/log_archive/fm_state" help "Path to the file with log state info" config FM_CRASH_COUNT_PATH string "Default filepath for crash file count" default "/tmp/crash_count.txt" help Path to a file destination for crash file count config FM_CRASH_FILE_COUNT int "Maximum number of syslog crash files" default 100 help Maximum number of rotated crash syslog files to keep

Log Roatation

FM rotates syslogs by count: FM_MAX_ROTATION_SYSLOG_FLASH_CNT and FM_MAX_ROTATION_SYSLOG_RAM_CNT. The rotated syslogs will be placed in FM_LOG_FLASH_ARCHIVE_PATH and/or FM_LOG_RAM_ARCHIVE_PATH with log rotation number and timestamp in the name.

Crash syslogs

FM manages crash syslogs on device. Crash syslogs can be found in FM_BT_PATH and after crash log count will be more than FM_CRASH_FILE_COUNT all crash syslogs will be placed in tar archive in FM_LOG_CRASH_ARCHIVE_PATH and FM_BT_PATH will be cleared. Crash syslogs also will be cleared after logpull.

Requirements

None