Initial commit
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1,2 @@
|
||||
[Service]
|
||||
ExecReload=/bin/kill -HUP $MAINPID
|
||||
@@ -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 2000 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="2000")
|
||||
|
||||
# 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
|
||||
@@ -0,0 +1,22 @@
|
||||
# /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
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
|
||||
|
||||
SRC_URI += "file://rsyslog.conf \
|
||||
file://rsyslog.logrotate \
|
||||
file://rotate-event-logs.service \
|
||||
file://rotate-event-logs.sh \
|
||||
file://rsyslog-override.conf \
|
||||
"
|
||||
|
||||
FILES:${PN} += "${systemd_system_unitdir}/rsyslog.service.d/rsyslog-override.conf"
|
||||
|
||||
PACKAGECONFIG:append = " imjournal"
|
||||
|
||||
do_install:append() {
|
||||
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} += " rotate-event-logs.service"
|
||||
Reference in New Issue
Block a user