<!--
  MikroTik RouterOS lines forwarded by mikr (Settings > Syslog > Forward).

  mikr sends RFC 3164 with the device name as HOSTNAME and no program name:
    <PRI>Oct 31 10:53:00 knot-lte4 system,info,account user echo logged in from 10.51.20.33 via ssh
  The pre-decoder takes the timestamp and hostname; what is left starts with the
  RouterOS topics, one of which is the severity (system,info,account; script,error,debug).
-->

<decoder name="mikrotik-mikr">
  <prematch type="pcre2">^[a-z0-9-]+(?:,[a-z0-9-]+)*,(?:debug|info|warning|error|critical)(?:,[a-z0-9-]+)* </prematch>
</decoder>

<!-- Siblings: every block named mikrotik-mikr-fields is tried, each adds what it finds. -->

<decoder name="mikrotik-mikr-fields">
  <parent>mikrotik-mikr</parent>
  <regex type="pcre2">^(\S+) (.*)$</regex>
  <order>mikrotik.topics, mikrotik.message</order>
</decoder>

<!-- user echo logged in from 10.51.20.33 via ssh / user rest logged in via api -->
<decoder name="mikrotik-mikr-fields">
  <parent>mikrotik-mikr</parent>
  <regex type="pcre2"> user (\S+) logged (in|out)(?: from (\S+))? via (\S+)$</regex>
  <order>dstuser, mikrotik.login, srcip, mikrotik.via</order>
</decoder>

<!-- login failure for user admin from 203.0.113.7 via ssh (RouterOS format, not yet seen on the stand) -->
<decoder name="mikrotik-mikr-fields">
  <parent>mikrotik-mikr</parent>
  <regex type="pcre2"> login failure for user (.+?) from (\S+) via (\S+)$</regex>
  <order>dstuser, srcip, mikrotik.via</order>
</decoder>

<!-- dhcp lease changed by tcp-msg(winbox):ihor@172.16.91.9 (/ip dhcp-server lease set *8 disabled=yes)
     Changes made by a scheduler or script carry no user@address and are left alone. -->
<decoder name="mikrotik-mikr-fields">
  <parent>mikrotik-mikr</parent>
  <regex type="pcre2"> (.+?) (changed|added|removed|moved|enabled|disabled) by ([^\s:]+):([^\s@]+)@(\S+)(?: \((.*)\))?$</regex>
  <order>mikrotik.object, mikrotik.change, mikrotik.via, dstuser, srcip, mikrotik.command</order>
</decoder>

<!-- ether7 link down / ether7 link up (speed 1G, full duplex) -->
<decoder name="mikrotik-mikr-fields">
  <parent>mikrotik-mikr</parent>
  <regex type="pcre2"> (\S+) link (up|down)\b</regex>
  <order>mikrotik.interface, mikrotik.link</order>
</decoder>
