NVIDIA BlueField BMC Software v24.07
NVIDIA BlueField BMC Software v24.07

Rsyslog

It is possible to dynamically configure rsyslog servers to receive system event log (SEL) messages and/or the BlueField SoC UART console printout (SOL) messages.

SEL messages are received on the rsyslog server in the following format:

Copy
Copied!
            

<Timestamp> <host> <EntryID-hex> | <Date> | <Time> | <Sensor-Type> | <Event-Type> | <Event-Direction> | <Description>

For example:

Copy
Copied!
            

"2024-06-18T11:05:45.926095+03:00 ldev-platform-12-244.exam 75 | 06/18/24 | 08:05:45 UTC | Voltage #0x08 | Lower Non-critical going low | Asserted"

SOL messages are received on the rsyslog server exactly as they appear in the BlueField console, including a timestamp and the hostname:

Copy
Copied!
            

<Timestamp> <host> <message>

For example:

Copy
Copied!
            

"2024-06-18T15:16:28.240538+03:00 ldev-platform-12-244 systemd[1]: Starting RDMA Node Description Daemon"

Note

$EscapeControlCharactersOnReceive and $Escape8BitCharactersOnReceive should be turned off on the rsyslog server side.

The rsyslog configurations define data streams. Each of them includes:

  • Configuration identifier – An index (ranging from 0x00 to 0x09) AND a log type (SEL 0x01 or SOL 0x03)

  • Status – Enable/disable

  • Transport protocol – TCP/UDP

  • Network protocol – IPv4/IPv6

  • Server address

  • Port

Note that configurations with the same index but different log types are considered to be different configurations. For example, 0x01-SOL and 0x01-SEL are distinct configurations.

The following diagram illustrates an example of three rsyslog servers receiving four data streams:

image-2024-6-18_12-9-20-version-1-modificationdate-1724079320950-api-v2.png

This setup requires four configurations:

  • Configuration 0x00-SOL – Server1 receives SOL

  • Configuration 0x01-SOL – Server2 receives SOL

  • Configuration 0x00-SEL – Server2 receives SEL

  • Configuration 0x01-SEL – Server3 receives SEL

Note

The BMC rsyslog configuration files located under /etc/rsyslog.d are automatically generated and are read-only. These files can only be modified using the IPMI commands listed later on this page.

IPMI Commands

The following table lists the IPMI commands for setting and getting rsyslog servers configurations:

netfunc

cmd

data

Description

0x32

0xD3

<Index> <LogType>

Get rsyslog status – Displays information of the configured rsyslog server

The request contains the index and the log type of the rsyslog server configuration, and it is 2 bytes long.

The response contains the following information:

Copy
Copied!
            

<Index> <LogType> <Status> <TransportProtocol> <NetworkProtocol> <ServerAddress> <Port>

  • Byte 1 – Completion code:

    • 0x00 – Success (does not appear in IPMI textual response)

    • 0x01 – Failure (the rest does not appear in IPMI response)

  • Byte 2 – Index

    • Index of server (0x00-0x09)

  • Byte 3 – LogType

    • 0x01 – SEL

    • 0x03 – SOL

  • Byte 4 – Status

    • 0x00 – Disabled

    • 0x01 – Enabled

  • Byte 5 – Transport protocol

    • 0x00 – UDP

    • 0x01 – TCP

  • Byte 6 – Network protocol

    • 0x00 – IPv4

    • 0x01 – IPv6

  • Byte 7-n – Rsyslog server address

    • Rsyslog addr (4/16 Bytes)

  • Byte n+1-n+2 – Port

    • Rsyslog port. LSB first.

The response is 12 bytes long for IPv4 and 24 bytes long for IPv6.

0x32

0xD4

<Index> <LogType> <Status> <TransportProtocol> <NetworkProtocol> <ServerAddress> <Port>

Set rsyslog status –

  • Configures a new rsyslog server configuration if the configuration <Index> <LogType> does not exist.

  • Modifies an existing rsyslog server configuration if the configuration <Index> <LogType> does exist.

The command contains the following information:

  • Byte 1 – Index

    • Index of server (0x00-0x09)

  • Byte 2 – LogType

    • 0x01 – SEL

    • 0x03 – SOL

  • Byte 3 – Status

    • 0x00 – Disabled

    • 0x01 – Enabled

  • Byte 4 - Transport protocol

    • 0x00 – UDP

    • 0x01 – TCP

  • Byte 5 - Network protocol

    • 0x00 – IPv4

    • 0x01 – IPv6

  • Byte 6-n – Rsyslog server address

    • Rsyslog addr (4/16 Bytes)

  • Byte n+1-n+2 – Port

    • Rsyslog port. LSB first.

The command data is 11 bytes long for of IPv4 and 23 bytes log for IPv6.

The response contains the completion code and is 1 byte long. The success completion code does not appear in IPMI textual response.


Usage Examples

Setting Rsyslog Status of Two Configurations

