zabbix_export:
  version: '7.4'
  template_groups:
    - uuid: 846977d1dfed4968bc5f8bdb363285bc
      name: 'Templates/Operating systems'
  templates:
    - uuid: 69bd2593bc53497ca263e3fa3c9dd5bd
      template: 'Linux by Zabbix agent copytest'
      name: 'Linux by Zabbix agent copytest'
      description: |
        This is an official Linux template. It requires Zabbix agent 7.4 or newer.
        
        Notes on filesystem (FS) discovery:
        - The ext4/3/2 filesystem reserves space for privileged usage, typically set at 5% by default.
        - BTRFS allocates a default of 10% of the volume for its own needs.
        - To mitigate potential disasters, FS usage triggers are based on the maximum available space.
          - Utilization formula: 'pused = 100 - 100 * (available / total - free + available)'
        - The FS utilization chart, derived from graph prototypes, reflects FS reserved space as the difference between used and available space from the total volume.
        
        You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/387225-discussion-thread-for-official-zabbix-template-for-linux
        
        Generated by official Zabbix template tool "Templator"
      readme: |
        ## Overview
        
        This is an official Linux template. It requires Zabbix agent 7.4 or newer.
        
        #### Notes on filesystem (FS) discovery:
        - The ext4/3/2 FS reserves space for privileged usage, typically set at 5% by default.
        - BTRFS allocates a default of 10% of the volume for its own needs.
        - To mitigate potential disasters, FS usage triggers are based on the maximum available space.
          - Utilization formula: `pused = 100 - 100 * (available / total - free + available)`
        - The FS utilization chart, derived from graph prototypes, reflects FS reserved space as the difference between used and available space from the total volume.
      groups:
        - name: 'Templates/Operating systems'
      discovery_rules:
        - uuid: 542ca90d4671417982a1488661543001
          name: 'Network interface discovery'
          key: net.if.discovery
          delay: 1h
          filter:
            evaltype: AND
            conditions:
              - macro: '{#IFNAME}'
                value: '{$NET.IF.IFNAME.MATCHES}'
              - macro: '{#IFNAME}'
                value: '{$NET.IF.IFNAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          description: 'The discovery of network interfaces.'
          item_prototypes:
            - uuid: f48e3bb38dc84aae9d4942a0e6887573
              name: 'Interface {#IFNAME}: Inbound packets discarded'
              key: 'net.if.in["{#IFNAME}",dropped]'
              delay: 3m
              preprocessing:
                - type: CHANGE_PER_SECOND
              tags:
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 47deb2d144494110ab8c6df0379f5880
              name: 'Interface {#IFNAME}: Inbound packets with errors'
              key: 'net.if.in["{#IFNAME}",errors]'
              delay: 3m
              preprocessing:
                - type: CHANGE_PER_SECOND
              tags:
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 486826ff23454f8e87b2e5b7e1c6f3b8
              name: 'Interface {#IFNAME}: Bits received'
              key: 'net.if.in["{#IFNAME}"]'
              delay: 3m
              units: bps
              preprocessing:
                - type: CHANGE_PER_SECOND
                - type: MULTIPLIER
                  parameters:
                    - '8'
              tags:
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: ce62ff7289eb4b26b4583051f13eb42d
              name: 'Interface {#IFNAME}: Outbound packets discarded'
              key: 'net.if.out["{#IFNAME}",dropped]'
              delay: 3m
              preprocessing:
                - type: CHANGE_PER_SECOND
              tags:
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 13bc653366874847918bd47b9c46107a
              name: 'Interface {#IFNAME}: Outbound packets with errors'
              key: 'net.if.out["{#IFNAME}",errors]'
              delay: 3m
              preprocessing:
                - type: CHANGE_PER_SECOND
              tags:
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 072ffcd672ae4268a36789284fe15689
              name: 'Interface {#IFNAME}: Bits sent'
              key: 'net.if.out["{#IFNAME}"]'
              delay: 3m
              units: bps
              preprocessing:
                - type: CHANGE_PER_SECOND
                - type: MULTIPLIER
                  parameters:
                    - '8'
              tags:
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 57eac9f9ae7847ee84f936e5f6357db9
              name: 'Interface {#IFNAME}: Operational status'
              key: 'vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"]'
              trends: '0'
              description: 'Reference: https://www.kernel.org/doc/Documentation/networking/operstates.txt'
              valuemap:
                name: ifOperStatus
              preprocessing:
                - type: JAVASCRIPT
                  parameters:
                    - |
                      var newvalue;
                      switch(value) {
                        case "unknown":
                      	newvalue = 0;
                      	break;
                        case "notpresent":
                      	newvalue = 1;
                      	break;
                        case "down":
                      	newvalue = 2;
                      	break;
                        case "lowerlayerdown":
                      	newvalue = 3;
                      	break;
                        case "testing":
                      	newvalue = 4;
                      	break;
                        case "dormant":
                      	newvalue = 5;
                      	break;
                        case "up":
                      	newvalue = 6;
                      	break;  default:
                      	newvalue = "Problem parsing interface operstate in JS";
                      }
                      return newvalue;
              tags:
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
              trigger_prototypes:
                - uuid: d84d97ebfeff4404b21a4051f0c648f1
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2 and (last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#1)<>last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#2))'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: 'last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
                  name: 'Linux: Interface {#IFNAME}: Link down'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: |
                    This trigger expression works as follows:
                    1. It can be triggered if the operations status is down.
                    2. `{$IFCONTROL:"{#IFNAME}"}=1` - a user can redefine the context macro to "0", marking this interface as not important. No new trigger will be fired if this interface is down.
                    3. `last(/TEMPLATE_NAME/METRIC,#1)<>last(/TEMPLATE_NAME/METRIC,#2)` - the trigger fires only if the operational status was up to (1) sometime before (so, does not fire for "eternal off" interfaces.)
                    
                    WARNING: if closed manually - it will not fire again on the next poll, because of .diff.
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: c5c7aaaa639c49039159625405bbc24f
              name: 'Interface {#IFNAME}: Speed'
              key: 'vfs.file.contents["/sys/class/net/{#IFNAME}/speed"]'
              delay: 5m
              trends: '0'
              units: bps
              description: |
                It indicates the latest or current speed value of the interface. The value is an integer representing the link speed expressed in bits/sec.
                This attribute is only valid for the interfaces that implement the ethtool `get_link_ksettings` method (mostly Ethernet).
                
                Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net
              preprocessing:
                - type: CHECK_NOT_SUPPORTED
                  parameters:
                    - '-1'
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '0'
                - type: STR_REPLACE
                  parameters:
                    - '-1'
                    - '0'
                - type: MULTIPLIER
                  parameters:
                    - '1000000'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              tags:
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 7a84c094342247ef849daae98d5db7f5
              name: 'Interface {#IFNAME}: Interface type'
              key: 'vfs.file.contents["/sys/class/net/{#IFNAME}/type"]'
              delay: 1h
              trends: '0'
              description: |
                It indicates the interface protocol type as a decimal value.
                See `include/uapi/linux/if_arp.h` for all possible values.
                Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net
              valuemap:
                name: 'Linux::Interface protocol types'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              tags:
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
          trigger_prototypes:
            - uuid: 1de4e9683d5043259150f9ee259ce07a
              expression: |
                change(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])<0 and last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])>0
                and
                (last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])=6 or last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])=1)
                and
                (last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2)
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                (change(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])>0 and last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"],#2)>0) or
                (last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2)
              name: 'Linux: Interface {#IFNAME}: Ethernet has changed to lower speed than it was before'
              opdata: 'Current reported speed: {ITEM.LASTVALUE1}'
              priority: INFO
              description: 'This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              dependencies:
                - name: 'Linux: Interface {#IFNAME}: Link down'
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2 and (last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#1)<>last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#2))'
                  recovery_expression: 'last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: performance
            - uuid: 2595817e443b4f85921991332475dc3d
              expression: |
                (avg(/Linux by Zabbix agent copytest/net.if.in["{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"]) or
                avg(/Linux by Zabbix agent copytest/net.if.out["{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])) and
                last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])>0
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                avg(/Linux by Zabbix agent copytest/net.if.in["{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"]) and
                avg(/Linux by Zabbix agent copytest/net.if.out["{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])
              name: 'Linux: Interface {#IFNAME}: High bandwidth usage'
              event_name: 'Linux: Interface {#IFNAME}: High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}%)'
              opdata: 'In: {ITEM.LASTVALUE1}, out: {ITEM.LASTVALUE3}, speed: {ITEM.LASTVALUE2}'
              priority: WARNING
              description: 'The utilization of the network interface is close to its estimated maximum bandwidth.'
              manual_close: 'YES'
              dependencies:
                - name: 'Linux: Interface {#IFNAME}: Link down'
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2 and (last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#1)<>last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#2))'
                  recovery_expression: 'last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: performance
            - uuid: e48dea6b8cc942739f2511a895370573
              expression: |
                min(/Linux by Zabbix agent copytest/net.if.in["{#IFNAME}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}
                or min(/Linux by Zabbix agent copytest/net.if.out["{#IFNAME}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                max(/Linux by Zabbix agent copytest/net.if.in["{#IFNAME}",errors],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8
                and max(/Linux by Zabbix agent copytest/net.if.out["{#IFNAME}",errors],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8
              name: 'Linux: Interface {#IFNAME}: High error rate'
              event_name: 'Linux: Interface {#IFNAME}: High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)'
              opdata: 'errors in: {ITEM.LASTVALUE1}, errors out: {ITEM.LASTVALUE2}'
              priority: WARNING
              description: 'It recovers when it is below 80% of the `{$IF.ERRORS.WARN:"{#IFNAME}"}` threshold.'
              manual_close: 'YES'
              dependencies:
                - name: 'Linux: Interface {#IFNAME}: Link down'
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2 and (last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#1)<>last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#2))'
                  recovery_expression: 'last(/Linux by Zabbix agent copytest/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
          graph_prototypes:
            - uuid: 4c42134d218d4a969114cabf075c589c
              name: 'Interface {#IFNAME}: Network traffic'
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: 199C0D
                  item:
                    host: 'Linux by Zabbix agent copytest'
                    key: 'net.if.in["{#IFNAME}"]'
                - sortorder: '1'
                  drawtype: BOLD_LINE
                  color: F63100
                  item:
                    host: 'Linux by Zabbix agent copytest'
                    key: 'net.if.out["{#IFNAME}"]'
                - sortorder: '2'
                  color: 00611C
                  yaxisside: RIGHT
                  item:
                    host: 'Linux by Zabbix agent copytest'
                    key: 'net.if.out["{#IFNAME}",errors]'
                - sortorder: '3'
                  color: F7941D
                  yaxisside: RIGHT
                  item:
                    host: 'Linux by Zabbix agent copytest'
                    key: 'net.if.in["{#IFNAME}",errors]'
                - sortorder: '4'
                  color: FC6EA3
                  yaxisside: RIGHT
                  item:
                    host: 'Linux by Zabbix agent copytest'
                    key: 'net.if.out["{#IFNAME}",dropped]'
                - sortorder: '5'
                  color: 6C59DC
                  yaxisside: RIGHT
                  item:
                    host: 'Linux by Zabbix agent copytest'
                    key: 'net.if.in["{#IFNAME}",dropped]'
      tags:
        - tag: class
          value: os
        - tag: target
          value: linux
      macros:
        - macro: '{$AGENT.TIMEOUT}'
          value: 3m
          description: 'Timeout after which agent is considered unavailable. Works only for agents reachable from Zabbix server/proxy (passive mode).'
          config:
            type: TEXT
            priority: '1'
            label: 'Seconds since the last Zabbix agent seen'
            description: 'Timeout after which agent is considered unavailable.'
        - macro: '{$CPU.UTIL.CRIT}'
          value: '90'
          description: 'Critical threshold of CPU utilization expressed in %.'
          config:
            type: TEXT
            priority: '2'
            section_name: Thresholds
            label: 'Threshold of CPU utilization expressed'
            description: 'Critical threshold of CPU utilization expressed in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IF.ERRORS.WARN}'
          value: '2'
          description: 'Warning threshold of error packet rate. Can be used with interface name as context.'
          config:
            type: TEXT
            priority: '21'
            section_name: Thresholds
            label: 'Threshold of error packet rate'
            description: 'Warning threshold of error packet rate. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IF.UTIL.MAX}'
          value: '90'
          description: 'Used as a threshold in the interface utilization trigger.'
          config:
            type: TEXT
            priority: '20'
            section_name: Thresholds
            label: 'The threshold in the interface utilization'
            description: 'Used as a threshold in the interface utilization trigger. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IFCONTROL}'
          value: '1'
          description: 'Link status trigger will be fired only for interfaces where the context macro equals "1".'
          config:
            type: CHECKBOX
            priority: '19'
            label: 'Interfaces control'
            description: 'Fire a trigger when the interface operational status changes to "Link down".'
            options:
              - checked: '1'
                unchecked: '0'
        - macro: '{$KERNEL.MAXFILES.MIN}'
          value: '256'
          config:
            type: TEXT
            priority: '25'
            section_name: Thresholds
            label: 'Number of open filedescriptors'
            description: 'Configured max number of open filedescriptors. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$KERNEL.MAXPROC.MIN}'
          value: '1024'
          config:
            type: TEXT
            priority: '24'
            section_name: Thresholds
            label: 'Number of processes'
            description: 'Configured max number of processes. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$LOAD_AVG_PER_CPU.MAX.WARN}'
          value: '1.5'
          description: 'The CPU load per core is considered sustainable. If necessary, it can be tuned.'
          config:
            type: TEXT
            priority: '3'
            section_name: Thresholds
            label: 'The CPU load per core'
            description: 'CPU load per core is considered sustainable. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$MEMORY.AVAILABLE.MIN}'
          value: 100M
          description: 'Used as a threshold in the available memory trigger.'
          config:
            type: TEXT
            priority: '13'
            section_name: Thresholds
            label: 'Threshold in the available memory'
            description: 'Used as a threshold in the available memory trigger.'
        - macro: '{$MEMORY.UTIL.MAX}'
          value: '90'
          description: 'Used as a threshold in the memory utilization trigger.'
          config:
            type: TEXT
            priority: '12'
            section_name: Thresholds
            label: 'Threshold in the memory utilization'
            description: 'Used as a threshold in the memory utilization trigger. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NET.IF.IFNAME.MATCHES}'
          value: '^.*$'
          description: 'Used for network interface discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '22'
            section_name: Filters
            label: 'Network interface discovery'
            description: 'Network interface discovery.'
        - macro: '{$NET.IF.IFNAME.NOT_MATCHES}'
          value: '(^Software Loopback Interface|^NULL[0-9.]*$|^[Ll]o[0-9.]*$|^[Ss]ystem$|^Nu[0-9.]*$|^veth[0-9A-z]+$|docker[0-9]+|br-[a-z0-9]{12})'
          description: 'Filters out `loopbacks`, `nulls`, docker `veth` links and `docker0` bridge by default.'
          config:
            type: TEXT
            priority: '23'
            section_name: Filters
            label: 'Filter for network interface by name'
            description: 'Filters out `loopbacks`, `nulls`, docker `veth` links and `docker0` bridge by default.'
        - macro: '{$SWAP.PFREE.MIN.WARN}'
          value: '20'
          description: 'The warning threshold of the minimum free swap.'
          config:
            type: TEXT
            priority: '14'
            section_name: Thresholds
            label: 'Threshold of the minimum free swap'
            description: 'Warning threshold of the minimum free swap. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$SYSTEM.FUZZYTIME.MAX}'
          value: 60s
          description: 'The upper threshold for difference of system time.'
          config:
            type: TEXT
            priority: '27'
            section_name: Thresholds
            label: 'The upper threshold for difference of system time'
            description: 'Upper threshold for difference of system time.'
        - macro: '{$SYSTEM.FUZZYTIME.MIN}'
          value: 10s
          description: 'The lower threshold for difference of system time. Used in recovery expression to avoid trigger flapping.'
          config:
            type: TEXT
            priority: '26'
            section_name: Thresholds
            label: 'The lower threshold for difference of system time'
            description: 'Lower threshold for difference of system time.'
        - macro: '{$VFS.DEV.DEVNAME.MATCHES}'
          value: .+
          description: 'Used for block device discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '17'
            section_name: Filters
            label: 'Filter for block device discovery'
            description: 'Regex string to include discovered block device.'
        - macro: '{$VFS.DEV.DEVNAME.NOT_MATCHES}'
          value: '^(loop[0-9]*|sd[a-z][0-9]+|nbd[0-9]+|sr[0-9]+|fd[0-9]+|dm-[0-9]+|ram[0-9]+|ploop[a-z0-9]+|md[0-9]*|hcp[0-9]*|zram[0-9]*)'
          description: 'Used for block device discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '18'
            section_name: Filters
            label: 'Filter for block device discovery (exclude)'
            description: 'Regex string to exclude discovered block device.'
        - macro: '{$VFS.DEV.READ.AWAIT.WARN}'
          value: '150'
          description: 'The average response time (in ms) of disk read before the trigger fires.'
          config:
            type: TEXT
            priority: '15'
            section_name: Thresholds
            label: 'The average read time (in ms)'
            description: 'Average response time (in ms) of disk read before the trigger fires. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$VFS.DEV.WRITE.AWAIT.WARN}'
          value: '150'
          description: 'The average response time (in ms) of disk write before the trigger fires.'
          config:
            type: TEXT
            priority: '16'
            section_name: Thresholds
            label: 'The average write time (in ms)'
            description: 'Average response time (in ms) of disk write before the trigger fires. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$VFS.FS.FSNAME.MATCHES}'
          value: .+
          description: 'Used for filesystem discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '8'
            section_name: Filters
            label: 'Filter filesystem by name'
            description: 'Regex string to include discovered filesystem by name.'
        - macro: '{$VFS.FS.FSNAME.NOT_MATCHES}'
          value: ^(/dev|/sys|/run|/proc|.+/shm$)
          description: 'Used for filesystem discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '9'
            section_name: Filters
            label: 'Filter filesystem by name (exclude)'
            description: 'Regex string to exclude discovered filesystem by name.'
        - macro: '{$VFS.FS.FSTYPE.MATCHES}'
          value: ^(btrfs|ext2|ext3|ext4|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|zfs)$
          description: 'Used for filesystem discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '10'
            section_name: Filters
            label: 'Filter filesystem by type'
            description: 'Regex string to include discovered filesystem by type.'
        - macro: '{$VFS.FS.FSTYPE.NOT_MATCHES}'
          value: ^\s$
          description: 'Used for filesystem discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '11'
            section_name: Filters
            label: 'Filter filesystem by name (exclude)'
            description: 'Regex string to exclude discovered filesystem by type.'
        - macro: '{$VFS.FS.INODE.PFREE.MIN.CRIT}'
          value: '5'
          description: 'The critical threshold of the filesystem metadata utilization.'
          config:
            type: TEXT
            priority: '7'
            section_name: Thresholds
            label: 'Threshold of the filesystem metadata utilization (critical)'
            description: 'Critical threshold of the filesystem metadata utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$VFS.FS.INODE.PFREE.MIN.WARN}'
          value: '10'
          description: 'The warning threshold of the filesystem metadata utilization.'
          config:
            type: TEXT
            priority: '6'
            section_name: Thresholds
            label: 'Threshold of the filesystem metadata utilization'
            description: 'Warning threshold of the filesystem metadata utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$VFS.FS.PUSED.MAX.CRIT}'
          value: '95'
          description: 'The critical threshold of the filesystem utilization.'
          config:
            type: TEXT
            priority: '5'
            section_name: Thresholds
            label: 'Threshold of the filesystem utilization (critical)'
            description: 'Critical threshold of the filesystem utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$VFS.FS.PUSED.MAX.WARN}'
          value: '90'
          description: 'The warning threshold of the filesystem utilization.'
          config:
            type: TEXT
            priority: '4'
            section_name: Thresholds
            label: 'Threshold of the filesystem utilization'
            description: 'Warning threshold of the filesystem utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
      valuemaps:
        - uuid: 3f8d1f88bdf043ebb3160a5c02fe0700
          name: ifOperStatus
          mappings:
            - value: '0'
              newvalue: unknown
            - value: '1'
              newvalue: notpresent
            - value: '2'
              newvalue: down
            - value: '3'
              newvalue: lowerlayerdown
            - value: '4'
              newvalue: testing
            - value: '5'
              newvalue: dormant
            - value: '6'
              newvalue: up
        - uuid: 55b0e9d813544a0d834b0c1ca6d6fc82
          name: 'Linux::Interface protocol types'
          mappings:
            - value: '0'
              newvalue: 'from KA9Q: NET/ROM pseudo'
            - value: '1'
              newvalue: Ethernet
            - value: '2'
              newvalue: 'Experimental Ethernet'
            - value: '3'
              newvalue: 'AX.25 Level 2'
            - value: '4'
              newvalue: 'PROnet token ring'
            - value: '5'
              newvalue: Chaosnet
            - value: '6'
              newvalue: 'IEEE 802.2 Ethernet/TR/TB'
            - value: '7'
              newvalue: ARCnet
            - value: '8'
              newvalue: APPLEtalk
            - value: '15'
              newvalue: 'Frame Relay DLCI'
            - value: '19'
              newvalue: ATM
            - value: '23'
              newvalue: 'Metricom STRIP (new IANA id)'
            - value: '24'
              newvalue: 'IEEE 1394 IPv4 - RFC 2734'
            - value: '27'
              newvalue: EUI-64
            - value: '32'
              newvalue: InfiniBand
            - value: '256'
              newvalue: ARPHRD_SLIP
            - value: '257'
              newvalue: ARPHRD_CSLIP
            - value: '258'
              newvalue: ARPHRD_SLIP6
            - value: '259'
              newvalue: ARPHRD_CSLIP6
            - value: '260'
              newvalue: 'Notional KISS type'
            - value: '264'
              newvalue: ARPHRD_ADAPT
            - value: '270'
              newvalue: ARPHRD_ROSE
            - value: '271'
              newvalue: 'CCITT X.25'
            - value: '272'
              newvalue: 'Boards with X.25 in firmware'
            - value: '280'
              newvalue: 'Controller Area Network'
            - value: '512'
              newvalue: ARPHRD_PPP
            - value: '513'
              newvalue: 'Cisco HDLC'
            - value: '516'
              newvalue: LAPB
            - value: '517'
              newvalue: 'Digital''s DDCMP protocol'
            - value: '518'
              newvalue: 'Raw HDLC'
            - value: '519'
              newvalue: 'Raw IP'
            - value: '768'
              newvalue: 'IPIP tunnel'
            - value: '769'
              newvalue: 'IP6IP6 tunnel'
            - value: '770'
              newvalue: 'Frame Relay Access Device'
            - value: '771'
              newvalue: 'SKIP vif'
            - value: '772'
              newvalue: 'Loopback device'
            - value: '773'
              newvalue: 'Localtalk device'
            - value: '774'
              newvalue: 'Fiber Distributed Data Interface'
            - value: '775'
              newvalue: 'AP1000 BIF'
            - value: '776'
              newvalue: 'sit0 device - IPv6-in-IPv4'
            - value: '777'
              newvalue: 'IP over DDP tunneller'
            - value: '778'
              newvalue: 'GRE over IP'
            - value: '779'
              newvalue: 'PIMSM register interface'
            - value: '780'
              newvalue: 'High Performance Parallel Interface'
            - value: '781'
              newvalue: 'Nexus 64Mbps Ash'
            - value: '782'
              newvalue: 'Acorn Econet'
            - value: '783'
              newvalue: Linux-IrDA
            - value: '784'
              newvalue: 'Point to point fibrechannel'
            - value: '785'
              newvalue: 'Fibrechannel arbitrated loop'
            - value: '786'
              newvalue: 'Fibrechannel public loop'
            - value: '787'
              newvalue: 'Fibrechannel fabric'
            - value: '800'
              newvalue: 'Magic type ident for TR'
            - value: '801'
              newvalue: 'IEEE 802.11'
            - value: '802'
              newvalue: 'IEEE 802.11 + Prism2 header'
            - value: '803'
              newvalue: 'IEEE 802.11 + radiotap header'
            - value: '804'
              newvalue: ARPHRD_IEEE802154
            - value: '805'
              newvalue: 'IEEE 802.15.4 network monitor'
            - value: '820'
              newvalue: 'PhoNet media type'
            - value: '821'
              newvalue: 'PhoNet pipe header'
            - value: '822'
              newvalue: 'CAIF media type'
            - value: '823'
              newvalue: 'GRE over IPv6'
            - value: '824'
              newvalue: 'Netlink header'
            - value: '825'
              newvalue: 'IPv6 over LoWPAN'
            - value: '826'
              newvalue: 'Vsock monitor header'
        - uuid: e718d98e926b4d74ab071d4fc8abfc3f
          name: zabbix.host.available
          mappings:
            - value: '0'
              newvalue: 'not available'
            - value: '1'
              newvalue: available
            - value: '2'
              newvalue: unknown
        - uuid: 949099267a77464896500c8fa5c8643d
          name: 'Zabbix agent ping status'
          mappings:
            - value: '1'
              newvalue: Up
