Page MenuHomePhabricator

Relax programname restriction in php-wmerrors rsyslog rule (assumes php7 or php8 prefix)
Open, In Progress, LowPublic

Description

The rsyslog configuration defined in the mediawiki chart uses a fairly restrictive filter on programname when defining UDP log shipping rules. We should consider relaxing that (see TODO), lest it bite us when PHP 9 becomes a thing.


Original description

While looking into T384335: Move rsyslog-generated mediawiki logs within k8s to their own kafka topics I noticed the following in charts/mediawiki/templates/rsyslog/configmap.yaml.tpl:

input(type="imudp" port="10514" address="{{ .Values.mw.logging.allowed_address }}" ruleset="udp_localhost_to_kafka")
# For messages generated by php-wmerrors, also ship them to udp2log
# Emulate MediaWiki's wfDebugLog / wfErrorLog format
template(name="MediaWiki" type="string" string="%programname% %timegenerated% %HOSTNAME%: %msg%\n")
if ($programname startswith 'php7.')  then {
    action(type="omfwd"
            Target={{ (splitList ":" .Values.mw.logging.udp2log_hostport) | first | quote }}
            Port={{ (splitList ":" .Values.mw.logging.udp2log_hostport) | last | quote }}
            Protocol="udp"
            Name="MediaWiki"
            {{- if .Values.mw.logging.udp2log_ratelimit_interval }}
            RateLimit.Interval={{ .Values.mw.logging.udp2log_ratelimit_interval | default 1 | quote }}
            RateLimit.Burst={{ .Values.mw.logging.udp2log_ratelimit_burst | default 100 | quote }}
            {{- end }}
    )
}

Which I'm assuming will need adaptation for php8

Related Objects

StatusSubtypeAssignedTask
ResolvedNone
ResolvedReedy
StalledNone
OpenNone
ResolvedNone
ResolvedNone
ResolvedReedy
ResolvedKrinkle
ResolvedKrinkle
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
ResolvedLucas_Werkmeister_WMDE
ResolvedNone
ResolvedJdforrester-WMF
ResolvedDaimona
ResolvedJdforrester-WMF
DeclinedNone
Resolved• Scott_French
Resolved• Scott_French
Resolved• Scott_French
Resolvedcscott
Resolved• Scott_French
DuplicatePRODUCTION ERRORNone
ResolvedPRODUCTION ERRORMichael
ResolvedPRODUCTION ERRORMichael
ResolvedMichael
DuplicatePRODUCTION ERRORNone
ResolvedTgr
ResolvedNone
Resolved• DAlangi_WMF
ResolvedTgr
Resolved• DAlangi_WMF
ResolvedTgr
ResolvedTgr
Resolved• Atieno
ResolvedNone
Resolvedbrouberol
Resolved• Scott_French
Resolved• Scott_French
Resolved• Scott_French
Resolved• Scott_French
Resolved• Scott_French
Resolved• Scott_French
ResolvedKrinkle
ResolvedKrinkle
Resolved• Scott_French
ResolvedKrinkle
ResolvedTgr
Resolved• Scott_French
Resolvedjnuche
ResolvedJdforrester-WMF
ResolvedBUG REPORT• bd808
ResolvedReedy
ResolvedReedy
Resolvedseanleong-WMDE
StalledNone
OpenNone
ResolvedLucas_Werkmeister_WMDE
ResolvedDaimona
ResolvedDaimona
ResolvedDaimona
OpenNone
ResolvedUmherirrender
ResolvedArendpieter
ResolvedUmherirrender
ResolvedUmherirrender
Resolved• mszabo
Resolvedtstarling
ResolvedUmherirrender
Resolved• Dreamy_Jazz
Resolved• Dreamy_Jazz
ResolvedPhysikerwelt
ResolvedTgr
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedNone
ResolvedUmherirrender
ResolvedNone
ResolvedNone
ResolvedkarapayneWMDE
ResolvedAudreyPenven_WMDE
ResolvedAudreyPenven_WMDE
ResolvedLucas_Werkmeister_WMDE
ResolvedLucas_Werkmeister_WMDE
ResolvedUmherirrender
Resolvedthiemowmde
ResolvedLucas_Werkmeister_WMDE
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedUmherirrender
Resolved• mszabo
ResolvedxSavitar
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedDaimona
Resolvedcscott
ResolvedArendpieter
OpenNone
ResolvedUmherirrender
Resolved• larissagaulia
ResolvedUmherirrender
ResolvedJdforrester-WMF
OpenNone
OpenNone
ResolvedArendpieter
OpenNone
ResolvedReedy
OpenNone
OpenNone
ResolvedUmherirrender
OpenNone
ResolvedUmherirrender
ResolvedUmherirrender
Resolvedsiebrand
ResolvedUmherirrender
Resolved• Dreamy_Jazz
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedUmherirrender
OpenNone
OpenNone
OpenNone
ResolvedNone
OpenDaimona
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
ResolvedKrinkle
Resolved• Scott_French
In ProgressNone

Event Timeline

Change #1127556 had a related patch set uploaded (by Scott French; author: Scott French):

[operations/deployment-charts@master] mediawiki: enable udp2log forwarding on 8.1

https://gerrit.wikimedia.org/r/1127556

Thanks for catching that, @fgiunchedi! Yes, that was, alas, an oversight.

Change #1127556 merged by jenkins-bot:

[operations/deployment-charts@master] mediawiki: enable udp2log forwarding on 8.1

https://gerrit.wikimedia.org/r/1127556

Mentioned in SAL (#wikimedia-operations) [2025-03-13T19:47:45Z] <swfrench@deploy2002> Started scap sync-world: apply rsyslog config changes - T388799

Mentioned in SAL (#wikimedia-operations) [2025-03-13T19:54:36Z] <swfrench@deploy2002> Finished scap sync-world: apply rsyslog config changes - T388799 (duration: 08m 09s)

• Scott_French changed the task status from Open to In Progress.Mar 13 2025, 7:57 PM
• Scott_French triaged this task as Low priority.

Alright, the rsyslog config will how match on both the 'php7.' and 'php8.' prefix, and I've added a TODO to consider whether that can be simplified to just 'php'. I'll hold onto this until I can resolve that.

• Scott_French renamed this task from php-wmerrors rsyslog rule selects on php7 only to Relax programname restriction in php-wmerrors rsyslog rule (assumes php7 or php8 prefix).Thu, Oct 8, 1:40 PM
• Scott_French removed • Scott_French as the assignee of this task.
• Scott_French updated the task description. (Show Details)

Unassigning, as I won't have time to work on this. This makes sense to do, but is clearly not a high priority for the moment.