The following commands create or modify two different rsyslog configurations with I ndex 0x00 and LogTypes SEL/SOL :

netfunc: 0x32, cmd: 0xD4, Indx: 0x00, LogType: 0x01(SEL) / 0x03(SOL), status: 0x01 (Enabled), TP: 0x01 (TCP), NP: 0x00 (IPv4) Address: 0x0A 0xED 0x33 0xF4 (10.237.51.244) Port: 0xFA 0x13 (5114)

Copy
Copied!
            

root@dpu-bmc:~# ipmitool raw 0x32 0xD4 0x00 0x01 0x01 0x01 0x00 0x0A 0xED 0x33 0xF4 0xFA 0x13 root@dpu-bmc:~# ipmitool raw 0x32 0xD4 0x00 0x03 0x01 0x01 0x00 0x0a 0xed 0x33 0xf4 0xfa 0x13

Now the same rsyslog server receives both SEL and SOL messages.

The following command disables the rsyslog configurations with Index 0x00 and LogTypes SOL:

netfunc: 0x32, cmd: 0xD4, Indx: 0x00, LogType: 0x03 (SOL), status: 0x00 (Disabled), TP: 0x01 (TCP), NP: 0x00 (IPv4) Address: 0x0A 0xED 0x33 0xF4 (10.237.51.244) Port: 0xFA 0x13 (5114)

Copy
Copied!
            

root@dpu-bmc:~# ipmitool raw 0x32 0xD4 0x00 0x03 0x00 0x01 0x00 0x0A 0xED 0x33 0xF4 0xFA 0x13

Now the rsyslog server receives only SEL messages as the SOL configuration is disabled:

netfunc: 0x32, cmd: 0xD3, Indx: 0x00, LogType: 0x01(SEL) / 0x03(SOL)

Copy
Copied!
            

root@dpu-bmc:~# ipmitool raw 0x32 0xD3 0x00 0x01 00 01 01 01 00 0a ed 33 f4 fa 13 root@dpu-bmc:~# ipmitool raw 0x32 0xD3 0x00 0x03 00 03 00 01 00 0a ed 33 f4 fa 13


Setting Rsyslog Status with IPv6 Address

The following command creates or modified an rsyslog configuration with an IPv6 address:

netfunc: 0x32, cmd: 0xD4, Indx: 0x07, LogType: 0x01 (SEL), status: 0x01 (Enabled), TP: 0x01 (TCP), NP: 0x01 (IPv6) Address: 0xFD 0xFD 0xFD 0xFD 0x00 0x10 0x02 0x37 0x02 0x50 0x56 0xFF 0xFE 0x30 0x33 0xF4 (FDFD:FDFD:10:237:250:56FF:FE30:33F4) Port: 0xFA 0x13 (5114)

Copy
Copied!
            

root@dpu-bmc:~# ipmitool raw 0x32 0xD4 0x07 0x01 0x01 0x01 0x01 0xfd 0xfd 0xfd 0xfd 0x00 0x10 0x02 0x37 0x02 0x50 0x56 0xff 0xfe 0x30 0x33 0xf4 0xfa 0x13


Setting Rsyslog Status with Invalid Argument

The following command attempts to create an rsyslog server configuration with an invalid index 0x0A (Valid indexes are 0x00-0x09):

netfunc: 0x32, cmd: 0xD4, Indx: 0x0A, LogType: 0x01 (SEL), status: 0x01 (Enabled), TP: 0x01 (TCP), NP: 0x00 (IPv4) Address: 0x0A 0xED 0x33 0xF4 (10.237.51.244) Port: 0xFA 0x13 (5114)

Copy
Copied!
            

root@dpu-bmc:~# ipmitool raw 0x32 0xD4 0x0A 0x01 0x01 0x01 0x00 0x0A 0xED 0x33 0xF4 0xFA 0x13 Unable to send RAW command (channel=0x0 netfn=0x32 lun=0x0 cmd=0xd4 rsp=0xcc): Invalid data field in request


Getting Rsyslog Status Information

The following command displays the information of the rsyslog configuration with index 0 and LogType SEL :

netfunc: 0x32, cmd: 0xD3, Indx: 0x00, LogType: 0x01(SEL)

Copy
Copied!
            

root@dpu-bmc:~# ipmitool raw 0x32 0xD3 0x00 0x01 00 01 01 01 00 0a ed 33 f4 fa 13


Getting Non-existing Rsyslog Server Information

The following command attempts to receive an information of a non-existing rsyslog configuration with index 0x06 and LogType SEL :

netfunc: 0x32, cmd: 0xD3, Indx: 0x06, LogType: 0x01(SEL)

Copy
Copied!
            

root@dpu-bmc:~# ipmitool raw 0x32 0xD3 0x06 0x01 Unable to send RAW command (channel=0x0 netfn=0x32 lun=0x0 cmd=0xd3 rsp=0xcc): Invalid data field in request

© Copyright 2024, NVIDIA. Last updated on Aug 19, 2024.