summaryrefslogtreecommitdiff
path: root/meta-fii
diff options
context:
space:
mode:
authorGrant Williams <grant.williams@fii-na.com>2022-06-01 23:00:04 +0300
committerVivekanand Veeracholan <vveerach@google.com>2022-06-28 22:24:28 +0300
commit42a823ec0ec7e31c982cd8661c0f560f425029bf (patch)
tree9d4f6058f9bb4f78da0d291322a96f809628c61b /meta-fii
parent651d8c4ff96389a9c62ff87ec50f4f69bda06670 (diff)
downloadopenbmc-42a823ec0ec7e31c982cd8661c0f560f425029bf.tar.xz
meta-fii: meta-mori: Add rsyslog configurations
Add the recipes-extended file containing the rsyslog configuration. Signed-off-by: Grant Williams <grant.williams@fii-na.com> Change-Id: I58c42c613111363db0d783aa5338a72a9f2004d3
Diffstat (limited to 'meta-fii')
-rw-r--r--meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog/rotate-event-logs.service9
-rw-r--r--meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog/rotate-event-logs.sh10
-rw-r--r--meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog/rsyslog-override.conf2
-rw-r--r--meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog/rsyslog.conf79
-rw-r--r--meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog/rsyslog.logrotate32
-rw-r--r--meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog_%.bbappend25
6 files changed, 157 insertions, 0 deletions
diff --git a/meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog/rotate-event-logs.service b/meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog/rotate-event-logs.service
new file mode 100644
index 0000000000..8f3a2bc317
--- /dev/null
+++ b/meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog/rotate-event-logs.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Rotate the event logs
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/rotate-event-logs.sh
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog/rotate-event-logs.sh b/meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog/rotate-event-logs.sh
new file mode 100644
index 0000000000..5a8c5cc10d
--- /dev/null
+++ b/meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog/rotate-event-logs.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+while true; do
+ sleep 60
+ /usr/sbin/logrotate /etc/logrotate.d/logrotate.rsyslog
+ ec=$?
+ if [ $ec -ne 0 ] ; then
+ echo "logrotate failed ($ec)"
+ fi
+done
diff --git a/meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog/rsyslog-override.conf b/meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog/rsyslog-override.conf
new file mode 100644
index 0000000000..14bcc07815
--- /dev/null
+++ b/meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog/rsyslog-override.conf
@@ -0,0 +1,2 @@
+[Service]
+ExecReload=/bin/kill -HUP $MAINPID
diff --git a/meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog/rsyslog.conf b/meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog/rsyslog.conf
new file mode 100644
index 0000000000..b98610635d
--- /dev/null
+++ b/meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog/rsyslog.conf
@@ -0,0 +1,79 @@
+# if you experience problems, check
+# http://www.rsyslog.com/troubleshoot for assistance
+
+# rsyslog v3: load input modules
+# If you do not load inputs, nothing happens!
+# You may need to set the module load path if modules are not found.
+#
+# Ported from debian's sysklogd.conf
+
+# Journal-style logging
+# Limit to no more than 4000 entries in one minute and enable the
+# journal workaround to avoid duplicate entries
+module(load="imjournal" StateFile="/var/log/state"
+ RateLimit.Interval="60"
+ RateLimit.Burst="4000")
+
+# Template for IPMI SEL messages
+# "<timestamp> <ID>,<Type>,<EventData>,[<Generator ID>,<Path>,<Direction>]"
+template(name="IPMISELTemplate" type="list") {
+ property(name="timereported" dateFormat="rfc3339")
+ constant(value=" ")
+ property(name="$!IPMI_SEL_RECORD_ID")
+ constant(value=",")
+ property(name="$!IPMI_SEL_RECORD_TYPE")
+ constant(value=",")
+ property(name="$!IPMI_SEL_DATA")
+ constant(value=",")
+ property(name="$!IPMI_SEL_GENERATOR_ID")
+ constant(value=",")
+ property(name="$!IPMI_SEL_SENSOR_PATH")
+ constant(value=",")
+ property(name="$!IPMI_SEL_EVENT_DIR")
+ constant(value="\n")
+}
+
+# Template for Redfish messages
+# "<timestamp> <MessageId>,<MessageArgs>"
+template(name="RedfishTemplate" type="list") {
+ property(name="timereported" dateFormat="rfc3339")
+ constant(value=" ")
+ property(name="$!REDFISH_MESSAGE_ID")
+ constant(value=",")
+ property(name="$!REDFISH_MESSAGE_ARGS")
+ constant(value="\n")
+}
+
+# Template for Application Crashes
+# "<timestamp> <MessageId>,<MessageArgs>"
+template(name="CrashTemplate" type="list") {
+ property(name="timereported" dateFormat="rfc3339")
+ constant(value=" ")
+ constant(value="OpenBMC.0.1.ServiceFailure")
+ constant(value=",")
+ property(name="$!UNIT")
+ constant(value="\n")
+}
+
+
+# If the journal entry has the IPMI SEL MESSAGE_ID, save as IPMI SEL
+# The MESSAGE_ID string is generated using journalctl and must match the
+# MESSAGE_ID used in IPMI to correctly find the SEL entries.
+if ($!MESSAGE_ID == "b370836ccf2f4850ac5bee185b77893a") then {
+ action(type="omfile" file="/var/log/ipmi_sel" template="IPMISELTemplate")
+}
+
+# If the journal entry has a Redfish MessageId, save as a Redfish event
+if ($!REDFISH_MESSAGE_ID != "") then {
+ action(type="omfile" file="/var/log/redfish" template="RedfishTemplate")
+}
+
+# If the journal entry has a Exit Code, save as a Redfish event
+if ($!EXIT_STATUS != "" and $!EXIT_STATUS != "0") then {
+ action(type="omfile" file="/var/log/redfish" template="CrashTemplate")
+}
+
+#
+# Include all config files in /etc/rsyslog.d/
+#
+$IncludeConfig /etc/rsyslog.d/*.conf
diff --git a/meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog/rsyslog.logrotate b/meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog/rsyslog.logrotate
new file mode 100644
index 0000000000..50ca7dac69
--- /dev/null
+++ b/meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog/rsyslog.logrotate
@@ -0,0 +1,32 @@
+# /etc/logrotate.d/rsyslog - Ported from Debian
+
+# Keep up to four 64k files for ipmi_sel (256k total)
+/var/log/ipmi_sel
+{
+ rotate 3
+ size 64k
+ missingok
+ postrotate
+ systemctl reload rsyslog 2> /dev/null || true
+ endscript
+}
+# Keep up to four 64k files for redfish (256k total)
+/var/log/redfish
+{
+ rotate 3
+ size 64k
+ missingok
+ postrotate
+ systemctl reload rsyslog 2> /dev/null || true
+ endscript
+}
+# Keep up to two 2k files for gpio log (4k total)
+/usr/share/mori-vrlog/gpio.log
+{
+ rotate 1
+ size 2k
+ missingok
+ postrotate
+ systemctl reload rsyslog 2> /dev/null || true
+ endscript
+}
diff --git a/meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog_%.bbappend b/meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog_%.bbappend
new file mode 100644
index 0000000000..92b3fb5213
--- /dev/null
+++ b/meta-fii/meta-mori/recipes-extended/rsyslog/rsyslog_%.bbappend
@@ -0,0 +1,25 @@
+FILESEXTRAPATHS:prepend:mori := "${THISDIR}/${PN}:"
+
+SRC_URI:append:mori = " \
+ file://rsyslog.conf \
+ file://rsyslog.logrotate \
+ file://rotate-event-logs.service \
+ file://rotate-event-logs.sh \
+ file://rsyslog-override.conf \
+ "
+
+FILES:${PN}:append:mori = " ${systemd_system_unitdir}/rsyslog.service.d/rsyslog-override.conf"
+
+PACKAGECONFIG:append:mori = " imjournal"
+
+do_install:append:mori() {
+ install -m 0644 ${WORKDIR}/rotate-event-logs.service ${D}${systemd_system_unitdir}
+ install -d ${D}${systemd_system_unitdir}/rsyslog.service.d
+ install -m 0644 ${WORKDIR}/rsyslog-override.conf \
+ ${D}${systemd_system_unitdir}/rsyslog.service.d/rsyslog-override.conf
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/rotate-event-logs.sh ${D}/${bindir}/rotate-event-logs.sh
+ rm ${D}${sysconfdir}/rsyslog.d/imjournal.conf
+}
+
+SYSTEMD_SERVICE:${PN}:append:mori = " rotate-event-logs.service"