diff --git a/roles/base/templates/rsyslog.conf.j2 b/roles/base/templates/rsyslog.conf.j2
index bde712bb4dd81b8aefab9bd657b19e1ce763b6d2..2489189558875b4d8a243e6bf715bb406e604cfe 100644
--- a/roles/base/templates/rsyslog.conf.j2
+++ b/roles/base/templates/rsyslog.conf.j2
@@ -22,6 +22,11 @@ ruleset(name="incoming") {
   # Send a copy of everything to mtail.
   action(type="ompipe"
          Pipe="/run/mtail.fifo"
+         # Protect the main queue from mtail pipe full: discard messages on
+         # ompipe action queue full.
+         queue.type="FixedArray"
+         queue.size="4096"
+         queue.timeoutEnqueue="0"
          action.resumeRetryCount="-1"
          action.resumeInterval="2"
          action.resumeIntervalMax="30")