diff --git a/Overrides/Linux_by_Zabbix_agent/7.0/DIFF.md b/Overrides/Linux_by_Zabbix_agent/7.0/DIFF.md new file mode 100644 index 00000000..fb9c27e0 --- /dev/null +++ b/Overrides/Linux_by_Zabbix_agent/7.0/DIFF.md @@ -0,0 +1,347 @@ +# Compare Rabe Override with Upstream Template + +Original: [Linux by Zabbix agent](https://raw.githubusercontent.com/zabbix/zabbix/release/7.0/templates/os/linux/template_os_linux.yaml) + +## Diff + +```diff +--- before ++++ after +@@ -30,6 +30,7 @@ + name: 'Host name of Zabbix agent running' + key: agent.hostname + delay: 1h ++ history: 7d + value_type: CHAR + trends: '0' + preprocessing: +@@ -42,6 +43,7 @@ + - uuid: f94f9f4699e94c369e6c98b2a2f485ce + name: 'Zabbix agent ping' + key: agent.ping ++ history: 7d + description: 'The agent always returns "1" for this item. May be used in combination with `nodata()` for the availability check.' + valuemap: + name: 'Zabbix agent ping status' +@@ -52,6 +54,7 @@ + name: 'Version of Zabbix agent running' + key: agent.version + delay: 1h ++ history: 7d + value_type: CHAR + trends: '0' + preprocessing: +@@ -65,6 +68,7 @@ + name: 'Maximum number of open file descriptors' + key: kernel.maxfiles + delay: 1h ++ history: 7d + description: 'May be increased by using the `sysctl` utility or modifying the file `/etc/sysctl.conf`.' + preprocessing: + - type: DISCARD_UNCHANGED_HEARTBEAT +@@ -86,6 +90,7 @@ + name: 'Maximum number of processes' + key: kernel.maxproc + delay: 1h ++ history: 7d + description: 'May be increased by using the `sysctl` utility or modifying the file `/etc/sysctl.conf`.' + preprocessing: + - type: DISCARD_UNCHANGED_HEARTBEAT +@@ -109,12 +114,14 @@ + - uuid: ab7d0471092544a6a950184d1bac906d + name: 'Number of processes' + key: proc.num ++ history: 7d + tags: + - tag: component + value: system + - uuid: b2637293884d40108f41b11767dd5be0 + name: 'Number of running processes' + key: 'proc.num[,,run]' ++ history: 7d + tags: + - tag: component + value: system +@@ -122,6 +129,7 @@ + name: 'System boot time' + key: system.boottime + delay: 15m ++ history: 7d + units: unixtime + preprocessing: + - type: DISCARD_UNCHANGED_HEARTBEAT +@@ -133,6 +141,7 @@ + - uuid: 5d186a46867b4eaaafd6396d3239dd3b + name: 'Interrupts per second' + key: system.cpu.intr ++ history: 7d + value_type: FLOAT + description: 'Number of interrupts processed.' + preprocessing: +@@ -145,6 +154,7 @@ + - uuid: 48528aa936a04c8189375a6eae4033da + name: 'Load average (1m avg)' + key: 'system.cpu.load[all,avg1]' ++ history: 7d + value_type: FLOAT + description: 'Calculated as the system CPU load divided by the number of CPU cores.' + tags: +@@ -153,6 +163,7 @@ + - uuid: 953beb580df8418cb88b667b9dd37259 + name: 'Load average (5m avg)' + key: 'system.cpu.load[all,avg5]' ++ history: 7d + value_type: FLOAT + description: 'Calculated as the system CPU load divided by the number of CPU cores.' + tags: +@@ -161,6 +172,7 @@ + - uuid: 5716000e38e24dae8ead4ed98ede024b + name: 'Load average (15m avg)' + key: 'system.cpu.load[all,avg15]' ++ history: 7d + value_type: FLOAT + description: 'Calculated as the system CPU load divided by the number of CPU cores.' + tags: +@@ -169,6 +181,7 @@ + - uuid: f72e115544eb4079b09fec8c3539241c + name: 'Number of CPUs' + key: system.cpu.num ++ history: 7d + preprocessing: + - type: DISCARD_UNCHANGED_HEARTBEAT + parameters: +@@ -179,6 +192,7 @@ + - uuid: 73e85aa10a704fc7950d2d077f0c54ee + name: 'Context switches per second' + key: system.cpu.switches ++ history: 7d + value_type: FLOAT + description: 'The combined rate at which all processors on the computer are switched from one thread to another.' + preprocessing: +@@ -193,6 +207,7 @@ + type: DEPENDENT + key: system.cpu.util + delay: '0' ++ history: 7d + value_type: FLOAT + units: '%' + description: 'CPU utilization expressed in %.' +@@ -225,6 +240,7 @@ + - uuid: 69b187838fb74f319e47c2ff4f99ef54 + name: 'CPU guest time' + key: 'system.cpu.util[,guest]' ++ history: 7d + value_type: FLOAT + units: '%' + description: 'Time spent on running a virtual CPU for a guest operating system.' +@@ -234,6 +250,7 @@ + - uuid: a2b07497f2f343a99d26ad77e65bb54f + name: 'CPU guest nice time' + key: 'system.cpu.util[,guest_nice]' ++ history: 7d + value_type: FLOAT + units: '%' + description: 'Time spent on running a niced guest (a virtual CPU for guest operating systems under the control of the Linux kernel).' +@@ -243,6 +260,7 @@ + - uuid: 7aad6d159baa4a24901847144f0d231b + name: 'CPU idle time' + key: 'system.cpu.util[,idle]' ++ history: 7d + value_type: FLOAT + units: '%' + description: 'Time the CPU has spent doing nothing.' +@@ -252,6 +270,7 @@ + - uuid: cc4bc7693ae84f9bb18cee38d0814195 + name: 'CPU interrupt time' + key: 'system.cpu.util[,interrupt]' ++ history: 7d + value_type: FLOAT + units: '%' + description: 'Time the CPU has spent servicing hardware interrupts.' +@@ -261,6 +280,7 @@ + - uuid: 5df67d9162cc437585990cc8708be894 + name: 'CPU iowait time' + key: 'system.cpu.util[,iowait]' ++ history: 7d + value_type: FLOAT + units: '%' + description: 'Time the CPU has been waiting for I/O to complete.' +@@ -270,6 +290,7 @@ + - uuid: 8ee6e54c86ba44ab88bb9e83c632c1ed + name: 'CPU nice time' + key: 'system.cpu.util[,nice]' ++ history: 7d + value_type: FLOAT + units: '%' + description: 'Time the CPU has spent running users'' processes that have been niced.' +@@ -279,6 +300,7 @@ + - uuid: a949a36004a449c58bef0cdc9d3fafd6 + name: 'CPU softirq time' + key: 'system.cpu.util[,softirq]' ++ history: 7d + value_type: FLOAT + units: '%' + description: 'Time the CPU has been servicing software interrupts.' +@@ -288,6 +310,7 @@ + - uuid: 3161dbd18e874e69b729c8e903cf7390 + name: 'CPU steal time' + key: 'system.cpu.util[,steal]' ++ history: 7d + value_type: FLOAT + units: '%' + description: 'The amount of "stolen" CPU from this virtual machine by the hypervisor for other tasks, such as running another virtual machine.' +@@ -297,6 +320,7 @@ + - uuid: d93097ed5ce74d35b6041ef2b5ba18e8 + name: 'CPU system time' + key: 'system.cpu.util[,system]' ++ history: 7d + value_type: FLOAT + units: '%' + description: 'Time the CPU has spent running the kernel and its processes.' +@@ -306,6 +330,7 @@ + - uuid: 57f9e2e34fab41e18e2bc93e786c92c6 + name: 'CPU user time' + key: 'system.cpu.util[,user]' ++ history: 7d + value_type: FLOAT + units: '%' + description: 'Time the CPU has spent running users'' processes that are not niced.' +@@ -316,6 +341,7 @@ + name: 'System name' + key: system.hostname + delay: 1h ++ history: 7d + value_type: CHAR + trends: '0' + description: 'The host name of the system.' +@@ -343,6 +369,7 @@ + - uuid: 6072902361404672a444841c786875e6 + name: 'System local time' + key: system.localtime ++ history: 7d + units: unixtime + description: 'The local system time of the host.' + tags: +@@ -367,6 +394,7 @@ + name: 'Operating system architecture' + key: system.sw.arch + delay: 1h ++ history: 7d + value_type: CHAR + trends: '0' + description: 'The architecture of the operating system.' +@@ -381,6 +409,7 @@ + name: 'Operating system' + key: system.sw.os + delay: 1h ++ history: 7d + value_type: CHAR + trends: '0' + inventory_link: OS +@@ -408,6 +437,7 @@ + name: 'Number of installed packages' + key: system.sw.packages.get + delay: 1h ++ history: 7d + preprocessing: + - type: JSONPATH + parameters: +@@ -430,6 +460,7 @@ + - uuid: 160b82c121b147cbbf18c34dbb01d3ce + name: 'Free swap space' + key: 'system.swap.size[,free]' ++ history: 7d + units: B + description: 'The free space of the swap volume/file expressed in bytes.' + tags: +@@ -440,6 +471,7 @@ + - uuid: ca423242172f4b20ba47c26f4a61aee7 + name: 'Free swap space in %' + key: 'system.swap.size[,pfree]' ++ history: 7d + value_type: FLOAT + units: '%' + description: 'The free space of the swap volume/file expressed in %.' +@@ -451,6 +483,7 @@ + - uuid: 102c81b5523c4be0b4beae3cb88ebde1 + name: 'Total swap space' + key: 'system.swap.size[,total]' ++ history: 7d + units: B + description: 'The total space of the swap volume/file expressed in bytes.' + tags: +@@ -462,6 +495,7 @@ + name: 'System description' + key: system.uname + delay: 15m ++ history: 7d + value_type: CHAR + trends: '0' + description: 'The information as normally returned by `uname -a`.' +@@ -476,6 +510,7 @@ + name: 'System uptime' + key: system.uptime + delay: 30s ++ history: 7d + trends: '0' + units: uptime + description: 'The system uptime expressed in the following format: "N days, hh:mm:ss".' +@@ -496,6 +531,7 @@ + - uuid: 88056b3d2e424d5aba7cabcd4b043c9e + name: 'Number of logged in users' + key: system.users.num ++ history: 7d + description: 'The number of users who are currently logged in.' + tags: + - tag: component +@@ -504,6 +540,7 @@ + name: 'Checksum of /etc/passwd' + key: 'vfs.file.cksum[/etc/passwd,sha256]' + delay: 15m ++ history: 7d + value_type: CHAR + trends: '0' + preprocessing: +@@ -540,6 +577,7 @@ + - uuid: e811e6e2ae84461294e121f12e767b40 + name: 'Available memory' + key: 'vm.memory.size[available]' ++ history: 7d + units: B + description: | + The available memory: +@@ -553,6 +591,7 @@ + - uuid: 20779a4c43374e5f9bea2584e93b85ef + name: 'Available memory in %' + key: 'vm.memory.size[pavailable]' ++ history: 7d + value_type: FLOAT + units: '%' + description: 'The available memory as percentage of the total. See also Appendixes in Zabbix Documentation about parameters of the `vm.memory.size` item.' +@@ -562,6 +601,7 @@ + - uuid: d5c3541a7c0949ce812df1beb0732941 + name: 'Total memory' + key: 'vm.memory.size[total]' ++ history: 7d + units: B + description: 'Total memory expressed in bytes.' + tags: +@@ -572,6 +612,7 @@ + type: DEPENDENT + key: vm.memory.utilization + delay: '0' ++ history: 7d + value_type: FLOAT + units: '%' + description: 'The percentage of used memory is calculated as `100-pavailable`.' +@@ -603,6 +644,7 @@ + name: 'Zabbix agent availability' + type: INTERNAL + key: 'zabbix[host,agent,available]' ++ history: 7d + description: 'Used for monitoring the availability status of the agent.' + valuemap: + name: zabbix.host.available + + +``` diff --git a/Overrides/Linux_by_Zabbix_agent/7.0/Linux_by_Zabbix_agent.yaml b/Overrides/Linux_by_Zabbix_agent/7.0/Linux_by_Zabbix_agent.yaml new file mode 100644 index 00000000..41fe757d --- /dev/null +++ b/Overrides/Linux_by_Zabbix_agent/7.0/Linux_by_Zabbix_agent.yaml @@ -0,0 +1,2199 @@ +zabbix_export: + version: '7.0' + template_groups: + - uuid: 846977d1dfed4968bc5f8bdb363285bc + name: 'Templates/Operating systems' + templates: + - uuid: f8f7908280354f2abeed07dc788c3747 + template: 'Linux by Zabbix agent' + name: 'Linux by Zabbix agent' + description: | + This is an official Linux template. It requires Zabbix agent 7.0 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" + vendor: + name: Zabbix + version: 7.0-1 + groups: + - name: 'Templates/Operating systems' + items: + - uuid: df561a0cece94760a78704edf7da7326 + name: 'Host name of Zabbix agent running' + key: agent.hostname + delay: 1h + history: 7d + value_type: CHAR + trends: '0' + preprocessing: + - type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + tags: + - tag: component + value: system + - uuid: f94f9f4699e94c369e6c98b2a2f485ce + name: 'Zabbix agent ping' + key: agent.ping + history: 7d + description: 'The agent always returns "1" for this item. May be used in combination with `nodata()` for the availability check.' + valuemap: + name: 'Zabbix agent ping status' + tags: + - tag: component + value: system + - uuid: 27c42cf180b44632b5d9b8b5788165b3 + name: 'Version of Zabbix agent running' + key: agent.version + delay: 1h + history: 7d + value_type: CHAR + trends: '0' + preprocessing: + - type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + tags: + - tag: component + value: application + - uuid: ef386d03ff2c42ffa236acd5215ad547 + name: 'Maximum number of open file descriptors' + key: kernel.maxfiles + delay: 1h + history: 7d + description: 'May be increased by using the `sysctl` utility or modifying the file `/etc/sysctl.conf`.' + preprocessing: + - type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + tags: + - tag: component + value: system + triggers: + - uuid: b9bdcf42f54a409a9a9a616dbd0eaed2 + expression: 'last(/Linux by Zabbix agent/kernel.maxfiles)<{$KERNEL.MAXFILES.MIN}' + name: 'Configured max number of open filedescriptors is too low' + event_name: 'Configured max number of open filedescriptors is too low (< {$KERNEL.MAXFILES.MIN})' + priority: INFO + tags: + - tag: scope + value: performance + - uuid: 678d70c041954ac8982fb5118b49f6e7 + name: 'Maximum number of processes' + key: kernel.maxproc + delay: 1h + history: 7d + description: 'May be increased by using the `sysctl` utility or modifying the file `/etc/sysctl.conf`.' + preprocessing: + - type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + tags: + - tag: component + value: system + triggers: + - uuid: 8cf253ca3eea4109a90443f9cb76fc5c + expression: 'last(/Linux by Zabbix agent/kernel.maxproc)<{$KERNEL.MAXPROC.MIN}' + name: 'Configured max number of processes is too low' + event_name: 'Configured max number of processes is too low (< {$KERNEL.MAXPROC.MIN})' + priority: INFO + dependencies: + - name: 'Getting closer to process limit' + expression: 'last(/Linux by Zabbix agent/proc.num)/last(/Linux by Zabbix agent/kernel.maxproc)*100>80' + tags: + - tag: scope + value: performance + - uuid: ab7d0471092544a6a950184d1bac906d + name: 'Number of processes' + key: proc.num + history: 7d + tags: + - tag: component + value: system + - uuid: b2637293884d40108f41b11767dd5be0 + name: 'Number of running processes' + key: 'proc.num[,,run]' + history: 7d + tags: + - tag: component + value: system + - uuid: 27cb0f66bb624146acfdd81b58f108a3 + name: 'System boot time' + key: system.boottime + delay: 15m + history: 7d + units: unixtime + preprocessing: + - type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + tags: + - tag: component + value: system + - uuid: 5d186a46867b4eaaafd6396d3239dd3b + name: 'Interrupts per second' + key: system.cpu.intr + history: 7d + value_type: FLOAT + description: 'Number of interrupts processed.' + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: cpu + - uuid: 48528aa936a04c8189375a6eae4033da + name: 'Load average (1m avg)' + key: 'system.cpu.load[all,avg1]' + history: 7d + value_type: FLOAT + description: 'Calculated as the system CPU load divided by the number of CPU cores.' + tags: + - tag: component + value: cpu + - uuid: 953beb580df8418cb88b667b9dd37259 + name: 'Load average (5m avg)' + key: 'system.cpu.load[all,avg5]' + history: 7d + value_type: FLOAT + description: 'Calculated as the system CPU load divided by the number of CPU cores.' + tags: + - tag: component + value: cpu + - uuid: 5716000e38e24dae8ead4ed98ede024b + name: 'Load average (15m avg)' + key: 'system.cpu.load[all,avg15]' + history: 7d + value_type: FLOAT + description: 'Calculated as the system CPU load divided by the number of CPU cores.' + tags: + - tag: component + value: cpu + - uuid: f72e115544eb4079b09fec8c3539241c + name: 'Number of CPUs' + key: system.cpu.num + history: 7d + preprocessing: + - type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + tags: + - tag: component + value: cpu + - uuid: 73e85aa10a704fc7950d2d077f0c54ee + name: 'Context switches per second' + key: system.cpu.switches + history: 7d + value_type: FLOAT + description: 'The combined rate at which all processors on the computer are switched from one thread to another.' + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: cpu + - uuid: ca4235ec7607469cb0124a6253d3c489 + name: 'CPU utilization' + type: DEPENDENT + key: system.cpu.util + delay: '0' + history: 7d + value_type: FLOAT + units: '%' + description: 'CPU utilization expressed in %.' + preprocessing: + - type: JAVASCRIPT + parameters: + - 'return (100 - value)' + master_item: + key: 'system.cpu.util[,idle]' + tags: + - tag: component + value: cpu + triggers: + - uuid: b4e904559b694df0ad45bcce7930c3a6 + expression: 'min(/Linux by Zabbix agent/system.cpu.util,5m)>{$CPU.UTIL.CRIT}' + name: 'High CPU utilization' + event_name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' + opdata: 'Current utilization: {ITEM.LASTVALUE1}' + priority: WARNING + description: 'CPU utilization is too high. The system might be slow to respond.' + dependencies: + - name: 'Load average is too high' + expression: | + min(/Linux by Zabbix agent/system.cpu.load[all,avg1],5m)/last(/Linux by Zabbix agent/system.cpu.num)>{$LOAD_AVG_PER_CPU.MAX.WARN} + and last(/Linux by Zabbix agent/system.cpu.load[all,avg5])>0 + and last(/Linux by Zabbix agent/system.cpu.load[all,avg15])>0 + tags: + - tag: scope + value: performance + - uuid: 69b187838fb74f319e47c2ff4f99ef54 + name: 'CPU guest time' + key: 'system.cpu.util[,guest]' + history: 7d + value_type: FLOAT + units: '%' + description: 'Time spent on running a virtual CPU for a guest operating system.' + tags: + - tag: component + value: cpu + - uuid: a2b07497f2f343a99d26ad77e65bb54f + name: 'CPU guest nice time' + key: 'system.cpu.util[,guest_nice]' + history: 7d + value_type: FLOAT + units: '%' + description: 'Time spent on running a niced guest (a virtual CPU for guest operating systems under the control of the Linux kernel).' + tags: + - tag: component + value: cpu + - uuid: 7aad6d159baa4a24901847144f0d231b + name: 'CPU idle time' + key: 'system.cpu.util[,idle]' + history: 7d + value_type: FLOAT + units: '%' + description: 'Time the CPU has spent doing nothing.' + tags: + - tag: component + value: cpu + - uuid: cc4bc7693ae84f9bb18cee38d0814195 + name: 'CPU interrupt time' + key: 'system.cpu.util[,interrupt]' + history: 7d + value_type: FLOAT + units: '%' + description: 'Time the CPU has spent servicing hardware interrupts.' + tags: + - tag: component + value: cpu + - uuid: 5df67d9162cc437585990cc8708be894 + name: 'CPU iowait time' + key: 'system.cpu.util[,iowait]' + history: 7d + value_type: FLOAT + units: '%' + description: 'Time the CPU has been waiting for I/O to complete.' + tags: + - tag: component + value: cpu + - uuid: 8ee6e54c86ba44ab88bb9e83c632c1ed + name: 'CPU nice time' + key: 'system.cpu.util[,nice]' + history: 7d + value_type: FLOAT + units: '%' + description: 'Time the CPU has spent running users'' processes that have been niced.' + tags: + - tag: component + value: cpu + - uuid: a949a36004a449c58bef0cdc9d3fafd6 + name: 'CPU softirq time' + key: 'system.cpu.util[,softirq]' + history: 7d + value_type: FLOAT + units: '%' + description: 'Time the CPU has been servicing software interrupts.' + tags: + - tag: component + value: cpu + - uuid: 3161dbd18e874e69b729c8e903cf7390 + name: 'CPU steal time' + key: 'system.cpu.util[,steal]' + history: 7d + value_type: FLOAT + units: '%' + description: 'The amount of "stolen" CPU from this virtual machine by the hypervisor for other tasks, such as running another virtual machine.' + tags: + - tag: component + value: cpu + - uuid: d93097ed5ce74d35b6041ef2b5ba18e8 + name: 'CPU system time' + key: 'system.cpu.util[,system]' + history: 7d + value_type: FLOAT + units: '%' + description: 'Time the CPU has spent running the kernel and its processes.' + tags: + - tag: component + value: cpu + - uuid: 57f9e2e34fab41e18e2bc93e786c92c6 + name: 'CPU user time' + key: 'system.cpu.util[,user]' + history: 7d + value_type: FLOAT + units: '%' + description: 'Time the CPU has spent running users'' processes that are not niced.' + tags: + - tag: component + value: cpu + - uuid: 207341f390134e37ad431e2823666eb9 + name: 'System name' + key: system.hostname + delay: 1h + history: 7d + value_type: CHAR + trends: '0' + description: 'The host name of the system.' + inventory_link: NAME + preprocessing: + - type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 12h + tags: + - tag: component + value: system + triggers: + - uuid: 371a12f95a26438d8da659c84364631b + expression: 'change(/Linux by Zabbix agent/system.hostname) and length(last(/Linux by Zabbix agent/system.hostname))>0' + name: 'System name has changed' + event_name: 'System name has changed (new name: {ITEM.VALUE})' + priority: INFO + description: 'The name of the system has changed. Acknowledge to close the problem manually.' + manual_close: 'YES' + tags: + - tag: scope + value: notice + - tag: scope + value: security + - uuid: 6072902361404672a444841c786875e6 + name: 'System local time' + key: system.localtime + history: 7d + units: unixtime + description: 'The local system time of the host.' + tags: + - tag: component + value: system + triggers: + - uuid: fb77b6ac381c4b5289584bd91e7da7d5 + expression: 'fuzzytime(/Linux by Zabbix agent/system.localtime,{$SYSTEM.FUZZYTIME.MAX})=0' + recovery_mode: RECOVERY_EXPRESSION + recovery_expression: 'fuzzytime(/Linux by Zabbix agent/system.localtime,{$SYSTEM.FUZZYTIME.MIN})=1' + name: 'System time is out of sync' + event_name: 'System time is out of sync (diff with Zabbix server > {$SYSTEM.FUZZYTIME.MAX})' + priority: WARNING + description: 'The host''s system time is different from Zabbix server time.' + manual_close: 'YES' + tags: + - tag: scope + value: availability + - tag: scope + value: performance + - uuid: fd21580a151246b0a340bf924c326aa8 + name: 'Operating system architecture' + key: system.sw.arch + delay: 1h + history: 7d + value_type: CHAR + trends: '0' + description: 'The architecture of the operating system.' + preprocessing: + - type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + tags: + - tag: component + value: os + - uuid: 5e4c3d14634843e9b7b182e8fc08efbe + name: 'Operating system' + key: system.sw.os + delay: 1h + history: 7d + value_type: CHAR + trends: '0' + inventory_link: OS + preprocessing: + - type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + tags: + - tag: component + value: os + triggers: + - uuid: b1998f98c06b49dd8d71e1c6df409371 + expression: 'change(/Linux by Zabbix agent/system.sw.os) and length(last(/Linux by Zabbix agent/system.sw.os))>0' + name: 'Operating system description has changed' + priority: INFO + description: 'The description of the operating system has changed. Possible reasons are that the system has been updated or replaced. Acknowledge to close the problem manually.' + manual_close: 'YES' + dependencies: + - name: 'System name has changed' + expression: 'change(/Linux by Zabbix agent/system.hostname) and length(last(/Linux by Zabbix agent/system.hostname))>0' + tags: + - tag: scope + value: notice + - uuid: 58818005e76d46dda14d6592f601ab00 + name: 'Number of installed packages' + key: system.sw.packages.get + delay: 1h + history: 7d + preprocessing: + - type: JSONPATH + parameters: + - $.length() + - type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 12h + tags: + - tag: component + value: os + triggers: + - uuid: b950c306394f4b3c902060a8273cbcde + expression: 'change(/Linux by Zabbix agent/system.sw.packages.get)<>0' + name: 'Number of installed packages has been changed' + priority: WARNING + manual_close: 'YES' + tags: + - tag: scope + value: notice + - uuid: 160b82c121b147cbbf18c34dbb01d3ce + name: 'Free swap space' + key: 'system.swap.size[,free]' + history: 7d + units: B + description: 'The free space of the swap volume/file expressed in bytes.' + tags: + - tag: component + value: memory + - tag: component + value: storage + - uuid: ca423242172f4b20ba47c26f4a61aee7 + name: 'Free swap space in %' + key: 'system.swap.size[,pfree]' + history: 7d + value_type: FLOAT + units: '%' + description: 'The free space of the swap volume/file expressed in %.' + tags: + - tag: component + value: memory + - tag: component + value: storage + - uuid: 102c81b5523c4be0b4beae3cb88ebde1 + name: 'Total swap space' + key: 'system.swap.size[,total]' + history: 7d + units: B + description: 'The total space of the swap volume/file expressed in bytes.' + tags: + - tag: component + value: memory + - tag: component + value: storage + - uuid: fc6898682f904c57ba28bcb3748b237f + name: 'System description' + key: system.uname + delay: 15m + history: 7d + value_type: CHAR + trends: '0' + description: 'The information as normally returned by `uname -a`.' + preprocessing: + - type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 12h + tags: + - tag: component + value: system + - uuid: 8537f6c6ac6b438c80caf227946df891 + name: 'System uptime' + key: system.uptime + delay: 30s + history: 7d + trends: '0' + units: uptime + description: 'The system uptime expressed in the following format: "N days, hh:mm:ss".' + tags: + - tag: component + value: system + triggers: + - uuid: 1dbab80d7b6847e5b5a676cffba0fd1d + expression: 'last(/Linux by Zabbix agent/system.uptime)<10m' + name: '{HOST.NAME} has been restarted' + event_name: '{HOST.NAME} has been restarted (uptime < 10m)' + priority: WARNING + description: 'The host uptime is less than 10 minutes.' + manual_close: 'YES' + tags: + - tag: scope + value: notice + - uuid: 88056b3d2e424d5aba7cabcd4b043c9e + name: 'Number of logged in users' + key: system.users.num + history: 7d + description: 'The number of users who are currently logged in.' + tags: + - tag: component + value: environment + - uuid: 3b93d3590df24a46b29f6eb06f5e2446 + name: 'Checksum of /etc/passwd' + key: 'vfs.file.cksum[/etc/passwd,sha256]' + delay: 15m + history: 7d + value_type: CHAR + trends: '0' + preprocessing: + - type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + tags: + - tag: component + value: security + triggers: + - uuid: 3a764881727b4e7eb01e137ccfc968a2 + expression: 'last(/Linux by Zabbix agent/vfs.file.cksum[/etc/passwd,sha256],#1)<>last(/Linux by Zabbix agent/vfs.file.cksum[/etc/passwd,sha256],#2)' + name: '/etc/passwd has been changed' + priority: INFO + manual_close: 'YES' + dependencies: + - name: 'Operating system description has changed' + expression: 'change(/Linux by Zabbix agent/system.sw.os) and length(last(/Linux by Zabbix agent/system.sw.os))>0' + - name: 'System name has changed' + expression: 'change(/Linux by Zabbix agent/system.hostname) and length(last(/Linux by Zabbix agent/system.hostname))>0' + tags: + - tag: scope + value: security + - uuid: 868440292732425c8f9df52882822c82 + name: 'Get filesystems' + key: vfs.fs.get + history: '0' + value_type: TEXT + trends: '0' + description: 'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.' + tags: + - tag: component + value: raw + - uuid: e811e6e2ae84461294e121f12e767b40 + name: 'Available memory' + key: 'vm.memory.size[available]' + history: 7d + units: B + description: | + The available memory: + - in Linux = free + buffers + cache; + - on other platforms calculation may vary. + + See also Appendixes in Zabbix Documentation about parameters of the `vm.memory.size` item. + tags: + - tag: component + value: memory + - uuid: 20779a4c43374e5f9bea2584e93b85ef + name: 'Available memory in %' + key: 'vm.memory.size[pavailable]' + history: 7d + value_type: FLOAT + units: '%' + description: 'The available memory as percentage of the total. See also Appendixes in Zabbix Documentation about parameters of the `vm.memory.size` item.' + tags: + - tag: component + value: memory + - uuid: d5c3541a7c0949ce812df1beb0732941 + name: 'Total memory' + key: 'vm.memory.size[total]' + history: 7d + units: B + description: 'Total memory expressed in bytes.' + tags: + - tag: component + value: memory + - uuid: 403cebed115441369e94d35d070ca7b8 + name: 'Memory utilization' + type: DEPENDENT + key: vm.memory.utilization + delay: '0' + history: 7d + value_type: FLOAT + units: '%' + description: 'The percentage of used memory is calculated as `100-pavailable`.' + preprocessing: + - type: JAVASCRIPT + parameters: + - 'return (100-value);' + master_item: + key: 'vm.memory.size[pavailable]' + tags: + - tag: component + value: memory + triggers: + - uuid: cfd395b1cde74ef18a5e5f840bd5142a + expression: 'min(/Linux by Zabbix agent/vm.memory.utilization,5m)>{$MEMORY.UTIL.MAX}' + name: 'High memory utilization' + event_name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' + priority: AVERAGE + description: 'The system is running out of free memory.' + dependencies: + - name: 'Lack of available memory' + expression: 'max(/Linux by Zabbix agent/vm.memory.size[available],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by Zabbix agent/vm.memory.size[total])>0' + tags: + - tag: scope + value: capacity + - tag: scope + value: performance + - uuid: ca48c53be1bf46ae9dd2707158a55139 + name: 'Zabbix agent availability' + type: INTERNAL + key: 'zabbix[host,agent,available]' + history: 7d + description: 'Used for monitoring the availability status of the agent.' + valuemap: + name: zabbix.host.available + tags: + - tag: component + value: system + triggers: + - uuid: 93594214371b4dc88b41663cad8537f0 + expression: 'max(/Linux by Zabbix agent/zabbix[host,agent,available],{$AGENT.TIMEOUT})=0' + name: 'Zabbix agent is not available' + event_name: 'Zabbix agent is not available (for {$AGENT.TIMEOUT})' + priority: AVERAGE + description: 'For passive agents only, host availability is used with `{$AGENT.TIMEOUT}` as a time threshold.' + manual_close: 'YES' + tags: + - tag: scope + value: availability + discovery_rules: + - uuid: acfdea9c46ef48c68e6636f43b8f96a2 + name: 'Network interface discovery' + key: net.if.discovery + delay: 1h + filter: + evaltype: AND + conditions: + - macro: '{#IFNAME}' + value: '{$NET.IF.IFNAME.MATCHES}' + formulaid: A + - macro: '{#IFNAME}' + value: '{$NET.IF.IFNAME.NOT_MATCHES}' + operator: NOT_MATCHES_REGEX + formulaid: B + description: 'The discovery of network interfaces.' + item_prototypes: + - uuid: 4d66608e190e4be7a438ea5d0d26e353 + name: 'Interface {#IFNAME}: Inbound packets discarded' + key: 'net.if.in["{#IFNAME}",dropped]' + delay: 3m + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: network + - tag: interface + value: '{#IFNAME}' + - uuid: ed79960ca91f4e2ca45fed014a02c50b + name: 'Interface {#IFNAME}: Inbound packets with errors' + key: 'net.if.in["{#IFNAME}",errors]' + delay: 3m + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: network + - tag: interface + value: '{#IFNAME}' + - uuid: c9941a1f8d904309b581cae5ccc1660c + name: 'Interface {#IFNAME}: Bits received' + key: 'net.if.in["{#IFNAME}"]' + delay: 3m + units: bps + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + - type: MULTIPLIER + parameters: + - '8' + tags: + - tag: component + value: network + - tag: interface + value: '{#IFNAME}' + - uuid: 0795a375a41d46a2b5c89547061cec8e + name: 'Interface {#IFNAME}: Outbound packets discarded' + key: 'net.if.out["{#IFNAME}",dropped]' + delay: 3m + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: network + - tag: interface + value: '{#IFNAME}' + - uuid: f8e8bbc069414e928a5da9817f4599a5 + name: 'Interface {#IFNAME}: Outbound packets with errors' + key: 'net.if.out["{#IFNAME}",errors]' + delay: 3m + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: network + - tag: interface + value: '{#IFNAME}' + - uuid: 82897d99b0114c67b0f5b449c768c8e7 + name: 'Interface {#IFNAME}: Bits sent' + key: 'net.if.out["{#IFNAME}"]' + delay: 3m + units: bps + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + - type: MULTIPLIER + parameters: + - '8' + tags: + - tag: component + value: network + - tag: interface + value: '{#IFNAME}' + - uuid: 3efd24ad36b04eb995cfeab82721c2fe + 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: 4d7f18ca132340b885c0692464dc429f + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2 and (last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#1)<>last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#2))' + recovery_mode: RECOVERY_EXPRESSION + recovery_expression: 'last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + name: '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: f4c456e1f9ef4adbbd11f1ee17fa4d76 + 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: MULTIPLIER + parameters: + - '1000000' + - type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + tags: + - tag: component + value: network + - tag: interface + value: '{#IFNAME}' + - uuid: d537e74070c74e4385ad241e8514dd3a + 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: 2ffdc1d5a318492bb497facd263843bd + expression: | + change(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])<0 and last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])>0 + and + (last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])=6 or last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])=1) + and + (last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2) + recovery_mode: RECOVERY_EXPRESSION + recovery_expression: | + (change(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])>0 and last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"],#2)>0) or + (last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2) + name: '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: 'Interface {#IFNAME}: Link down' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2 and (last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#1)<>last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#2))' + recovery_expression: 'last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + tags: + - tag: scope + value: performance + - uuid: f64186d30b4e4c4281fce84349cbd646 + expression: | + (avg(/Linux by Zabbix agent/net.if.in["{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"]) or + avg(/Linux by Zabbix agent/net.if.out["{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])) and + last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])>0 + recovery_mode: RECOVERY_EXPRESSION + recovery_expression: | + avg(/Linux by Zabbix agent/net.if.in["{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"]) and + avg(/Linux by Zabbix agent/net.if.out["{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"]) + name: 'Interface {#IFNAME}: High bandwidth usage' + event_name: '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: 'Interface {#IFNAME}: Link down' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2 and (last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#1)<>last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#2))' + recovery_expression: 'last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + tags: + - tag: scope + value: performance + - uuid: ad50aecf8e7746b2a85f24507f1d511d + expression: | + min(/Linux by Zabbix agent/net.if.in["{#IFNAME}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} + or min(/Linux by Zabbix agent/net.if.out["{#IFNAME}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} + recovery_mode: RECOVERY_EXPRESSION + recovery_expression: | + max(/Linux by Zabbix agent/net.if.in["{#IFNAME}",errors],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 + and max(/Linux by Zabbix agent/net.if.out["{#IFNAME}",errors],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 + name: 'Interface {#IFNAME}: High error rate' + event_name: '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: 'Interface {#IFNAME}: Link down' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2 and (last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#1)<>last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#2))' + recovery_expression: 'last(/Linux by Zabbix agent/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: 50ced0f22d9d478eb4b639ef64e242ab + name: 'Interface {#IFNAME}: Network traffic' + graph_items: + - drawtype: GRADIENT_LINE + color: 199C0D + item: + host: 'Linux by Zabbix agent' + key: 'net.if.in["{#IFNAME}"]' + - sortorder: '1' + drawtype: BOLD_LINE + color: F63100 + item: + host: 'Linux by Zabbix agent' + key: 'net.if.out["{#IFNAME}"]' + - sortorder: '2' + color: 00611C + yaxisside: RIGHT + item: + host: 'Linux by Zabbix agent' + key: 'net.if.out["{#IFNAME}",errors]' + - sortorder: '3' + color: F7941D + yaxisside: RIGHT + item: + host: 'Linux by Zabbix agent' + key: 'net.if.in["{#IFNAME}",errors]' + - sortorder: '4' + color: FC6EA3 + yaxisside: RIGHT + item: + host: 'Linux by Zabbix agent' + key: 'net.if.out["{#IFNAME}",dropped]' + - sortorder: '5' + color: 6C59DC + yaxisside: RIGHT + item: + host: 'Linux by Zabbix agent' + key: 'net.if.in["{#IFNAME}",dropped]' + - uuid: 2bbdc79f082d4c618e01bec625e9c90a + name: 'Block devices discovery' + key: vfs.dev.discovery + delay: 1h + filter: + evaltype: AND + conditions: + - macro: '{#DEVNAME}' + value: '{$VFS.DEV.DEVNAME.MATCHES}' + formulaid: A + - macro: '{#DEVNAME}' + value: '{$VFS.DEV.DEVNAME.NOT_MATCHES}' + operator: NOT_MATCHES_REGEX + formulaid: B + - macro: '{#DEVTYPE}' + value: disk + formulaid: C + item_prototypes: + - uuid: 5e29abb8d56044f69426ed3594f8ac9f + name: '{#DEVNAME}: Disk average queue size (avgqu-sz)' + type: DEPENDENT + key: 'vfs.dev.queue_size[{#DEVNAME}]' + delay: '0' + value_type: FLOAT + description: 'The current average disk queue; the number of requests outstanding on the disk while the performance data is being collected.' + preprocessing: + - type: JSONPATH + parameters: + - '$[10]' + - type: CHANGE_PER_SECOND + parameters: + - '' + - type: MULTIPLIER + parameters: + - '0.001' + master_item: + key: 'vfs.file.contents[/sys/block/{#DEVNAME}/stat]' + tags: + - tag: component + value: storage + - tag: disk + value: '{#DEVNAME}' + - uuid: 9600208af80e4a6abe55bb5a2240ea8e + name: '{#DEVNAME}: Disk read request avg waiting time (r_await)' + type: CALCULATED + key: 'vfs.dev.read.await[{#DEVNAME}]' + value_type: FLOAT + units: '!ms' + params: '(last(//vfs.dev.read.time.rate[{#DEVNAME}])/(last(//vfs.dev.read.rate[{#DEVNAME}])+(last(//vfs.dev.read.rate[{#DEVNAME}])=0)))*1000*(last(//vfs.dev.read.rate[{#DEVNAME}]) > 0)' + description: 'This formula contains two Boolean expressions that evaluate to 1 or 0 in order to set the calculated metric to zero and to avoid the exception - division by zero.' + tags: + - tag: component + value: storage + - tag: disk + value: '{#DEVNAME}' + - uuid: f4b982d8e7ee47adb34d74d817db43a6 + name: '{#DEVNAME}: Disk read rate' + type: DEPENDENT + key: 'vfs.dev.read.rate[{#DEVNAME}]' + delay: '0' + value_type: FLOAT + units: '!r/s' + description: 'r/s (read operations per second) - the number (after merges) of read requests completed per second for the device.' + preprocessing: + - type: JSONPATH + parameters: + - '$[0]' + - type: CHANGE_PER_SECOND + parameters: + - '' + master_item: + key: 'vfs.file.contents[/sys/block/{#DEVNAME}/stat]' + tags: + - tag: component + value: storage + - tag: disk + value: '{#DEVNAME}' + - uuid: 877a3e892d9e489f98f2f16ea05bfdc2 + name: '{#DEVNAME}: Disk read time (rate)' + type: DEPENDENT + key: 'vfs.dev.read.time.rate[{#DEVNAME}]' + delay: '0' + value_type: FLOAT + description: 'The rate of total read time counter; used in `r_await` calculation.' + preprocessing: + - type: JSONPATH + parameters: + - '$[3]' + - type: CHANGE_PER_SECOND + parameters: + - '' + - type: MULTIPLIER + parameters: + - '0.001' + master_item: + key: 'vfs.file.contents[/sys/block/{#DEVNAME}/stat]' + tags: + - tag: component + value: storage + - tag: disk + value: '{#DEVNAME}' + - uuid: 4a3ee3166ee748e1855a2b02d44e9d62 + name: '{#DEVNAME}: Disk utilization' + type: DEPENDENT + key: 'vfs.dev.util[{#DEVNAME}]' + delay: '0' + value_type: FLOAT + units: '%' + description: 'The percentage of elapsed time during which the selected disk drive was busy while servicing read or write requests.' + preprocessing: + - type: JSONPATH + parameters: + - '$[9]' + - type: CHANGE_PER_SECOND + parameters: + - '' + - type: MULTIPLIER + parameters: + - '0.1' + master_item: + key: 'vfs.file.contents[/sys/block/{#DEVNAME}/stat]' + tags: + - tag: component + value: storage + - tag: disk + value: '{#DEVNAME}' + - uuid: 5907708cf4854d48ae3ebf8f0bc41eef + name: '{#DEVNAME}: Disk write request avg waiting time (w_await)' + type: CALCULATED + key: 'vfs.dev.write.await[{#DEVNAME}]' + value_type: FLOAT + units: '!ms' + params: '(last(//vfs.dev.write.time.rate[{#DEVNAME}])/(last(//vfs.dev.write.rate[{#DEVNAME}])+(last(//vfs.dev.write.rate[{#DEVNAME}])=0)))*1000*(last(//vfs.dev.write.rate[{#DEVNAME}]) > 0)' + description: 'This formula contains two Boolean expressions that evaluate to 1 or 0 in order to set the calculated metric to zero and to avoid the exception - division by zero.' + tags: + - tag: component + value: storage + - tag: disk + value: '{#DEVNAME}' + - uuid: c4eb904dfddd4b0f8cdee4b2c477e213 + name: '{#DEVNAME}: Disk write rate' + type: DEPENDENT + key: 'vfs.dev.write.rate[{#DEVNAME}]' + delay: '0' + value_type: FLOAT + units: '!w/s' + description: 'w/s (write operations per second) - the number (after merges) of write requests completed per second for the device.' + preprocessing: + - type: JSONPATH + parameters: + - '$[4]' + - type: CHANGE_PER_SECOND + parameters: + - '' + master_item: + key: 'vfs.file.contents[/sys/block/{#DEVNAME}/stat]' + tags: + - tag: component + value: storage + - tag: disk + value: '{#DEVNAME}' + - uuid: e828495863304b219e24965f7b91e963 + name: '{#DEVNAME}: Disk write time (rate)' + type: DEPENDENT + key: 'vfs.dev.write.time.rate[{#DEVNAME}]' + delay: '0' + value_type: FLOAT + description: 'The rate of total write time counter; used in `w_await` calculation.' + preprocessing: + - type: JSONPATH + parameters: + - '$[7]' + - type: CHANGE_PER_SECOND + parameters: + - '' + - type: MULTIPLIER + parameters: + - '0.001' + master_item: + key: 'vfs.file.contents[/sys/block/{#DEVNAME}/stat]' + tags: + - tag: component + value: storage + - tag: disk + value: '{#DEVNAME}' + - uuid: 8309fd01a5864ad68866717d0fe67080 + name: '{#DEVNAME}: Get stats' + key: 'vfs.file.contents[/sys/block/{#DEVNAME}/stat]' + history: '0' + value_type: TEXT + trends: '0' + description: 'The contents of get `/sys/block/{#DEVNAME}/stat` to get the disk statistics.' + preprocessing: + - type: JAVASCRIPT + parameters: + - 'return JSON.stringify(value.trim().split(/ +/));' + tags: + - tag: component + value: raw + trigger_prototypes: + - uuid: eb6230f786d04b658ce62c30a9309a34 + expression: 'min(/Linux by Zabbix agent/vfs.dev.read.await[{#DEVNAME}],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} or min(/Linux by Zabbix agent/vfs.dev.write.await[{#DEVNAME}],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}' + name: '{#DEVNAME}: Disk read/write request responses are too high' + event_name: '{#DEVNAME}: Disk read/write request responses are too high (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} ms for 15m or write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} ms for 15m)' + priority: WARNING + description: 'This trigger might indicate the disk `{#DEVNAME}` saturation.' + manual_close: 'YES' + tags: + - tag: scope + value: performance + graph_prototypes: + - uuid: 5e9b35b27b90489390d397758fbfdf64 + name: '{#DEVNAME}: Disk average waiting time' + graph_items: + - color: 199C0D + item: + host: 'Linux by Zabbix agent' + key: 'vfs.dev.read.await[{#DEVNAME}]' + - sortorder: '1' + drawtype: GRADIENT_LINE + color: F63100 + item: + host: 'Linux by Zabbix agent' + key: 'vfs.dev.write.await[{#DEVNAME}]' + - uuid: d436d6d5456c44f0a534bf1f681d5039 + name: '{#DEVNAME}: Disk read/write rates' + graph_items: + - color: 199C0D + item: + host: 'Linux by Zabbix agent' + key: 'vfs.dev.read.rate[{#DEVNAME}]' + - sortorder: '1' + drawtype: GRADIENT_LINE + color: F63100 + item: + host: 'Linux by Zabbix agent' + key: 'vfs.dev.write.rate[{#DEVNAME}]' + - uuid: c42e4045e0974e89a306c57fb188c4fa + name: '{#DEVNAME}: Disk utilization and queue' + graph_items: + - color: 199C0D + yaxisside: RIGHT + item: + host: 'Linux by Zabbix agent' + key: 'vfs.dev.queue_size[{#DEVNAME}]' + - sortorder: '1' + drawtype: GRADIENT_LINE + color: F63100 + item: + host: 'Linux by Zabbix agent' + key: 'vfs.dev.util[{#DEVNAME}]' + - uuid: 7d090603037e4defb34ef74021d3adcd + name: 'Mounted filesystem discovery' + type: DEPENDENT + key: vfs.fs.dependent.discovery + delay: '0' + filter: + evaltype: AND + conditions: + - macro: '{#FSNAME}' + value: '{$VFS.FS.FSNAME.MATCHES}' + formulaid: A + - macro: '{#FSNAME}' + value: '{$VFS.FS.FSNAME.NOT_MATCHES}' + operator: NOT_MATCHES_REGEX + formulaid: B + - macro: '{#FSTYPE}' + value: '{$VFS.FS.FSTYPE.MATCHES}' + formulaid: C + - macro: '{#FSTYPE}' + value: '{$VFS.FS.FSTYPE.NOT_MATCHES}' + operator: NOT_MATCHES_REGEX + formulaid: D + description: 'The discovery of mounted filesystems with different types.' + item_prototypes: + - uuid: 4da7f08a979a46df8b8aeebb42a46207 + name: 'FS [{#FSNAME}]: Inodes: Free, in %' + type: DEPENDENT + key: 'vfs.fs.dependent.inode[{#FSNAME},pfree]' + delay: '0' + value_type: FLOAT + units: '%' + description: 'Free metadata space expressed in %.' + preprocessing: + - type: JSONPATH + parameters: + - $.inodes.pfree + master_item: + key: 'vfs.fs.dependent[{#FSNAME},data]' + tags: + - tag: component + value: storage + - tag: filesystem + value: '{#FSNAME}' + - tag: fstype + value: '{#FSTYPE}' + trigger_prototypes: + - uuid: 115b2d37807f476faf6d02ef406acabd + expression: 'min(/Linux by Zabbix agent/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}' + name: 'FS [{#FSNAME}]: Running out of free inodes' + event_name: '{#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%)' + opdata: 'Free inodes: {ITEM.LASTVALUE1}' + priority: AVERAGE + description: 'Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space.' + tags: + - tag: scope + value: capacity + - tag: scope + value: performance + - uuid: ea012c7295344ffe8c66f7ea54d81042 + expression: 'min(/Linux by Zabbix agent/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}' + name: 'FS [{#FSNAME}]: Running out of free inodes' + event_name: 'FS [{#FSNAME}]: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}%)' + opdata: 'Free inodes: {ITEM.LASTVALUE1}' + priority: WARNING + description: 'Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space.' + dependencies: + - name: 'FS [{#FSNAME}]: Running out of free inodes' + expression: 'min(/Linux by Zabbix agent/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}' + tags: + - tag: scope + value: capacity + - tag: scope + value: performance + - uuid: d53e00855fb349e29bd74146e55265ae + name: 'FS [{#FSNAME}]: Space: Available' + type: DEPENDENT + key: 'vfs.fs.dependent.size[{#FSNAME},free]' + delay: '0' + units: B + description: 'Available storage space expressed in bytes.' + preprocessing: + - type: JSONPATH + parameters: + - $.bytes.free + master_item: + key: 'vfs.fs.dependent[{#FSNAME},data]' + tags: + - tag: component + value: storage + - tag: filesystem + value: '{#FSNAME}' + - tag: fstype + value: '{#FSTYPE}' + - uuid: 61ffe6fcb9d94199aaeb5d568ab74a27 + name: 'FS [{#FSNAME}]: Space: Used, in %' + type: DEPENDENT + key: 'vfs.fs.dependent.size[{#FSNAME},pused]' + delay: '0' + value_type: FLOAT + units: '%' + description: 'Calculated as the percentage of currently used space compared to the maximum available space.' + preprocessing: + - type: JSONPATH + parameters: + - $.bytes.pused + master_item: + key: 'vfs.fs.dependent[{#FSNAME},data]' + tags: + - tag: component + value: storage + - tag: filesystem + value: '{#FSNAME}' + - tag: fstype + value: '{#FSTYPE}' + trigger_prototypes: + - uuid: 9abccdfff8be4e14967ac917ca09afe1 + expression: 'min(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}' + name: 'FS [{#FSNAME}]: Space is critically low' + event_name: 'FS [{#FSNAME}]: Space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%, total {{?last(//vfs.fs.dependent.size[{#FSNAME},total])/1024/1024/1024}.fmtnum(1)}GB)' + opdata: 'Space used: {{ITEM.LASTVALUE1}.fmtnum(1)}%' + priority: AVERAGE + description: | + The volume's space usage exceeds the `{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%` limit. + The trigger expression is based on the current used and maximum available spaces. + Event name represents the total volume space, which can differ from the maximum available space, depending on the filesystem type. + manual_close: 'YES' + tags: + - tag: scope + value: availability + - tag: scope + value: capacity + - uuid: d6d348ea500c428da6ba718816c4b048 + expression: 'min(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}' + name: 'FS [{#FSNAME}]: Space is low' + event_name: 'FS [{#FSNAME}]: Space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%, total {{?last(//vfs.fs.dependent.size[{#FSNAME},total])/1024/1024/1024}.fmtnum(1)}GB)' + opdata: 'Space used: {{ITEM.LASTVALUE1}.fmtnum(1)}%' + priority: WARNING + description: | + The volume's space usage exceeds the `{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%` limit. + The trigger expression is based on the current used and maximum available spaces. + Event name represents the total volume space, which can differ from the maximum available space, depending on the filesystem type. + manual_close: 'YES' + dependencies: + - name: 'FS [{#FSNAME}]: Space is critically low' + expression: 'min(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}' + tags: + - tag: scope + value: availability + - tag: scope + value: capacity + - uuid: a6d90e0bc5ef4fb7acee8682687c485f + name: 'FS [{#FSNAME}]: Space: Total' + type: DEPENDENT + key: 'vfs.fs.dependent.size[{#FSNAME},total]' + delay: '0' + units: B + description: 'Total space expressed in bytes.' + preprocessing: + - type: JSONPATH + parameters: + - $.bytes.total + master_item: + key: 'vfs.fs.dependent[{#FSNAME},data]' + tags: + - tag: component + value: storage + - tag: filesystem + value: '{#FSNAME}' + - tag: fstype + value: '{#FSTYPE}' + - uuid: efee06a191aa4e5c8faa2762988b6955 + name: 'FS [{#FSNAME}]: Space: Used' + type: DEPENDENT + key: 'vfs.fs.dependent.size[{#FSNAME},used]' + delay: '0' + units: B + description: 'Used storage expressed in bytes.' + preprocessing: + - type: JSONPATH + parameters: + - $.bytes.used + master_item: + key: 'vfs.fs.dependent[{#FSNAME},data]' + tags: + - tag: component + value: storage + - tag: filesystem + value: '{#FSNAME}' + - tag: fstype + value: '{#FSTYPE}' + - uuid: 686df59ab1e64b228a1efc20561cf520 + name: 'FS [{#FSNAME}]: Get data' + type: DEPENDENT + key: 'vfs.fs.dependent[{#FSNAME},data]' + delay: '0' + history: 1h + value_type: TEXT + trends: '0' + description: 'Intermediate data of `{#FSNAME}` filesystem.' + preprocessing: + - type: JSONPATH + parameters: + - '$.[?(@.fsname==''{#FSNAME}'')].first()' + master_item: + key: vfs.fs.get + tags: + - tag: component + value: raw + - tag: component + value: storage + - tag: filesystem + value: '{#FSNAME}' + - tag: fstype + value: '{#FSTYPE}' + - uuid: c4bfc3639837451bb1fcf98ea654c939 + name: 'FS [{#FSNAME}]: Option: Read-only' + type: DEPENDENT + key: 'vfs.fs.dependent[{#FSNAME},readonly]' + delay: '0' + description: 'The filesystem is mounted as read-only. It is available only for Zabbix agents 6.4 and higher.' + preprocessing: + - type: JSONPATH + parameters: + - $.options + error_handler: DISCARD_VALUE + - type: REGEX + parameters: + - '(?:^|,)ro\b' + - '1' + error_handler: CUSTOM_VALUE + error_handler_params: '0' + master_item: + key: 'vfs.fs.dependent[{#FSNAME},data]' + tags: + - tag: component + value: storage + - tag: filesystem + value: '{#FSNAME}' + - tag: fstype + value: '{#FSTYPE}' + trigger_prototypes: + - uuid: c8e2f67378d84b3ba687467bc6daf63a + expression: 'last(/Linux by Zabbix agent/vfs.fs.dependent[{#FSNAME},readonly],#2)=0 and last(/Linux by Zabbix agent/vfs.fs.dependent[{#FSNAME},readonly])=1' + recovery_mode: RECOVERY_EXPRESSION + recovery_expression: 'last(/Linux by Zabbix agent/vfs.fs.dependent[{#FSNAME},readonly])=0' + name: 'FS [{#FSNAME}]: Filesystem has become read-only' + priority: AVERAGE + description: 'The filesystem has become read-only, possibly due to an I/O error. Available only for Zabbix agents 6.4 and higher.' + manual_close: 'YES' + tags: + - tag: scope + value: availability + - tag: scope + value: performance + graph_prototypes: + - uuid: c2a31e9370b342b1942cc5308fd63a2c + name: 'FS [{#FSTYPE}({#FSNAME})]: Space usage graph, in % (relative to max available)' + width: '600' + height: '340' + ymin_type_1: FIXED + ymax_type_1: FIXED + graph_items: + - drawtype: FILLED_REGION + color: F63100 + calc_fnc: LAST + item: + host: 'Linux by Zabbix agent' + key: 'vfs.fs.dependent.size[{#FSNAME},pused]' + - uuid: bb209e7862ad4f8f8f7efcd003146e97 + name: 'FS [{#FSTYPE}({#FSNAME})]: Space utilization chart (relative to total)' + width: '600' + height: '340' + type: PIE + show_3d: 'YES' + graph_items: + - color: '787878' + calc_fnc: LAST + type: GRAPH_SUM + item: + host: 'Linux by Zabbix agent' + key: 'vfs.fs.dependent.size[{#FSNAME},total]' + - sortorder: '1' + color: F63100 + calc_fnc: LAST + item: + host: 'Linux by Zabbix agent' + key: 'vfs.fs.dependent.size[{#FSNAME},used]' + - sortorder: '2' + color: 199C09 + calc_fnc: LAST + item: + host: 'Linux by Zabbix agent' + key: 'vfs.fs.dependent.size[{#FSNAME},free]' + master_item: + key: vfs.fs.get + lld_macro_paths: + - lld_macro: '{#FSNAME}' + path: $.fsname + - lld_macro: '{#FSTYPE}' + path: $.fstype + preprocessing: + - type: JAVASCRIPT + parameters: + - | + var filesystems = JSON.parse(value); + + result = filesystems.map(function (filesystem) { + return { + 'fsname': filesystem.fsname, + 'fstype': filesystem.fstype + }; + }); + + return JSON.stringify(result); + - type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + overrides: + - name: 'Skip metadata collection for dynamic FS' + step: '1' + filter: + conditions: + - macro: '{#FSTYPE}' + value: ^(btrfs|zfs)$ + formulaid: A + operations: + - operationobject: ITEM_PROTOTYPE + operator: LIKE + value: Inodes + discover: NO_DISCOVER + 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).' + - macro: '{$CPU.UTIL.CRIT}' + value: '90' + description: 'Critical threshold of CPU utilization expressed in %.' + - macro: '{$IF.ERRORS.WARN}' + value: '2' + description: 'Warning threshold of error packet rate. Can be used with interface name as context.' + - macro: '{$IF.UTIL.MAX}' + value: '90' + description: 'Used as a threshold in the interface utilization trigger.' + - macro: '{$IFCONTROL}' + value: '1' + description: 'Link status trigger will be fired only for interfaces where the context macro equals "1".' + - macro: '{$KERNEL.MAXFILES.MIN}' + value: '256' + - macro: '{$KERNEL.MAXPROC.MIN}' + value: '1024' + - 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.' + - macro: '{$MEMORY.AVAILABLE.MIN}' + value: 20M + 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.' + - macro: '{$NET.IF.IFNAME.MATCHES}' + value: '^.*$' + description: 'Used for network interface discovery. Can be overridden on the host or linked template level.' + - 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.' + - macro: '{$SWAP.PFREE.MIN.WARN}' + value: '50' + description: 'The warning threshold of the minimum free swap.' + - macro: '{$SYSTEM.FUZZYTIME.MAX}' + value: 60s + description: 'The 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.' + - macro: '{$VFS.DEV.DEVNAME.MATCHES}' + value: .+ + description: 'Used for block device discovery. Can be overridden on the host or linked template level.' + - 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.' + - macro: '{$VFS.DEV.READ.AWAIT.WARN}' + value: '20' + description: 'The average response time (in ms) of disk read before the trigger fires.' + - macro: '{$VFS.DEV.WRITE.AWAIT.WARN}' + value: '20' + description: 'The average response time (in ms) of disk write before the trigger fires.' + - macro: '{$VFS.FS.FSNAME.MATCHES}' + value: .+ + description: 'Used for filesystem discovery. Can be overridden on the host or linked template level.' + - 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.' + - 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.' + - macro: '{$VFS.FS.FSTYPE.NOT_MATCHES}' + value: ^\s$ + description: 'Used for filesystem discovery. Can be overridden on the host or linked template level.' + - macro: '{$VFS.FS.INODE.PFREE.MIN.CRIT}' + value: '10' + description: 'The critical threshold of the filesystem metadata utilization.' + - macro: '{$VFS.FS.INODE.PFREE.MIN.WARN}' + value: '20' + description: 'The warning threshold of the filesystem metadata utilization.' + - macro: '{$VFS.FS.PUSED.MAX.CRIT}' + value: '90' + description: 'The critical threshold of the filesystem utilization.' + - macro: '{$VFS.FS.PUSED.MAX.WARN}' + value: '80' + description: 'The warning threshold of the filesystem utilization.' + dashboards: + - uuid: c689ad3115fd46a4b927d1f70ee2e5a4 + name: Filesystems + pages: + - name: Overview + widgets: + - type: graphprototype + width: '72' + height: '5' + fields: + - type: INTEGER + name: columns + value: '3' + - type: GRAPH_PROTOTYPE + name: graphid.0 + value: + host: 'Linux by Zabbix agent' + name: 'FS [{#FSTYPE}({#FSNAME})]: Space utilization chart (relative to total)' + - type: STRING + name: reference + value: AAAEB + - type: graphprototype + 'y': '5' + width: '72' + height: '5' + fields: + - type: INTEGER + name: columns + value: '1' + - type: GRAPH_PROTOTYPE + name: graphid.0 + value: + host: 'Linux by Zabbix agent' + name: 'FS [{#FSTYPE}({#FSNAME})]: Space usage graph, in % (relative to max available)' + - type: STRING + name: reference + value: AAAEC + - uuid: 14aa11c326a54ec390d4c209d30cc741 + name: 'Network interfaces' + pages: + - name: Overview + widgets: + - type: graphprototype + width: '72' + height: '5' + fields: + - type: INTEGER + name: columns + value: '1' + - type: GRAPH_PROTOTYPE + name: graphid.0 + value: + host: 'Linux by Zabbix agent' + name: 'Interface {#IFNAME}: Network traffic' + - type: STRING + name: reference + value: AAAAJ + - uuid: e9ca2f8e715f428b8edc0129aa0c79de + name: 'System performance' + pages: + - widgets: + - type: graph + width: '36' + height: '5' + fields: + - type: GRAPH + name: graphid.0 + value: + host: 'Linux by Zabbix agent' + name: 'Linux: System load' + - type: STRING + name: reference + value: AAAAA + - type: graph + 'y': '5' + width: '36' + height: '5' + fields: + - type: GRAPH + name: graphid.0 + value: + host: 'Linux by Zabbix agent' + name: 'Linux: Memory usage' + - type: STRING + name: reference + value: AAAAC + - type: graphprototype + 'y': '10' + width: '72' + height: '5' + fields: + - type: INTEGER + name: columns + value: '3' + - type: GRAPH_PROTOTYPE + name: graphid.0 + value: + host: 'Linux by Zabbix agent' + name: 'FS [{#FSTYPE}({#FSNAME})]: Space utilization chart (relative to total)' + - type: STRING + name: reference + value: AAAEA + - type: graphprototype + 'y': '15' + width: '72' + height: '5' + fields: + - type: INTEGER + name: columns + value: '1' + - type: GRAPH_PROTOTYPE + name: graphid.0 + value: + host: 'Linux by Zabbix agent' + name: '{#DEVNAME}: Disk read/write rates' + - type: STRING + name: reference + value: AAAAF + - type: graphprototype + 'y': '20' + width: '72' + height: '5' + fields: + - type: INTEGER + name: columns + value: '1' + - type: GRAPH_PROTOTYPE + name: graphid.0 + value: + host: 'Linux by Zabbix agent' + name: '{#DEVNAME}: Disk average waiting time' + - type: STRING + name: reference + value: AAAAG + - type: graphprototype + 'y': '25' + width: '72' + height: '5' + fields: + - type: INTEGER + name: columns + value: '1' + - type: GRAPH_PROTOTYPE + name: graphid.0 + value: + host: 'Linux by Zabbix agent' + name: '{#DEVNAME}: Disk utilization and queue' + - type: STRING + name: reference + value: AAAAH + - type: graphprototype + 'y': '30' + width: '72' + height: '5' + fields: + - type: INTEGER + name: columns + value: '1' + - type: GRAPH_PROTOTYPE + name: graphid.0 + value: + host: 'Linux by Zabbix agent' + name: 'Interface {#IFNAME}: Network traffic' + - type: STRING + name: reference + value: AAAAI + - type: graph + x: '36' + width: '36' + height: '5' + fields: + - type: GRAPH + name: graphid.0 + value: + host: 'Linux by Zabbix agent' + name: 'Linux: CPU usage' + - type: STRING + name: reference + value: AAAAB + - type: graph + x: '36' + 'y': '5' + width: '36' + height: '5' + fields: + - type: GRAPH + name: graphid.0 + value: + host: 'Linux by Zabbix agent' + name: 'Linux: Swap usage' + - type: STRING + name: reference + value: AAAAD + valuemaps: + - uuid: 8c048c6cca8248f2860c208e8db0f59e + 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: 044df261808442a8af9e5cda0acaa6a5 + 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: 5488e5d78d704b78aee60c60414ce0c3 + name: zabbix.host.available + mappings: + - value: '0' + newvalue: 'not available' + - value: '1' + newvalue: available + - value: '2' + newvalue: unknown + - uuid: 64faba3a883241a88da8833970ac3ab0 + name: 'Zabbix agent ping status' + mappings: + - value: '1' + newvalue: Up + triggers: + - uuid: ae5269e17d434927bfd6edc09a9a1f4d + expression: 'last(/Linux by Zabbix agent/proc.num)/last(/Linux by Zabbix agent/kernel.maxproc)*100>80' + name: 'Getting closer to process limit' + event_name: 'Getting closer to process limit (over 80% used)' + opdata: '{ITEM.LASTVALUE1} active, {ITEM.LASTVALUE2} limit.' + priority: WARNING + tags: + - tag: scope + value: performance + - uuid: f49fc01c5ac945d59455563bdbcc6469 + expression: 'max(/Linux by Zabbix agent/system.swap.size[,pfree],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux by Zabbix agent/system.swap.size[,total])>0' + name: 'High swap space usage' + event_name: 'High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free)' + opdata: 'Free: {ITEM.LASTVALUE1}, total: {ITEM.LASTVALUE2}' + priority: WARNING + description: 'If there is no swap configured, this trigger is ignored.' + dependencies: + - name: 'High memory utilization' + expression: 'min(/Linux by Zabbix agent/vm.memory.utilization,5m)>{$MEMORY.UTIL.MAX}' + - name: 'Lack of available memory' + expression: 'max(/Linux by Zabbix agent/vm.memory.size[available],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by Zabbix agent/vm.memory.size[total])>0' + tags: + - tag: scope + value: capacity + - uuid: 686470cef97f48f6b017e9fc7a078afe + expression: 'max(/Linux by Zabbix agent/vm.memory.size[available],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by Zabbix agent/vm.memory.size[total])>0' + name: 'Lack of available memory' + event_name: 'Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})' + opdata: 'Available: {ITEM.LASTVALUE1}, total: {ITEM.LASTVALUE2}' + priority: AVERAGE + description: 'The system is running out of memory.' + tags: + - tag: scope + value: capacity + - tag: scope + value: performance + - uuid: 695f0c352377409d95aca3fe76d1cae2 + expression: | + min(/Linux by Zabbix agent/system.cpu.load[all,avg1],5m)/last(/Linux by Zabbix agent/system.cpu.num)>{$LOAD_AVG_PER_CPU.MAX.WARN} + and last(/Linux by Zabbix agent/system.cpu.load[all,avg5])>0 + and last(/Linux by Zabbix agent/system.cpu.load[all,avg15])>0 + name: 'Load average is too high' + event_name: 'Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m)' + opdata: 'Load averages(1m 5m 15m): ({ITEM.LASTVALUE1} {ITEM.LASTVALUE3} {ITEM.LASTVALUE4}), # of CPUs: {ITEM.LASTVALUE2}' + priority: AVERAGE + description: 'The load average per CPU is too high. The system may be slow to respond.' + tags: + - tag: scope + value: capacity + - tag: scope + value: performance + graphs: + - uuid: 4a72646168d545c398c92e09c975a966 + name: 'Linux: CPU jumps' + graph_items: + - color: 199C0D + item: + host: 'Linux by Zabbix agent' + key: system.cpu.switches + - sortorder: '1' + color: F63100 + item: + host: 'Linux by Zabbix agent' + key: system.cpu.intr + - uuid: f217c30162b24c9190785fad1ec83b73 + name: 'Linux: CPU usage' + type: STACKED + ymin_type_1: FIXED + ymax_type_1: FIXED + graph_items: + - color: 199C0D + item: + host: 'Linux by Zabbix agent' + key: 'system.cpu.util[,system]' + - sortorder: '1' + color: F63100 + item: + host: 'Linux by Zabbix agent' + key: 'system.cpu.util[,user]' + - sortorder: '2' + color: 00611C + item: + host: 'Linux by Zabbix agent' + key: 'system.cpu.util[,nice]' + - sortorder: '3' + color: F7941D + item: + host: 'Linux by Zabbix agent' + key: 'system.cpu.util[,iowait]' + - sortorder: '4' + color: FC6EA3 + item: + host: 'Linux by Zabbix agent' + key: 'system.cpu.util[,steal]' + - sortorder: '5' + color: 6C59DC + item: + host: 'Linux by Zabbix agent' + key: 'system.cpu.util[,interrupt]' + - sortorder: '6' + color: C7A72D + item: + host: 'Linux by Zabbix agent' + key: 'system.cpu.util[,softirq]' + - sortorder: '7' + color: BA2A5D + item: + host: 'Linux by Zabbix agent' + key: 'system.cpu.util[,guest]' + - sortorder: '8' + color: F230E0 + item: + host: 'Linux by Zabbix agent' + key: 'system.cpu.util[,guest_nice]' + - uuid: 668ae470ea33444bb40e3b83b97659c3 + name: 'Linux: CPU utilization' + ymin_type_1: FIXED + ymax_type_1: FIXED + graph_items: + - drawtype: GRADIENT_LINE + color: 199C0D + item: + host: 'Linux by Zabbix agent' + key: system.cpu.util + - uuid: f260a63bc3b04c3b80b47f83bb05ed9c + name: 'Linux: Memory usage' + ymin_type_1: FIXED + graph_items: + - drawtype: BOLD_LINE + color: 199C0D + item: + host: 'Linux by Zabbix agent' + key: 'vm.memory.size[total]' + - sortorder: '1' + drawtype: GRADIENT_LINE + color: F63100 + item: + host: 'Linux by Zabbix agent' + key: 'vm.memory.size[available]' + - uuid: bac7a8fb7e014696b54d262bf40e5b12 + name: 'Linux: Memory utilization' + ymin_type_1: FIXED + ymax_type_1: FIXED + graph_items: + - drawtype: GRADIENT_LINE + color: 199C0D + item: + host: 'Linux by Zabbix agent' + key: vm.memory.utilization + - uuid: fa49531c9c3d4087b2205bed6ed0469f + name: 'Linux: Processes' + graph_items: + - color: 199C0D + item: + host: 'Linux by Zabbix agent' + key: proc.num + - sortorder: '1' + color: F63100 + item: + host: 'Linux by Zabbix agent' + key: 'proc.num[,,run]' + - uuid: 1ca6e2d883114853bd402110c3fd211e + name: 'Linux: Swap usage' + graph_items: + - color: 199C0D + item: + host: 'Linux by Zabbix agent' + key: 'system.swap.size[,free]' + - sortorder: '1' + color: F63100 + item: + host: 'Linux by Zabbix agent' + key: 'system.swap.size[,total]' + - uuid: 1b8cc9470a5040d79090a3e5dfcb0a76 + name: 'Linux: System load' + ymin_type_1: FIXED + graph_items: + - color: 199C0D + item: + host: 'Linux by Zabbix agent' + key: 'system.cpu.load[all,avg1]' + - sortorder: '1' + color: F63100 + item: + host: 'Linux by Zabbix agent' + key: 'system.cpu.load[all,avg5]' + - sortorder: '2' + color: 00611C + item: + host: 'Linux by Zabbix agent' + key: 'system.cpu.load[all,avg15]' + - sortorder: '3' + color: F7941D + yaxisside: RIGHT + item: + host: 'Linux by Zabbix agent' + key: system.cpu.num diff --git a/Overrides/Linux_by_Zabbix_agent/7.0/README.md b/Overrides/Linux_by_Zabbix_agent/7.0/README.md new file mode 100644 index 00000000..7a62491b --- /dev/null +++ b/Overrides/Linux_by_Zabbix_agent/7.0/README.md @@ -0,0 +1,1911 @@ +# Zabbix Template: Linux by Zabbix agent + +![class: os](https://img.shields.io/badge/class-os-00c9bf) ![target: linux](https://img.shields.io/badge/target-linux-00c9bf) ![vendor: Zabbix](https://img.shields.io/badge/vendor-Zabbix-00c9bf) ![version: 7.0-1](https://img.shields.io/badge/version-7.0--1-00c9bf) + +This is an official Linux template. It requires Zabbix agent 7.0 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" + +## Items + +### Item: Host name of Zabbix agent running + +![component: system](https://img.shields.io/badge/component-system-00c9bf) + + + +```console +agent.hostname +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | CHAR | +| History | 7d | + +### Item: Zabbix agent ping + +![component: system](https://img.shields.io/badge/component-system-00c9bf) + +The agent always returns "1" for this item. May be used in combination with `nodata()` for the availability check. + +```console +agent.ping +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| History | 7d | + +### Item: Version of Zabbix agent running + +![component: application](https://img.shields.io/badge/component-application-00c9bf) + + + +```console +agent.version +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | CHAR | +| History | 7d | + +### Item: Maximum number of open file descriptors + +![component: system](https://img.shields.io/badge/component-system-00c9bf) + +May be increased by using the `sysctl` utility or modifying the file `/etc/sysctl.conf`. + +```console +kernel.maxfiles +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| History | 7d | + +### Item: Maximum number of processes + +![component: system](https://img.shields.io/badge/component-system-00c9bf) + +May be increased by using the `sysctl` utility or modifying the file `/etc/sysctl.conf`. + +```console +kernel.maxproc +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| History | 7d | + +### Item: Number of processes + +![component: system](https://img.shields.io/badge/component-system-00c9bf) + + + +```console +proc.num +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| History | 7d | + +### Item: Number of running processes + +![component: system](https://img.shields.io/badge/component-system-00c9bf) + + + +```console +proc.num[,,run] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| History | 7d | + +### Item: System boot time + +![component: system](https://img.shields.io/badge/component-system-00c9bf) + + + +```console +system.boottime +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| History | 7d | + +### Item: Interrupts per second + +![component: cpu](https://img.shields.io/badge/component-cpu-00c9bf) + +Number of interrupts processed. + +```console +system.cpu.intr +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | FLOAT | +| History | 7d | + +### Item: Load average (1m avg) + +![component: cpu](https://img.shields.io/badge/component-cpu-00c9bf) + +Calculated as the system CPU load divided by the number of CPU cores. + +```console +system.cpu.load[all,avg1] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | FLOAT | +| History | 7d | + +### Item: Load average (5m avg) + +![component: cpu](https://img.shields.io/badge/component-cpu-00c9bf) + +Calculated as the system CPU load divided by the number of CPU cores. + +```console +system.cpu.load[all,avg5] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | FLOAT | +| History | 7d | + +### Item: Load average (15m avg) + +![component: cpu](https://img.shields.io/badge/component-cpu-00c9bf) + +Calculated as the system CPU load divided by the number of CPU cores. + +```console +system.cpu.load[all,avg15] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | FLOAT | +| History | 7d | + +### Item: Number of CPUs + +![component: cpu](https://img.shields.io/badge/component-cpu-00c9bf) + + + +```console +system.cpu.num +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| History | 7d | + +### Item: Context switches per second + +![component: cpu](https://img.shields.io/badge/component-cpu-00c9bf) + +The combined rate at which all processors on the computer are switched from one thread to another. + +```console +system.cpu.switches +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | FLOAT | +| History | 7d | + +### Item: CPU utilization + +![component: cpu](https://img.shields.io/badge/component-cpu-00c9bf) + +CPU utilization expressed in %. + +```console +system.cpu.util +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | DEPENDENT | +| Value type | FLOAT in % | +| History | 7d | +| Source item | `system.cpu.util[,idle]` | + +Preprocessing steps: + +| Type | Parameters | +| ---- | ---------- | +| JAVASCRIPT | `["return (100 - value)"]` | + +### Item: CPU guest time + +![component: cpu](https://img.shields.io/badge/component-cpu-00c9bf) + +Time spent on running a virtual CPU for a guest operating system. + +```console +system.cpu.util[,guest] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | FLOAT in % | +| History | 7d | + +### Item: CPU guest nice time + +![component: cpu](https://img.shields.io/badge/component-cpu-00c9bf) + +Time spent on running a niced guest (a virtual CPU for guest operating systems under the control of the Linux kernel). + +```console +system.cpu.util[,guest_nice] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | FLOAT in % | +| History | 7d | + +### Item: CPU idle time + +![component: cpu](https://img.shields.io/badge/component-cpu-00c9bf) + +Time the CPU has spent doing nothing. + +```console +system.cpu.util[,idle] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | FLOAT in % | +| History | 7d | + +### Item: CPU interrupt time + +![component: cpu](https://img.shields.io/badge/component-cpu-00c9bf) + +Time the CPU has spent servicing hardware interrupts. + +```console +system.cpu.util[,interrupt] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | FLOAT in % | +| History | 7d | + +### Item: CPU iowait time + +![component: cpu](https://img.shields.io/badge/component-cpu-00c9bf) + +Time the CPU has been waiting for I/O to complete. + +```console +system.cpu.util[,iowait] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | FLOAT in % | +| History | 7d | + +### Item: CPU nice time + +![component: cpu](https://img.shields.io/badge/component-cpu-00c9bf) + +Time the CPU has spent running users' processes that have been niced. + +```console +system.cpu.util[,nice] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | FLOAT in % | +| History | 7d | + +### Item: CPU softirq time + +![component: cpu](https://img.shields.io/badge/component-cpu-00c9bf) + +Time the CPU has been servicing software interrupts. + +```console +system.cpu.util[,softirq] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | FLOAT in % | +| History | 7d | + +### Item: CPU steal time + +![component: cpu](https://img.shields.io/badge/component-cpu-00c9bf) + +The amount of "stolen" CPU from this virtual machine by the hypervisor for other tasks, such as running another virtual machine. + +```console +system.cpu.util[,steal] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | FLOAT in % | +| History | 7d | + +### Item: CPU system time + +![component: cpu](https://img.shields.io/badge/component-cpu-00c9bf) + +Time the CPU has spent running the kernel and its processes. + +```console +system.cpu.util[,system] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | FLOAT in % | +| History | 7d | + +### Item: CPU user time + +![component: cpu](https://img.shields.io/badge/component-cpu-00c9bf) + +Time the CPU has spent running users' processes that are not niced. + +```console +system.cpu.util[,user] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | FLOAT in % | +| History | 7d | + +### Item: System name + +![component: system](https://img.shields.io/badge/component-system-00c9bf) + +The host name of the system. + +```console +system.hostname +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | CHAR | +| History | 7d | + +### Item: System local time + +![component: system](https://img.shields.io/badge/component-system-00c9bf) + +The local system time of the host. + +```console +system.localtime +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| History | 7d | + +### Item: Operating system architecture + +![component: os](https://img.shields.io/badge/component-os-00c9bf) + +The architecture of the operating system. + +```console +system.sw.arch +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | CHAR | +| History | 7d | + +### Item: Operating system + +![component: os](https://img.shields.io/badge/component-os-00c9bf) + + + +```console +system.sw.os +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | CHAR | +| History | 7d | + +### Item: Number of installed packages + +![component: os](https://img.shields.io/badge/component-os-00c9bf) + + + +```console +system.sw.packages.get +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| History | 7d | + +### Item: Free swap space + +![component: memory](https://img.shields.io/badge/component-memory-00c9bf) ![component: storage](https://img.shields.io/badge/component-storage-00c9bf) + +The free space of the swap volume/file expressed in bytes. + +```console +system.swap.size[,free] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| History | 7d | + +### Item: Free swap space in % + +![component: memory](https://img.shields.io/badge/component-memory-00c9bf) ![component: storage](https://img.shields.io/badge/component-storage-00c9bf) + +The free space of the swap volume/file expressed in %. + +```console +system.swap.size[,pfree] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | FLOAT in % | +| History | 7d | + +### Item: Total swap space + +![component: memory](https://img.shields.io/badge/component-memory-00c9bf) ![component: storage](https://img.shields.io/badge/component-storage-00c9bf) + +The total space of the swap volume/file expressed in bytes. + +```console +system.swap.size[,total] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| History | 7d | + +### Item: System description + +![component: system](https://img.shields.io/badge/component-system-00c9bf) + +The information as normally returned by `uname -a`. + +```console +system.uname +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | CHAR | +| History | 7d | + +### Item: System uptime + +![component: system](https://img.shields.io/badge/component-system-00c9bf) + +The system uptime expressed in the following format: "N days, hh:mm:ss". + +```console +system.uptime +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| History | 7d | + +### Item: Number of logged in users + +![component: environment](https://img.shields.io/badge/component-environment-00c9bf) + +The number of users who are currently logged in. + +```console +system.users.num +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| History | 7d | + +### Item: Checksum of /etc/passwd + +![component: security](https://img.shields.io/badge/component-security-00c9bf) + + + +```console +vfs.file.cksum[/etc/passwd,sha256] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | CHAR | +| History | 7d | + +### Item: Get filesystems + +![component: raw](https://img.shields.io/badge/component-raw-00c9bf) + +The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items. + +```console +vfs.fs.get +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | TEXT | + +### Item: Available memory + +![component: memory](https://img.shields.io/badge/component-memory-00c9bf) + +The available memory: +- in Linux = free + buffers + cache; +- on other platforms calculation may vary. + +See also Appendixes in Zabbix Documentation about parameters of the `vm.memory.size` item. + +```console +vm.memory.size[available] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| History | 7d | + +### Item: Available memory in % + +![component: memory](https://img.shields.io/badge/component-memory-00c9bf) + +The available memory as percentage of the total. See also Appendixes in Zabbix Documentation about parameters of the `vm.memory.size` item. + +```console +vm.memory.size[pavailable] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | FLOAT in % | +| History | 7d | + +### Item: Total memory + +![component: memory](https://img.shields.io/badge/component-memory-00c9bf) + +Total memory expressed in bytes. + +```console +vm.memory.size[total] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| History | 7d | + +### Item: Memory utilization + +![component: memory](https://img.shields.io/badge/component-memory-00c9bf) + +The percentage of used memory is calculated as `100-pavailable`. + +```console +vm.memory.utilization +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | DEPENDENT | +| Value type | FLOAT in % | +| History | 7d | +| Source item | `vm.memory.size[pavailable]` | + +Preprocessing steps: + +| Type | Parameters | +| ---- | ---------- | +| JAVASCRIPT | `["return (100-value);"]` | + +### Item: Zabbix agent availability + +![component: system](https://img.shields.io/badge/component-system-00c9bf) + +Used for monitoring the availability status of the agent. + +```console +zabbix[host,agent,available] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | INTERNAL | +| History | 7d | + +## Triggers + +### Trigger: Configured max number of open filedescriptors is too low + +![scope: performance](https://img.shields.io/badge/scope-performance-00c9bf) + + +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | INFO | + +```console +last(/Linux by Zabbix agent/kernel.maxfiles)<{$KERNEL.MAXFILES.MIN} +``` + +### Trigger: Configured max number of processes is too low + +![scope: performance](https://img.shields.io/badge/scope-performance-00c9bf) + + +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | INFO | + +```console +last(/Linux by Zabbix agent/kernel.maxproc)<{$KERNEL.MAXPROC.MIN} +``` + +### Trigger: High CPU utilization + +![scope: performance](https://img.shields.io/badge/scope-performance-00c9bf) + +CPU utilization is too high. The system might be slow to respond. +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | WARNING | + +```console +min(/Linux by Zabbix agent/system.cpu.util,5m)>{$CPU.UTIL.CRIT} +``` + +### Trigger: System name has changed + +![scope: notice](https://img.shields.io/badge/scope-notice-00c9bf) ![scope: security](https://img.shields.io/badge/scope-security-00c9bf) + +The name of the system has changed. Acknowledge to close the problem manually. +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | INFO | +| Manual close | YES | + +```console +change(/Linux by Zabbix agent/system.hostname) and length(last(/Linux by Zabbix agent/system.hostname))>0 +``` + +### Trigger: System time is out of sync + +![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf) ![scope: performance](https://img.shields.io/badge/scope-performance-00c9bf) + +The host's system time is different from Zabbix server time. +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | WARNING | +| Manual close | YES | + +```console +fuzzytime(/Linux by Zabbix agent/system.localtime,{$SYSTEM.FUZZYTIME.MAX})=0 +``` + +### Trigger: Operating system description has changed + +![scope: notice](https://img.shields.io/badge/scope-notice-00c9bf) + +The description of the operating system has changed. Possible reasons are that the system has been updated or replaced. Acknowledge to close the problem manually. +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | INFO | +| Manual close | YES | + +```console +change(/Linux by Zabbix agent/system.sw.os) and length(last(/Linux by Zabbix agent/system.sw.os))>0 +``` + +### Trigger: Number of installed packages has been changed + +![scope: notice](https://img.shields.io/badge/scope-notice-00c9bf) + + +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | WARNING | +| Manual close | YES | + +```console +change(/Linux by Zabbix agent/system.sw.packages.get)<>0 +``` + +### Trigger: {HOST.NAME} has been restarted + +![scope: notice](https://img.shields.io/badge/scope-notice-00c9bf) + +The host uptime is less than 10 minutes. +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | WARNING | +| Manual close | YES | + +```console +last(/Linux by Zabbix agent/system.uptime)<10m +``` + +### Trigger: /etc/passwd has been changed + +![scope: security](https://img.shields.io/badge/scope-security-00c9bf) + + +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | INFO | +| Manual close | YES | + +```console +last(/Linux by Zabbix agent/vfs.file.cksum[/etc/passwd,sha256],#1)<>last(/Linux by Zabbix agent/vfs.file.cksum[/etc/passwd,sha256],#2) +``` + +### Trigger: High memory utilization + +![scope: capacity](https://img.shields.io/badge/scope-capacity-00c9bf) ![scope: performance](https://img.shields.io/badge/scope-performance-00c9bf) + +The system is running out of free memory. +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | AVERAGE | + +```console +min(/Linux by Zabbix agent/vm.memory.utilization,5m)>{$MEMORY.UTIL.MAX} +``` + +### Trigger: Zabbix agent is not available + +![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf) + +For passive agents only, host availability is used with `{$AGENT.TIMEOUT}` as a time threshold. +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | AVERAGE | +| Manual close | YES | + +```console +max(/Linux by Zabbix agent/zabbix[host,agent,available],{$AGENT.TIMEOUT})=0 +``` + +## Discovery Rules + +### Discovery Rule: Network interface discovery + +The discovery of network interfaces. + +```console +net.if.discovery +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | + +#### Discovery Rule: Network interface discovery: Item Prototypes + +##### Discovery Rule: Network interface discovery: Item Prototype: Interface {#IFNAME}: Inbound packets discarded + +![component: network](https://img.shields.io/badge/component-network-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + + + +```console +net.if.in["{#IFNAME}",dropped] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | + +##### Discovery Rule: Network interface discovery: Item Prototype: Interface {#IFNAME}: Inbound packets with errors + +![component: network](https://img.shields.io/badge/component-network-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + + + +```console +net.if.in["{#IFNAME}",errors] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | + +##### Discovery Rule: Network interface discovery: Item Prototype: Interface {#IFNAME}: Bits received + +![component: network](https://img.shields.io/badge/component-network-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + + + +```console +net.if.in["{#IFNAME}"] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | + +##### Discovery Rule: Network interface discovery: Item Prototype: Interface {#IFNAME}: Outbound packets discarded + +![component: network](https://img.shields.io/badge/component-network-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + + + +```console +net.if.out["{#IFNAME}",dropped] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | + +##### Discovery Rule: Network interface discovery: Item Prototype: Interface {#IFNAME}: Outbound packets with errors + +![component: network](https://img.shields.io/badge/component-network-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + + + +```console +net.if.out["{#IFNAME}",errors] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | + +##### Discovery Rule: Network interface discovery: Item Prototype: Interface {#IFNAME}: Bits sent + +![component: network](https://img.shields.io/badge/component-network-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + + + +```console +net.if.out["{#IFNAME}"] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | + +##### Discovery Rule: Network interface discovery: Item Prototype: Interface {#IFNAME}: Operational status + +![component: network](https://img.shields.io/badge/component-network-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +Reference: https://www.kernel.org/doc/Documentation/networking/operstates.txt + +```console +vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | + +##### Discovery Rule: Network interface discovery: Item Prototype: Interface {#IFNAME}: Speed + +![component: network](https://img.shields.io/badge/component-network-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +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 + + +```console +vfs.file.contents["/sys/class/net/{#IFNAME}/speed"] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | + +##### Discovery Rule: Network interface discovery: Item Prototype: Interface {#IFNAME}: Interface type + +![component: network](https://img.shields.io/badge/component-network-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +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 + + +```console +vfs.file.contents["/sys/class/net/{#IFNAME}/type"] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | + +#### Discovery Rule: Network interface discovery: Discovery Triggers + +##### Discovery Rule: Network interface discovery: Trigger Prototype: Interface {#IFNAME}: Link down + +![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf) + +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. + +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | AVERAGE | +| Manual close | YES | + +```console +{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2 and (last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#1)<>last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#2)) +``` + +#### Discovery Rule: Network interface discovery: Graph Prototypes + +The following graph prototypes are defined by this Template + +* Interface {#IFNAME}: Network traffic + + +### Discovery Rule: Block devices discovery + + + +```console +vfs.dev.discovery +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | + +#### Discovery Rule: Block devices discovery: Item Prototypes + +##### Discovery Rule: Block devices discovery: Item Prototype: {#DEVNAME}: Disk average queue size (avgqu-sz) + +![component: storage](https://img.shields.io/badge/component-storage-00c9bf) ![disk: {#DEVNAME}](https://img.shields.io/badge/disk-{#DEVNAME}-00c9bf) + +The current average disk queue; the number of requests outstanding on the disk while the performance data is being collected. + +```console +vfs.dev.queue_size[{#DEVNAME}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | DEPENDENT | +| Value type | FLOAT | +| Source item | `vfs.file.contents[/sys/block/{#DEVNAME}/stat]` | + +Preprocessing steps: + +| Type | Parameters | +| ---- | ---------- | +| JSONPATH | `["$[10]"]` | +| CHANGE_PER_SECOND | `[""]` | +| MULTIPLIER | `["0.001"]` | + +##### Discovery Rule: Block devices discovery: Item Prototype: {#DEVNAME}: Disk read request avg waiting time (r_await) + +![component: storage](https://img.shields.io/badge/component-storage-00c9bf) ![disk: {#DEVNAME}](https://img.shields.io/badge/disk-{#DEVNAME}-00c9bf) + +This formula contains two Boolean expressions that evaluate to 1 or 0 in order to set the calculated metric to zero and to avoid the exception - division by zero. + +```console +vfs.dev.read.await[{#DEVNAME}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | CALCULATED | +| Value type | FLOAT in !ms | + +##### Discovery Rule: Block devices discovery: Item Prototype: {#DEVNAME}: Disk read rate + +![component: storage](https://img.shields.io/badge/component-storage-00c9bf) ![disk: {#DEVNAME}](https://img.shields.io/badge/disk-{#DEVNAME}-00c9bf) + +r/s (read operations per second) - the number (after merges) of read requests completed per second for the device. + +```console +vfs.dev.read.rate[{#DEVNAME}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | DEPENDENT | +| Value type | FLOAT in !r/s | +| Source item | `vfs.file.contents[/sys/block/{#DEVNAME}/stat]` | + +Preprocessing steps: + +| Type | Parameters | +| ---- | ---------- | +| JSONPATH | `["$[0]"]` | +| CHANGE_PER_SECOND | `[""]` | + +##### Discovery Rule: Block devices discovery: Item Prototype: {#DEVNAME}: Disk read time (rate) + +![component: storage](https://img.shields.io/badge/component-storage-00c9bf) ![disk: {#DEVNAME}](https://img.shields.io/badge/disk-{#DEVNAME}-00c9bf) + +The rate of total read time counter; used in `r_await` calculation. + +```console +vfs.dev.read.time.rate[{#DEVNAME}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | DEPENDENT | +| Value type | FLOAT | +| Source item | `vfs.file.contents[/sys/block/{#DEVNAME}/stat]` | + +Preprocessing steps: + +| Type | Parameters | +| ---- | ---------- | +| JSONPATH | `["$[3]"]` | +| CHANGE_PER_SECOND | `[""]` | +| MULTIPLIER | `["0.001"]` | + +##### Discovery Rule: Block devices discovery: Item Prototype: {#DEVNAME}: Disk utilization + +![component: storage](https://img.shields.io/badge/component-storage-00c9bf) ![disk: {#DEVNAME}](https://img.shields.io/badge/disk-{#DEVNAME}-00c9bf) + +The percentage of elapsed time during which the selected disk drive was busy while servicing read or write requests. + +```console +vfs.dev.util[{#DEVNAME}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | DEPENDENT | +| Value type | FLOAT in % | +| Source item | `vfs.file.contents[/sys/block/{#DEVNAME}/stat]` | + +Preprocessing steps: + +| Type | Parameters | +| ---- | ---------- | +| JSONPATH | `["$[9]"]` | +| CHANGE_PER_SECOND | `[""]` | +| MULTIPLIER | `["0.1"]` | + +##### Discovery Rule: Block devices discovery: Item Prototype: {#DEVNAME}: Disk write request avg waiting time (w_await) + +![component: storage](https://img.shields.io/badge/component-storage-00c9bf) ![disk: {#DEVNAME}](https://img.shields.io/badge/disk-{#DEVNAME}-00c9bf) + +This formula contains two Boolean expressions that evaluate to 1 or 0 in order to set the calculated metric to zero and to avoid the exception - division by zero. + +```console +vfs.dev.write.await[{#DEVNAME}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | CALCULATED | +| Value type | FLOAT in !ms | + +##### Discovery Rule: Block devices discovery: Item Prototype: {#DEVNAME}: Disk write rate + +![component: storage](https://img.shields.io/badge/component-storage-00c9bf) ![disk: {#DEVNAME}](https://img.shields.io/badge/disk-{#DEVNAME}-00c9bf) + +w/s (write operations per second) - the number (after merges) of write requests completed per second for the device. + +```console +vfs.dev.write.rate[{#DEVNAME}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | DEPENDENT | +| Value type | FLOAT in !w/s | +| Source item | `vfs.file.contents[/sys/block/{#DEVNAME}/stat]` | + +Preprocessing steps: + +| Type | Parameters | +| ---- | ---------- | +| JSONPATH | `["$[4]"]` | +| CHANGE_PER_SECOND | `[""]` | + +##### Discovery Rule: Block devices discovery: Item Prototype: {#DEVNAME}: Disk write time (rate) + +![component: storage](https://img.shields.io/badge/component-storage-00c9bf) ![disk: {#DEVNAME}](https://img.shields.io/badge/disk-{#DEVNAME}-00c9bf) + +The rate of total write time counter; used in `w_await` calculation. + +```console +vfs.dev.write.time.rate[{#DEVNAME}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | DEPENDENT | +| Value type | FLOAT | +| Source item | `vfs.file.contents[/sys/block/{#DEVNAME}/stat]` | + +Preprocessing steps: + +| Type | Parameters | +| ---- | ---------- | +| JSONPATH | `["$[7]"]` | +| CHANGE_PER_SECOND | `[""]` | +| MULTIPLIER | `["0.001"]` | + +##### Discovery Rule: Block devices discovery: Item Prototype: {#DEVNAME}: Get stats + +![component: raw](https://img.shields.io/badge/component-raw-00c9bf) + +The contents of get `/sys/block/{#DEVNAME}/stat` to get the disk statistics. + +```console +vfs.file.contents[/sys/block/{#DEVNAME}/stat] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Value type | TEXT | + +#### Discovery Rule: Block devices discovery: Graph Prototypes + +The following graph prototypes are defined by this Template + +* {#DEVNAME}: Disk average waiting time +* {#DEVNAME}: Disk read/write rates +* {#DEVNAME}: Disk utilization and queue + + +### Discovery Rule: Mounted filesystem discovery + +The discovery of mounted filesystems with different types. + +```console +vfs.fs.dependent.discovery +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | DEPENDENT | +| Source item | `vfs.fs.get` | + +Preprocessing steps: + +| Type | Parameters | +| ---- | ---------- | +| JAVASCRIPT | `["var filesystems = JSON.parse(value);\n\nresult = filesystems.map(function (filesystem) {\n\treturn {\n\t\t'fsname': filesystem.fsname,\n\t\t'fstype': filesystem.fstype\n\t};\n});\n\nreturn JSON.stringify(result);\n"]` | +| DISCARD_UNCHANGED_HEARTBEAT | `["1h"]` | + +#### Discovery Rule: Mounted filesystem discovery: Item Prototypes + +##### Discovery Rule: Mounted filesystem discovery: Item Prototype: FS [{#FSNAME}]: Inodes: Free, in % + +![component: storage](https://img.shields.io/badge/component-storage-00c9bf) ![filesystem: {#FSNAME}](https://img.shields.io/badge/filesystem-{#FSNAME}-00c9bf) ![fstype: {#FSTYPE}](https://img.shields.io/badge/fstype-{#FSTYPE}-00c9bf) + +Free metadata space expressed in %. + +```console +vfs.fs.dependent.inode[{#FSNAME},pfree] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | DEPENDENT | +| Value type | FLOAT in % | +| Source item | `vfs.fs.dependent[{#FSNAME},data]` | + +Preprocessing steps: + +| Type | Parameters | +| ---- | ---------- | +| JSONPATH | `["$.inodes.pfree"]` | + +##### Discovery Rule: Mounted filesystem discovery: Item Prototype: FS [{#FSNAME}]: Space: Available + +![component: storage](https://img.shields.io/badge/component-storage-00c9bf) ![filesystem: {#FSNAME}](https://img.shields.io/badge/filesystem-{#FSNAME}-00c9bf) ![fstype: {#FSTYPE}](https://img.shields.io/badge/fstype-{#FSTYPE}-00c9bf) + +Available storage space expressed in bytes. + +```console +vfs.fs.dependent.size[{#FSNAME},free] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | DEPENDENT | +| Source item | `vfs.fs.dependent[{#FSNAME},data]` | + +Preprocessing steps: + +| Type | Parameters | +| ---- | ---------- | +| JSONPATH | `["$.bytes.free"]` | + +##### Discovery Rule: Mounted filesystem discovery: Item Prototype: FS [{#FSNAME}]: Space: Used, in % + +![component: storage](https://img.shields.io/badge/component-storage-00c9bf) ![filesystem: {#FSNAME}](https://img.shields.io/badge/filesystem-{#FSNAME}-00c9bf) ![fstype: {#FSTYPE}](https://img.shields.io/badge/fstype-{#FSTYPE}-00c9bf) + +Calculated as the percentage of currently used space compared to the maximum available space. + +```console +vfs.fs.dependent.size[{#FSNAME},pused] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | DEPENDENT | +| Value type | FLOAT in % | +| Source item | `vfs.fs.dependent[{#FSNAME},data]` | + +Preprocessing steps: + +| Type | Parameters | +| ---- | ---------- | +| JSONPATH | `["$.bytes.pused"]` | + +##### Discovery Rule: Mounted filesystem discovery: Item Prototype: FS [{#FSNAME}]: Space: Total + +![component: storage](https://img.shields.io/badge/component-storage-00c9bf) ![filesystem: {#FSNAME}](https://img.shields.io/badge/filesystem-{#FSNAME}-00c9bf) ![fstype: {#FSTYPE}](https://img.shields.io/badge/fstype-{#FSTYPE}-00c9bf) + +Total space expressed in bytes. + +```console +vfs.fs.dependent.size[{#FSNAME},total] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | DEPENDENT | +| Source item | `vfs.fs.dependent[{#FSNAME},data]` | + +Preprocessing steps: + +| Type | Parameters | +| ---- | ---------- | +| JSONPATH | `["$.bytes.total"]` | + +##### Discovery Rule: Mounted filesystem discovery: Item Prototype: FS [{#FSNAME}]: Space: Used + +![component: storage](https://img.shields.io/badge/component-storage-00c9bf) ![filesystem: {#FSNAME}](https://img.shields.io/badge/filesystem-{#FSNAME}-00c9bf) ![fstype: {#FSTYPE}](https://img.shields.io/badge/fstype-{#FSTYPE}-00c9bf) + +Used storage expressed in bytes. + +```console +vfs.fs.dependent.size[{#FSNAME},used] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | DEPENDENT | +| Source item | `vfs.fs.dependent[{#FSNAME},data]` | + +Preprocessing steps: + +| Type | Parameters | +| ---- | ---------- | +| JSONPATH | `["$.bytes.used"]` | + +##### Discovery Rule: Mounted filesystem discovery: Item Prototype: FS [{#FSNAME}]: Get data + +![component: raw](https://img.shields.io/badge/component-raw-00c9bf) ![component: storage](https://img.shields.io/badge/component-storage-00c9bf) ![filesystem: {#FSNAME}](https://img.shields.io/badge/filesystem-{#FSNAME}-00c9bf) ![fstype: {#FSTYPE}](https://img.shields.io/badge/fstype-{#FSTYPE}-00c9bf) + +Intermediate data of `{#FSNAME}` filesystem. + +```console +vfs.fs.dependent[{#FSNAME},data] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | DEPENDENT | +| Value type | TEXT | +| History | 1h | +| Source item | `vfs.fs.get` | + +Preprocessing steps: + +| Type | Parameters | +| ---- | ---------- | +| JSONPATH | `["$.[?(@.fsname=='{#FSNAME}')].first()"]` | + +##### Discovery Rule: Mounted filesystem discovery: Item Prototype: FS [{#FSNAME}]: Option: Read-only + +![component: storage](https://img.shields.io/badge/component-storage-00c9bf) ![filesystem: {#FSNAME}](https://img.shields.io/badge/filesystem-{#FSNAME}-00c9bf) ![fstype: {#FSTYPE}](https://img.shields.io/badge/fstype-{#FSTYPE}-00c9bf) + +The filesystem is mounted as read-only. It is available only for Zabbix agents 6.4 and higher. + +```console +vfs.fs.dependent[{#FSNAME},readonly] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | DEPENDENT | +| Source item | `vfs.fs.dependent[{#FSNAME},data]` | + +Preprocessing steps: + +| Type | Parameters | +| ---- | ---------- | +| JSONPATH | `["$.options"]` | +| REGEX | `["(?:^|,)ro\\b", "1"]` | + +#### Discovery Rule: Mounted filesystem discovery: Discovery Triggers + +##### Discovery Rule: Mounted filesystem discovery: Trigger Prototype: FS [{#FSNAME}]: Running out of free inodes + +![scope: capacity](https://img.shields.io/badge/scope-capacity-00c9bf) ![scope: performance](https://img.shields.io/badge/scope-performance-00c9bf) + +Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | AVERAGE | + +```console +min(/Linux by Zabbix agent/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} +``` + +##### Discovery Rule: Mounted filesystem discovery: Trigger Prototype: FS [{#FSNAME}]: Running out of free inodes + +![scope: capacity](https://img.shields.io/badge/scope-capacity-00c9bf) ![scope: performance](https://img.shields.io/badge/scope-performance-00c9bf) + +Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | WARNING | + +```console +min(/Linux by Zabbix agent/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} +``` + +##### Discovery Rule: Mounted filesystem discovery: Trigger Prototype: FS [{#FSNAME}]: Space is critically low + +![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf) ![scope: capacity](https://img.shields.io/badge/scope-capacity-00c9bf) + +The volume's space usage exceeds the `{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%` limit. +The trigger expression is based on the current used and maximum available spaces. +Event name represents the total volume space, which can differ from the maximum available space, depending on the filesystem type. + +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | AVERAGE | +| Manual close | YES | + +```console +min(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} +``` + +##### Discovery Rule: Mounted filesystem discovery: Trigger Prototype: FS [{#FSNAME}]: Space is low + +![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf) ![scope: capacity](https://img.shields.io/badge/scope-capacity-00c9bf) + +The volume's space usage exceeds the `{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%` limit. +The trigger expression is based on the current used and maximum available spaces. +Event name represents the total volume space, which can differ from the maximum available space, depending on the filesystem type. + +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | WARNING | +| Manual close | YES | + +```console +min(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} +``` + +##### Discovery Rule: Mounted filesystem discovery: Trigger Prototype: FS [{#FSNAME}]: Filesystem has become read-only + +![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf) ![scope: performance](https://img.shields.io/badge/scope-performance-00c9bf) + +The filesystem has become read-only, possibly due to an I/O error. Available only for Zabbix agents 6.4 and higher. +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | AVERAGE | +| Manual close | YES | + +```console +last(/Linux by Zabbix agent/vfs.fs.dependent[{#FSNAME},readonly],#2)=0 and last(/Linux by Zabbix agent/vfs.fs.dependent[{#FSNAME},readonly])=1 +``` + +#### Discovery Rule: Mounted filesystem discovery: Graph Prototypes + +The following graph prototypes are defined by this Template + +* FS [{#FSTYPE}({#FSNAME})]: Space usage graph, in % (relative to max available) +* FS [{#FSTYPE}({#FSNAME})]: Space utilization chart (relative to total) + + +## Macros + +The following Zabbix macros are configured via this template. + +### Macro: `{$AGENT.TIMEOUT}` + +Timeout after which agent is considered unavailable. Works only for agents reachable from Zabbix server/proxy (passive mode). + +Default: + +```console +3m +``` + +### Macro: `{$CPU.UTIL.CRIT}` + +Critical threshold of CPU utilization expressed in %. + +Default: + +```console +90 +``` + +### Macro: `{$IF.ERRORS.WARN}` + +Warning threshold of error packet rate. Can be used with interface name as context. + +Default: + +```console +2 +``` + +### Macro: `{$IF.UTIL.MAX}` + +Used as a threshold in the interface utilization trigger. + +Default: + +```console +90 +``` + +### Macro: `{$IFCONTROL}` + +Link status trigger will be fired only for interfaces where the context macro equals "1". + +Default: + +```console +1 +``` + +### Macro: `{$KERNEL.MAXFILES.MIN}` + + + +Default: + +```console +256 +``` + +### Macro: `{$KERNEL.MAXPROC.MIN}` + + + +Default: + +```console +1024 +``` + +### Macro: `{$LOAD_AVG_PER_CPU.MAX.WARN}` + +The CPU load per core is considered sustainable. If necessary, it can be tuned. + +Default: + +```console +1.5 +``` + +### Macro: `{$MEMORY.AVAILABLE.MIN}` + +Used as a threshold in the available memory trigger. + +Default: + +```console +20M +``` + +### Macro: `{$MEMORY.UTIL.MAX}` + +Used as a threshold in the memory utilization trigger. + +Default: + +```console +90 +``` + +### Macro: `{$NET.IF.IFNAME.MATCHES}` + +Used for network interface discovery. Can be overridden on the host or linked template level. + +Default: + +```console +^.*$ +``` + +### Macro: `{$NET.IF.IFNAME.NOT_MATCHES}` + +Filters out `loopbacks`, `nulls`, docker `veth` links and `docker0` bridge by default. + +Default: + +```console +(^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}) +``` + +### Macro: `{$SWAP.PFREE.MIN.WARN}` + +The warning threshold of the minimum free swap. + +Default: + +```console +50 +``` + +### Macro: `{$SYSTEM.FUZZYTIME.MAX}` + +The upper threshold for difference of system time. + +Default: + +```console +60s +``` + +### Macro: `{$SYSTEM.FUZZYTIME.MIN}` + +The lower threshold for difference of system time. Used in recovery expression to avoid trigger flapping. + +Default: + +```console +10s +``` + +### Macro: `{$VFS.DEV.DEVNAME.MATCHES}` + +Used for block device discovery. Can be overridden on the host or linked template level. + +Default: + +```console +.+ +``` + +### Macro: `{$VFS.DEV.DEVNAME.NOT_MATCHES}` + +Used for block device discovery. Can be overridden on the host or linked template level. + +Default: + +```console +^(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]*) +``` + +### Macro: `{$VFS.DEV.READ.AWAIT.WARN}` + +The average response time (in ms) of disk read before the trigger fires. + +Default: + +```console +20 +``` + +### Macro: `{$VFS.DEV.WRITE.AWAIT.WARN}` + +The average response time (in ms) of disk write before the trigger fires. + +Default: + +```console +20 +``` + +### Macro: `{$VFS.FS.FSNAME.MATCHES}` + +Used for filesystem discovery. Can be overridden on the host or linked template level. + +Default: + +```console +.+ +``` + +### Macro: `{$VFS.FS.FSNAME.NOT_MATCHES}` + +Used for filesystem discovery. Can be overridden on the host or linked template level. + +Default: + +```console +^(/dev|/sys|/run|/proc|.+/shm$) +``` + +### Macro: `{$VFS.FS.FSTYPE.MATCHES}` + +Used for filesystem discovery. Can be overridden on the host or linked template level. + +Default: + +```console +^(btrfs|ext2|ext3|ext4|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|zfs)$ +``` + +### Macro: `{$VFS.FS.FSTYPE.NOT_MATCHES}` + +Used for filesystem discovery. Can be overridden on the host or linked template level. + +Default: + +```console +^\s$ +``` + +### Macro: `{$VFS.FS.INODE.PFREE.MIN.CRIT}` + +The critical threshold of the filesystem metadata utilization. + +Default: + +```console +10 +``` + +### Macro: `{$VFS.FS.INODE.PFREE.MIN.WARN}` + +The warning threshold of the filesystem metadata utilization. + +Default: + +```console +20 +``` + +### Macro: `{$VFS.FS.PUSED.MAX.CRIT}` + +The critical threshold of the filesystem utilization. + +Default: + +```console +90 +``` + +### Macro: `{$VFS.FS.PUSED.MAX.WARN}` + +The warning threshold of the filesystem utilization. + +Default: + +```console +80 +``` + +## Dashboards + +The following Zabbix dashboards are included in this template. + +* Filesystems +* Network interfaces +* System performance diff --git a/Overrides/Linux_by_Zabbix_agent/7.0/docs/gen_ref_pages.py b/Overrides/Linux_by_Zabbix_agent/7.0/docs/gen_ref_pages.py new file mode 100644 index 00000000..bd02be1b --- /dev/null +++ b/Overrides/Linux_by_Zabbix_agent/7.0/docs/gen_ref_pages.py @@ -0,0 +1,6 @@ +from pathlib import Path + +import mkdocs_gen_files + +with mkdocs_gen_files.open("index.md", "w", encoding="utf-8") as index: + index.writelines(Path("README.md").open("r").read()) diff --git a/Overrides/Linux_by_Zabbix_agent/7.0/mkdocs.yaml b/Overrides/Linux_by_Zabbix_agent/7.0/mkdocs.yaml new file mode 100644 index 00000000..4a19155b --- /dev/null +++ b/Overrides/Linux_by_Zabbix_agent/7.0/mkdocs.yaml @@ -0,0 +1,17 @@ +site_name: "Zabbix Template: Linux by Zabbix agent" +repo_url: https://github.com/radiorabe/rabe-zabbix +repo_name: radiorabe/rabe-zabbix +markdown_extensions: + - pymdownx.highlight: + anchor_linenums: true + - pymdownx.inlinehilite + - pymdownx.snippets + - pymdownx.superfences +plugins: + - search + - gen-files: + scripts: + - docs/gen_ref_pages.py + - literate-nav +nav: + - README: index.md diff --git a/Overrides/PFSense_by_SNMP/7.0/DIFF.md b/Overrides/PFSense_by_SNMP/7.0/DIFF.md new file mode 100644 index 00000000..23d5631e --- /dev/null +++ b/Overrides/PFSense_by_SNMP/7.0/DIFF.md @@ -0,0 +1,170 @@ +# Compare Rabe Override with Upstream Template + +Original: [PFSense by SNMP](https://raw.githubusercontent.com/zabbix/zabbix/release/7.0/templates/app/pfsense_snmp/template_app_pfsense_snmp.yaml) + +## Diff + +```diff +--- before ++++ after +@@ -31,6 +31,7 @@ + type: SNMP_AGENT + snmp_oid: '.1.3.6.1.2.1.25.4.2.1.7["index",".1.3.6.1.2.1.25.4.2.1.2","dhcpd"]' + key: pfsense.dhcpd.status ++ history: 7d + description: | + MIB: HOST-RESOURCES-MIB + The status of DHCP server process. +@@ -60,6 +61,7 @@ + type: SNMP_AGENT + snmp_oid: '.1.3.6.1.2.1.25.4.2.1.7["index",".1.3.6.1.2.1.25.4.2.1.2","unbound"]' + key: pfsense.dns.status ++ history: 7d + description: | + MIB: HOST-RESOURCES-MIB + The status of DNS server process. +@@ -89,6 +91,7 @@ + type: SNMP_AGENT + snmp_oid: '.1.3.6.1.2.1.25.4.2.1.7["index",".1.3.6.1.2.1.25.4.2.1.2","nginx"]' + key: pfsense.nginx.status ++ history: 7d + description: | + MIB: HOST-RESOURCES-MIB + The status of nginx process. +@@ -118,6 +121,7 @@ + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.12325.1.200.1.2.2.0 + key: pfsense.packets.bad.offset ++ history: 7d + value_type: FLOAT + units: pps + description: | +@@ -135,6 +139,7 @@ + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.12325.1.200.1.2.3.0 + key: pfsense.packets.fragment ++ history: 7d + value_type: FLOAT + units: pps + description: | +@@ -152,6 +157,7 @@ + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.12325.1.200.1.2.1.0 + key: pfsense.packets.match ++ history: 7d + value_type: FLOAT + units: pps + description: | +@@ -169,6 +175,7 @@ + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.12325.1.200.1.2.6.0 + key: pfsense.packets.mem.drop ++ history: 7d + value_type: FLOAT + units: pps + description: | +@@ -186,6 +193,7 @@ + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.12325.1.200.1.2.5.0 + key: pfsense.packets.normalize ++ history: 7d + value_type: FLOAT + units: pps + description: | +@@ -203,6 +211,7 @@ + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.12325.1.200.1.2.4.0 + key: pfsense.packets.short ++ history: 7d + value_type: FLOAT + units: pps + description: | +@@ -220,6 +229,7 @@ + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.12325.1.200.1.1.1.0 + key: pfsense.pf.status ++ history: 7d + description: | + MIB: BEGEMOT-PF-MIB + True if packet filter is currently enabled. +@@ -245,6 +255,7 @@ + type: SNMP_AGENT + snmp_oid: .1.3.6.1.4.1.12325.1.200.1.11.1.0 + key: pfsense.rules.count ++ history: 7d + description: | + MIB: BEGEMOT-PF-MIB + The number of labeled filter rules on this system. +@@ -256,6 +267,7 @@ + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.12325.1.200.1.4.1.0 + key: pfsense.source.tracking.table.count ++ history: 7d + description: | + MIB: BEGEMOT-PF-MIB + Number of entries in the source tracking table. +@@ -267,6 +279,7 @@ + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.12325.1.200.1.5.2.0 + key: pfsense.source.tracking.table.limit ++ history: 7d + description: | + MIB: BEGEMOT-PF-MIB + Maximum number of 'sticky-address' or 'source-track' rules in the ruleset. +@@ -277,6 +290,7 @@ + name: 'Source tracking table utilization in %' + type: CALCULATED + key: pfsense.source.tracking.table.pused ++ history: 7d + value_type: FLOAT + units: '%' + params: 'last(//pfsense.source.tracking.table.count) * 100 / last(//pfsense.source.tracking.table.limit)' +@@ -300,6 +314,7 @@ + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.12325.1.200.1.3.1.0 + key: pfsense.state.table.count ++ history: 7d + description: | + MIB: BEGEMOT-PF-MIB + Number of entries in the state table. +@@ -311,6 +326,7 @@ + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.12325.1.200.1.5.1.0 + key: pfsense.state.table.limit ++ history: 7d + description: | + MIB: BEGEMOT-PF-MIB + Maximum number of 'keep state' rules in the ruleset. +@@ -321,6 +337,7 @@ + name: 'States table utilization in %' + type: CALCULATED + key: pfsense.state.table.pused ++ history: 7d + value_type: FLOAT + units: '%' + params: 'last(//pfsense.state.table.count) * 100 / last(//pfsense.state.table.limit)' +@@ -343,6 +360,7 @@ + name: 'SNMP agent availability' + type: INTERNAL + key: 'zabbix[host,snmp,available]' ++ history: 7d + description: | + Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list. + Possible values: +@@ -1978,6 +1996,13 @@ + newvalue: 'not running' + - value: '2' + newvalue: running ++ - uuid: c3c721156c624317af993e1a263c16bc ++ name: 'Service state' ++ mappings: ++ - value: '0' ++ newvalue: Down ++ - value: '1' ++ newvalue: Up + - uuid: f6bb441b7a65446c96c546bd3f3140ee + name: 'SNMPv2-TC::TruthValue' + mappings: + + +``` diff --git a/Overrides/PFSense_by_SNMP/7.0/PFSense_by_SNMP.yaml b/Overrides/PFSense_by_SNMP/7.0/PFSense_by_SNMP.yaml new file mode 100644 index 00000000..09ddeeaa --- /dev/null +++ b/Overrides/PFSense_by_SNMP/7.0/PFSense_by_SNMP.yaml @@ -0,0 +1,2056 @@ +zabbix_export: + version: '7.0' + template_groups: + - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6 + name: Templates/Applications + templates: + - uuid: 16f281aeb8904d3db8b66dda94611fcc + template: 'PFSense by SNMP' + name: 'PFSense by SNMP' + description: | + Template for monitoring pfSense by SNMP + Setup: + 1. Enable SNMP daemon at Services in pfSense web interface https://docs.netgate.com/pfsense/en/latest/services/snmp.html + 2. Setup firewall rule to get access from Zabbix proxy or Zabbix server by SNMP https://docs.netgate.com/pfsense/en/latest/firewall/index.html#managing-firewall-rules + 3. Link template to the host + + + MIBs used: + BEGEMOT-PF-MIB + HOST-RESOURCES-MIB + + Generated by official Zabbix template tool "Templator" + vendor: + name: Zabbix + version: 7.0-0 + groups: + - name: Templates/Applications + items: + - uuid: a2a331bc385344a1877a45f3887b7d91 + name: 'DHCP server status' + type: SNMP_AGENT + snmp_oid: '.1.3.6.1.2.1.25.4.2.1.7["index",".1.3.6.1.2.1.25.4.2.1.2","dhcpd"]' + key: pfsense.dhcpd.status + history: 7d + description: | + MIB: HOST-RESOURCES-MIB + The status of DHCP server process. + valuemap: + name: 'Services status' + preprocessing: + - type: CHECK_NOT_SUPPORTED + parameters: + - '-1' + error_handler: CUSTOM_VALUE + error_handler_params: '0' + tags: + - tag: component + value: application + triggers: + - uuid: 80fc3672290d45d49c250ccc120f3606 + expression: 'last(/PFSense by SNMP/pfsense.dhcpd.status)=0' + name: 'DHCP server is not running' + opdata: 'Current state: {ITEM.LASTVALUE1}' + priority: AVERAGE + description: 'Please check DHCP server settings https://docs.netgate.com/pfsense/en/latest/services/dhcp/index.html' + tags: + - tag: scope + value: availability + - uuid: 6a03330a20354f76b8496b9a8eac0c0a + name: 'DNS server status' + type: SNMP_AGENT + snmp_oid: '.1.3.6.1.2.1.25.4.2.1.7["index",".1.3.6.1.2.1.25.4.2.1.2","unbound"]' + key: pfsense.dns.status + history: 7d + description: | + MIB: HOST-RESOURCES-MIB + The status of DNS server process. + valuemap: + name: 'Services status' + preprocessing: + - type: CHECK_NOT_SUPPORTED + parameters: + - '-1' + error_handler: CUSTOM_VALUE + error_handler_params: '0' + tags: + - tag: component + value: application + triggers: + - uuid: 67b862f6aa3a4833af44d513aad517b5 + expression: 'last(/PFSense by SNMP/pfsense.dns.status)=0' + name: 'DNS server is not running' + opdata: 'Current state: {ITEM.LASTVALUE1}' + priority: AVERAGE + description: 'Please check DNS server settings https://docs.netgate.com/pfsense/en/latest/services/dns/index.html' + tags: + - tag: scope + value: availability + - uuid: 18a8140ca46a47e0b4a3612be5338ada + name: 'State of nginx process' + type: SNMP_AGENT + snmp_oid: '.1.3.6.1.2.1.25.4.2.1.7["index",".1.3.6.1.2.1.25.4.2.1.2","nginx"]' + key: pfsense.nginx.status + history: 7d + description: | + MIB: HOST-RESOURCES-MIB + The status of nginx process. + valuemap: + name: 'Services status' + preprocessing: + - type: CHECK_NOT_SUPPORTED + parameters: + - '-1' + error_handler: CUSTOM_VALUE + error_handler_params: '0' + tags: + - tag: component + value: application + triggers: + - uuid: 9f7a47055ee64edcbb70b047a35f7774 + expression: 'last(/PFSense by SNMP/pfsense.nginx.status)=0' + name: 'Web server is not running' + opdata: 'Current state: {ITEM.LASTVALUE1}' + priority: AVERAGE + description: 'Please check nginx service status.' + tags: + - tag: scope + value: availability + - uuid: 3739cb57166343e3955d00fa31d55bd3 + name: 'Packets with bad offset' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.12325.1.200.1.2.2.0 + key: pfsense.packets.bad.offset + history: 7d + value_type: FLOAT + units: pps + description: | + MIB: BEGEMOT-PF-MIB + True if the packet was logged with the specified packet filter reason code. The known codes are: match, bad-offset, fragment, short, normalize, and memory. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: network + - uuid: 519dbf4fa71b48e8b70c1260caffea14 + name: 'Fragmented packets' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.12325.1.200.1.2.3.0 + key: pfsense.packets.fragment + history: 7d + value_type: FLOAT + units: pps + description: | + MIB: BEGEMOT-PF-MIB + True if the packet was logged with the specified packet filter reason code. The known codes are: match, bad-offset, fragment, short, normalize, and memory. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: network + - uuid: d4a0686adfa7421ea472e64d94bee70b + name: 'Packets matched a filter rule' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.12325.1.200.1.2.1.0 + key: pfsense.packets.match + history: 7d + value_type: FLOAT + units: pps + description: | + MIB: BEGEMOT-PF-MIB + True if the packet was logged with the specified packet filter reason code. The known codes are: match, bad-offset, fragment, short, normalize, and memory. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: network + - uuid: ca30df62467645b6a04f791bf22d7b91 + name: 'Packets dropped due to memory limitation' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.12325.1.200.1.2.6.0 + key: pfsense.packets.mem.drop + history: 7d + value_type: FLOAT + units: pps + description: | + MIB: BEGEMOT-PF-MIB + True if the packet was logged with the specified packet filter reason code. The known codes are: match, bad-offset, fragment, short, normalize, and memory. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: network + - uuid: 82360caa98ca4f209499db3c55b0c330 + name: 'Normalized packets' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.12325.1.200.1.2.5.0 + key: pfsense.packets.normalize + history: 7d + value_type: FLOAT + units: pps + description: | + MIB: BEGEMOT-PF-MIB + True if the packet was logged with the specified packet filter reason code. The known codes are: match, bad-offset, fragment, short, normalize, and memory. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: network + - uuid: cf4fbeeb1a6a4d9dbb69adf90b54de3a + name: 'Short packets' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.12325.1.200.1.2.4.0 + key: pfsense.packets.short + history: 7d + value_type: FLOAT + units: pps + description: | + MIB: BEGEMOT-PF-MIB + True if the packet was logged with the specified packet filter reason code. The known codes are: match, bad-offset, fragment, short, normalize, and memory. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: network + - uuid: 600896282920468baf2e47ab75ee9b31 + name: 'Packet filter running status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.12325.1.200.1.1.1.0 + key: pfsense.pf.status + history: 7d + description: | + MIB: BEGEMOT-PF-MIB + True if packet filter is currently enabled. + valuemap: + name: 'SNMPv2-TC::TruthValue' + tags: + - tag: component + value: application + - tag: component + value: health + triggers: + - uuid: 4a7ff4c437054ce88c6c069ffcb6434f + expression: 'last(/PFSense by SNMP/pfsense.pf.status)<>1' + name: 'Packet filter is not running' + opdata: 'Current running state: {ITEM.LASTVALUE1}' + priority: HIGH + description: 'Please check PF status.' + tags: + - tag: scope + value: availability + - uuid: 6d0cf4a1a284453991e12daf921fed9a + name: 'Firewall rules count' + type: SNMP_AGENT + snmp_oid: .1.3.6.1.4.1.12325.1.200.1.11.1.0 + key: pfsense.rules.count + history: 7d + description: | + MIB: BEGEMOT-PF-MIB + The number of labeled filter rules on this system. + tags: + - tag: component + value: firewall + - uuid: c13b50c508e04851baf09c1c865241fc + name: 'Source tracking table current' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.12325.1.200.1.4.1.0 + key: pfsense.source.tracking.table.count + history: 7d + description: | + MIB: BEGEMOT-PF-MIB + Number of entries in the source tracking table. + tags: + - tag: component + value: network + - uuid: 58e12f73fd4243a89d62bbdc7e307cf9 + name: 'Source tracking table limit' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.12325.1.200.1.5.2.0 + key: pfsense.source.tracking.table.limit + history: 7d + description: | + MIB: BEGEMOT-PF-MIB + Maximum number of 'sticky-address' or 'source-track' rules in the ruleset. + tags: + - tag: component + value: network + - uuid: 8fb3a344b39241bbb3bf78092fa17ec8 + name: 'Source tracking table utilization in %' + type: CALCULATED + key: pfsense.source.tracking.table.pused + history: 7d + value_type: FLOAT + units: '%' + params: 'last(//pfsense.source.tracking.table.count) * 100 / last(//pfsense.source.tracking.table.limit)' + description: 'Utilization of source tracking table in %.' + tags: + - tag: component + value: network + triggers: + - uuid: 7983ee28646d4327ae0814c88c7b213f + expression: 'min(/PFSense by SNMP/pfsense.source.tracking.table.pused,#3)>{$SOURCE.TRACKING.TABLE.UTIL.MAX}' + name: 'Source tracking table usage is high' + event_name: 'Source tracking table usage more than {$SOURCE.TRACKING.TABLE.UTIL.MAX}.' + opdata: 'Current utilization: {ITEM.LASTVALUE1}' + priority: WARNING + description: 'Please check the number of sticky connections https://docs.netgate.com/pfsense/en/latest/monitoring/status/firewall-states-sources.html' + tags: + - tag: scope + value: capacity + - uuid: f0eab94d244b46c29363b630850ed709 + name: 'States table current' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.12325.1.200.1.3.1.0 + key: pfsense.state.table.count + history: 7d + description: | + MIB: BEGEMOT-PF-MIB + Number of entries in the state table. + tags: + - tag: component + value: network + - uuid: 8500a1db240b48d7bca514371a89c641 + name: 'States table limit' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.12325.1.200.1.5.1.0 + key: pfsense.state.table.limit + history: 7d + description: | + MIB: BEGEMOT-PF-MIB + Maximum number of 'keep state' rules in the ruleset. + tags: + - tag: component + value: network + - uuid: 5e96cadaafca4e51ad62dba4fec5220a + name: 'States table utilization in %' + type: CALCULATED + key: pfsense.state.table.pused + history: 7d + value_type: FLOAT + units: '%' + params: 'last(//pfsense.state.table.count) * 100 / last(//pfsense.state.table.limit)' + description: 'Utilization of state table in %.' + tags: + - tag: component + value: network + triggers: + - uuid: ce0e7dec597e4148abd9b699c787decd + expression: 'min(/PFSense by SNMP/pfsense.state.table.pused,#3)>{$STATE.TABLE.UTIL.MAX}' + name: 'State table usage is high' + event_name: 'State table usage more than {$STATE.TABLE.UTIL.MAX}.' + opdata: 'Current utilization: {ITEM.LASTVALUE1}' + priority: WARNING + description: 'Please check the number of connections https://docs.netgate.com/pfsense/en/latest/config/advanced-firewall-nat.html#config-advanced-firewall-maxstates' + tags: + - tag: scope + value: capacity + - uuid: 585c88310a704e119aa5fc7f7f9c3804 + name: 'SNMP agent availability' + type: INTERNAL + key: 'zabbix[host,snmp,available]' + history: 7d + description: | + Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list. + Possible values: + 0 - not available + 1 - available + 2 - unknown + valuemap: + name: zabbix.host.available + tags: + - tag: component + value: health + - tag: component + value: network + triggers: + - uuid: d06bdb79a48c438798286a89680eb3e1 + expression: 'max(/PFSense by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' + name: 'No SNMP data collection' + opdata: 'Current state: {ITEM.LASTVALUE1}' + priority: WARNING + description: 'SNMP is not available for polling. Please check device connectivity and SNMP settings.' + tags: + - tag: scope + value: availability + discovery_rules: + - uuid: 441ad463ea5544f89cb56b0b8f7763f9 + name: 'Network interfaces discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#IFOPERSTATUS},1.3.6.1.2.1.2.2.1.8,{#IFADMINSTATUS},1.3.6.1.2.1.2.2.1.7,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFNAME},1.3.6.1.2.1.31.1.1.1.1,{#IFDESCR},1.3.6.1.2.1.2.2.1.2,{#IFTYPE},1.3.6.1.2.1.2.2.1.3]' + key: pfsense.net.if.discovery + delay: 1h + filter: + evaltype: AND + conditions: + - macro: '{#IFADMINSTATUS}' + value: '{$NET.IF.IFADMINSTATUS.MATCHES}' + formulaid: A + - macro: '{#IFADMINSTATUS}' + value: '{$NET.IF.IFADMINSTATUS.NOT_MATCHES}' + operator: NOT_MATCHES_REGEX + formulaid: B + - macro: '{#IFALIAS}' + value: '{$NET.IF.IFALIAS.MATCHES}' + formulaid: C + - macro: '{#IFALIAS}' + value: '{$NET.IF.IFALIAS.NOT_MATCHES}' + operator: NOT_MATCHES_REGEX + formulaid: D + - macro: '{#IFDESCR}' + value: '{$NET.IF.IFDESCR.MATCHES}' + formulaid: E + - macro: '{#IFDESCR}' + value: '{$NET.IF.IFDESCR.NOT_MATCHES}' + operator: NOT_MATCHES_REGEX + formulaid: F + - macro: '{#IFNAME}' + value: '@Network interfaces for discovery' + formulaid: G + - macro: '{#IFNAME}' + value: '{$NET.IF.IFNAME.NOT_MATCHES}' + operator: NOT_MATCHES_REGEX + formulaid: H + - macro: '{#IFOPERSTATUS}' + value: '{$NET.IF.IFOPERSTATUS.MATCHES}' + formulaid: I + - macro: '{#IFOPERSTATUS}' + value: '{$NET.IF.IFOPERSTATUS.NOT_MATCHES}' + operator: NOT_MATCHES_REGEX + formulaid: J + - macro: '{#IFTYPE}' + value: '{$NET.IF.IFTYPE.MATCHES}' + formulaid: K + - macro: '{#IFTYPE}' + value: '{$NET.IF.IFTYPE.NOT_MATCHES}' + operator: NOT_MATCHES_REGEX + formulaid: L + description: 'Discovering interfaces from IF-MIB.' + item_prototypes: + - uuid: b20cd75f9b8543c894862003121893c1 + name: 'Interface [{#IFNAME}({#IFALIAS})]: Inbound IPv4 traffic blocked' + type: SNMP_AGENT + snmp_oid: '.1.3.6.1.4.1.12325.1.200.1.8.2.1.8["index",".1.3.6.1.4.1.12325.1.200.1.8.2.1.2","{#IFDESCR}"]' + key: 'net.if.in.block.v4.bps[{#SNMPINDEX}]' + units: bps + description: | + MIB: BEGEMOT-PF-MIB + IPv4 bits per second blocked coming in on this interface. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + - type: MULTIPLIER + parameters: + - '8' + tags: + - tag: component + value: firewall + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + - uuid: 850a471b36de4bcebf9d8831f52953de + name: 'Interface [{#IFNAME}({#IFALIAS})]: Inbound IPv4 packets blocked' + type: SNMP_AGENT + snmp_oid: '.1.3.6.1.4.1.12325.1.200.1.8.2.1.12["index",".1.3.6.1.4.1.12325.1.200.1.8.2.1.2","{#IFDESCR}"]' + key: 'net.if.in.block.v4.pps[{#SNMPINDEX}]' + units: pps + description: | + MIB: BEGEMOT-PF-MIB + The number of IPv4 packets blocked coming in on this interface. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: firewall + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + - uuid: 96de779174c8486d97269a43f0d4a8f4 + name: 'Interface [{#IFNAME}({#IFALIAS})]: Inbound IPv6 traffic blocked' + type: SNMP_AGENT + snmp_oid: '.1.3.6.1.4.1.12325.1.200.1.8.2.1.16["index",".1.3.6.1.4.1.12325.1.200.1.8.2.1.2","{#IFDESCR}"]' + key: 'net.if.in.block.v6.bps[{#SNMPINDEX}]' + units: bps + description: | + MIB: BEGEMOT-PF-MIB + IPv6 bits per second blocked coming in on this interface. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + - type: MULTIPLIER + parameters: + - '8' + tags: + - tag: component + value: firewall + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + - uuid: 2582b09afee14e658c9c9c8b845818b9 + name: 'Interface [{#IFNAME}({#IFALIAS})]: Inbound IPv6 packets blocked' + type: SNMP_AGENT + snmp_oid: '.1.3.6.1.4.1.12325.1.200.1.8.2.1.20["index",".1.3.6.1.4.1.12325.1.200.1.8.2.1.2","{#IFDESCR}"]' + key: 'net.if.in.block.v6.pps[{#SNMPINDEX}]' + units: pps + description: | + MIB: BEGEMOT-PF-MIB + The number of IPv6 packets blocked coming in on this interface. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: firewall + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + - uuid: eea8bd3342824bed8b4e3768c069e8b3 + name: 'Interface [{#IFNAME}({#IFALIAS})]: Inbound packets discarded' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.2.1.2.2.1.13.{#SNMPINDEX}' + key: 'net.if.in.discards[{#SNMPINDEX}]' + description: | + MIB: IF-MIB + The number of inbound packets which were chosen to be discarded + even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. + One possible reason for discarding such a packet could be to free up buffer space. + Discontinuities in the value of this counter can occur at re-initialization of the management system, + and at other times as indicated by the value of ifCounterDiscontinuityTime. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + - uuid: 4915f853f848404988ce7ae3a22e7991 + name: 'Interface [{#IFNAME}({#IFALIAS})]: Inbound packets with errors' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.2.1.2.2.1.14.{#SNMPINDEX}' + key: 'net.if.in.errors[{#SNMPINDEX}]' + description: | + MIB: IF-MIB + For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + trigger_prototypes: + - uuid: f5cbc2b7d91f4fa5aab8eb96d8a0550f + expression: 'min(/PFSense by SNMP/net.if.in.errors[{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}' + recovery_mode: RECOVERY_EXPRESSION + recovery_expression: 'max(/PFSense by SNMP/net.if.in.errors[{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8' + name: 'Interface [{#IFNAME}({#IFALIAS})]: High input error rate' + event_name: 'Interface [{#IFNAME}({#IFALIAS})]: High input error rate ( > {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)' + opdata: 'errors in: {ITEM.LASTVALUE1}' + priority: WARNING + description: 'It recovers when it is below 80% of the `{$IF.ERRORS.WARN:"{#IFNAME}"}` threshold.' + dependencies: + - name: 'Interface [{#IFNAME}({#IFALIAS})]: Link down' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/PFSense by SNMP/net.if.status[{#SNMPINDEX}])=2)' + tags: + - tag: scope + value: availability + - uuid: fcda9fb8fff14106940543836177e3e3 + name: 'Interface [{#IFNAME}({#IFALIAS})]: Inbound IPv4 traffic passed' + type: SNMP_AGENT + snmp_oid: '.1.3.6.1.4.1.12325.1.200.1.8.2.1.7["index",".1.3.6.1.4.1.12325.1.200.1.8.2.1.2","{#IFDESCR}"]' + key: 'net.if.in.pass.v4.bps[{#SNMPINDEX}]' + units: bps + description: | + MIB: BEGEMOT-PF-MIB + IPv4 bits per second passed coming in on this interface. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + - type: MULTIPLIER + parameters: + - '8' + tags: + - tag: component + value: firewall + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + - uuid: a895016cc42341729beb3ec41e30e1dc + name: 'Interface [{#IFNAME}({#IFALIAS})]: Inbound IPv4 packets passed' + type: SNMP_AGENT + snmp_oid: '.1.3.6.1.4.1.12325.1.200.1.8.2.1.11["index",".1.3.6.1.4.1.12325.1.200.1.8.2.1.2","{#IFDESCR}"]' + key: 'net.if.in.pass.v4.pps[{#SNMPINDEX}]' + units: pps + description: | + MIB: BEGEMOT-PF-MIB + The number of IPv4 packets passed coming in on this interface. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: firewall + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + - uuid: 1ed0a16478074997a3254fd1025a438d + name: 'Interface [{#IFNAME}({#IFALIAS})]: Inbound IPv6 traffic passed' + type: SNMP_AGENT + snmp_oid: '.1.3.6.1.4.1.12325.1.200.1.8.2.1.15["index",".1.3.6.1.4.1.12325.1.200.1.8.2.1.2","{#IFDESCR}"]' + key: 'net.if.in.pass.v6.bps[{#SNMPINDEX}]' + units: bps + description: | + MIB: BEGEMOT-PF-MIB + IPv6 bits per second passed coming in on this interface. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + - type: MULTIPLIER + parameters: + - '8' + tags: + - tag: component + value: firewall + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + - uuid: 5eb85cf165424dde93e028468c310593 + name: 'Interface [{#IFNAME}({#IFALIAS})]: Inbound IPv6 packets passed' + type: SNMP_AGENT + snmp_oid: '.1.3.6.1.4.1.12325.1.200.1.8.2.1.19["index",".1.3.6.1.4.1.12325.1.200.1.8.2.1.2","{#IFDESCR}"]' + key: 'net.if.in.pass.v6.pps[{#SNMPINDEX}]' + units: pps + description: | + MIB: BEGEMOT-PF-MIB + The number of IPv6 packets passed coming in on this interface. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: firewall + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + - uuid: 4fefa40765144566a5c507ef19f884d6 + name: 'Interface [{#IFNAME}({#IFALIAS})]: Bits received' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.2.1.31.1.1.1.6.{#SNMPINDEX}' + key: 'net.if.in[{#SNMPINDEX}]' + units: bps + description: | + MIB: IF-MIB + The total number of octets received on the interface, including framing characters. This object is a 64-bit version of ifInOctets. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + - type: MULTIPLIER + parameters: + - '8' + tags: + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + - uuid: b9c94af7fae9462a9659261366c03e4f + name: 'Interface [{#IFNAME}({#IFALIAS})]: Outbound IPv4 traffic blocked' + type: SNMP_AGENT + snmp_oid: '.1.3.6.1.4.1.12325.1.200.1.8.2.1.10["index",".1.3.6.1.4.1.12325.1.200.1.8.2.1.2","{#IFDESCR}"]' + key: 'net.if.out.block.v4.bps[{#SNMPINDEX}]' + units: bps + description: | + MIB: BEGEMOT-PF-MIB + IPv4 bits per second blocked going out on this interface. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + - type: MULTIPLIER + parameters: + - '8' + tags: + - tag: component + value: firewall + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + - uuid: 03c616505a6746ffa8027efd95aad00d + name: 'Interface [{#IFNAME}({#IFALIAS})]: Outbound IPv4 packets blocked' + type: SNMP_AGENT + snmp_oid: '.1.3.6.1.4.1.12325.1.200.1.8.2.1.14["index",".1.3.6.1.4.1.12325.1.200.1.8.2.1.2","{#IFDESCR}"]' + key: 'net.if.out.block.v4.pps[{#SNMPINDEX}]' + units: pps + description: | + MIB: BEGEMOT-PF-MIB + The number of IPv4 packets blocked going out on this interface. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: firewall + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + - uuid: c81392868fe04ba5bd82dcffa3065e73 + name: 'Interface [{#IFNAME}({#IFALIAS})]: Outbound IPv6 traffic blocked' + type: SNMP_AGENT + snmp_oid: '.1.3.6.1.4.1.12325.1.200.1.8.2.1.18["index",".1.3.6.1.4.1.12325.1.200.1.8.2.1.2","{#IFDESCR}"]' + key: 'net.if.out.block.v6.bps[{#SNMPINDEX}]' + units: bps + description: | + MIB: BEGEMOT-PF-MIB + IPv6 bits per second blocked going out on this interface. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + - type: MULTIPLIER + parameters: + - '8' + tags: + - tag: component + value: firewall + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + - uuid: 41a658c922614223b5473eb4e01a3336 + name: 'Interface [{#IFNAME}({#IFALIAS})]: Outbound IPv6 packets blocked' + type: SNMP_AGENT + snmp_oid: '.1.3.6.1.4.1.12325.1.200.1.8.2.1.22["index",".1.3.6.1.4.1.12325.1.200.1.8.2.1.2","{#IFDESCR}"]' + key: 'net.if.out.block.v6.pps[{#SNMPINDEX}]' + units: pps + description: | + MIB: BEGEMOT-PF-MIB + The number of IPv6 packets blocked going out on this interface. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: firewall + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + - uuid: feb327e6f99e41c3a0194d1578a46e50 + name: 'Interface [{#IFNAME}({#IFALIAS})]: Outbound packets discarded' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.2.1.2.2.1.19.{#SNMPINDEX}' + key: 'net.if.out.discards[{#SNMPINDEX}]' + description: | + MIB: IF-MIB + The number of outbound packets which were chosen to be discarded + even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. + One possible reason for discarding such a packet could be to free up buffer space. + Discontinuities in the value of this counter can occur at re-initialization of the management system, + and at other times as indicated by the value of ifCounterDiscontinuityTime. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + - uuid: 72d053e5bf3b4330a99382b8a2efcdf7 + name: 'Interface [{#IFNAME}({#IFALIAS})]: Outbound packets with errors' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.2.1.2.2.1.20.{#SNMPINDEX}' + key: 'net.if.out.errors[{#SNMPINDEX}]' + description: | + MIB: IF-MIB + For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + trigger_prototypes: + - uuid: 5fb5f37490d04dbc8e0553c6aa881547 + expression: 'min(/PFSense by SNMP/net.if.out.errors[{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}' + recovery_mode: RECOVERY_EXPRESSION + recovery_expression: 'max(/PFSense by SNMP/net.if.out.errors[{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8' + name: 'Interface [{#IFNAME}({#IFALIAS})]: High output error rate' + event_name: 'Interface [{#IFNAME}({#IFALIAS})]: High output error rate ( > {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)' + opdata: 'errors out: {ITEM.LASTVALUE2}' + priority: WARNING + description: 'It recovers when it is below 80% of the `{$IF.ERRORS.WARN:"{#IFNAME}"}` threshold.' + dependencies: + - name: 'Interface [{#IFNAME}({#IFALIAS})]: Link down' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/PFSense by SNMP/net.if.status[{#SNMPINDEX}])=2)' + tags: + - tag: scope + value: availability + - uuid: 29e2a5d7299b4419bbb29a98c068d46f + name: 'Interface [{#IFNAME}({#IFALIAS})]: Outbound IPv4 traffic passed' + type: SNMP_AGENT + snmp_oid: '.1.3.6.1.4.1.12325.1.200.1.8.2.1.9["index",".1.3.6.1.4.1.12325.1.200.1.8.2.1.2","{#IFDESCR}"]' + key: 'net.if.out.pass.v4.bps[{#SNMPINDEX}]' + units: bps + description: | + MIB: BEGEMOT-PF-MIB + IPv4 bits per second passed going out on this interface. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + - type: MULTIPLIER + parameters: + - '8' + tags: + - tag: component + value: firewall + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + - uuid: e073f3fd38ed4aeaba85dfa5b74cc066 + name: 'Interface [{#IFNAME}({#IFALIAS})]: Outbound IPv4 packets passed' + type: SNMP_AGENT + snmp_oid: '.1.3.6.1.4.1.12325.1.200.1.8.2.1.13["index",".1.3.6.1.4.1.12325.1.200.1.8.2.1.2","{#IFDESCR}"]' + key: 'net.if.out.pass.v4.pps[{#SNMPINDEX}]' + units: pps + description: | + MIB: BEGEMOT-PF-MIB + The number of IPv4 packets passed going out on this interface. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: firewall + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + - uuid: 3b472db1999640c3a0ef0c75ddae7940 + name: 'Interface [{#IFNAME}({#IFALIAS})]: Outbound IPv6 traffic passed' + type: SNMP_AGENT + snmp_oid: '.1.3.6.1.4.1.12325.1.200.1.8.2.1.17["index",".1.3.6.1.4.1.12325.1.200.1.8.2.1.2","{#IFDESCR}"]' + key: 'net.if.out.pass.v6.bps[{#SNMPINDEX}]' + units: bps + description: | + MIB: BEGEMOT-PF-MIB + IPv6 bits per second passed going out on this interface. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + - type: MULTIPLIER + parameters: + - '8' + tags: + - tag: component + value: firewall + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + - uuid: a5ba6a1a6dbf4788b77eee825f85eed1 + name: 'Interface [{#IFNAME}({#IFALIAS})]: Outbound IPv6 packets passed' + type: SNMP_AGENT + snmp_oid: '.1.3.6.1.4.1.12325.1.200.1.8.2.1.21["index",".1.3.6.1.4.1.12325.1.200.1.8.2.1.2","{#IFDESCR}"]' + key: 'net.if.out.pass.v6.pps[{#SNMPINDEX}]' + units: pps + description: | + MIB: BEGEMOT-PF-MIB + The number of IPv6 packets passed going out on this interface. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + tags: + - tag: component + value: firewall + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + - uuid: afd513d29ecc4360ab0baf0a7ae3bb53 + name: 'Interface [{#IFNAME}({#IFALIAS})]: Bits sent' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.2.1.31.1.1.1.10.{#SNMPINDEX}' + key: 'net.if.out[{#SNMPINDEX}]' + units: bps + description: | + MIB: IF-MIB + The total number of octets transmitted out of the interface, including framing characters. This object is a 64-bit version of ifOutOctets.Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. + preprocessing: + - type: CHANGE_PER_SECOND + parameters: + - '' + - type: MULTIPLIER + parameters: + - '8' + tags: + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + - uuid: ecde40c612da452599e2e7b2f1979e83 + name: 'Interface [{#IFNAME}({#IFALIAS})]: Rules references count' + type: SNMP_AGENT + snmp_oid: '.1.3.6.1.4.1.12325.1.200.1.8.2.1.6["index",".1.3.6.1.4.1.12325.1.200.1.8.2.1.2","{#IFDESCR}"]' + key: 'net.if.rules.refs[{#SNMPINDEX}]' + description: | + MIB: BEGEMOT-PF-MIB + The number of rules referencing this interface. + tags: + - tag: component + value: firewall + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + - uuid: eb2f06d673094e10bab8e1d774b26997 + name: 'Interface [{#IFNAME}({#IFALIAS})]: Speed' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.2.1.31.1.1.1.15.{#SNMPINDEX}' + key: 'net.if.speed[{#SNMPINDEX}]' + units: bps + description: | + MIB: IF-MIB + An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of `n' then the speed of the interface is somewhere in the range of `n-500,000' to`n+499,999'. For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. For a sub-layer which has no concept of bandwidth, this object should be zero. + preprocessing: + - type: MULTIPLIER + parameters: + - '1000000' + - type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + tags: + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + - uuid: 2af41422c46141fba0432818b076bca3 + name: 'Interface [{#IFNAME}({#IFALIAS})]: Operational status' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.2.1.2.2.1.8.{#SNMPINDEX}' + key: 'net.if.status[{#SNMPINDEX}]' + description: | + MIB: IF-MIB + The current operational state of the interface. + - The testing(3) state indicates that no operational packet scan be passed + - If ifAdminStatus is down(2) then ifOperStatus should be down(2) + - If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic + - It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection) + - It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state + - It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components. + valuemap: + name: 'IF-MIB::ifOperStatus' + preprocessing: + - type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + tags: + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + trigger_prototypes: + - uuid: d4392162d62541aeb148718ddd7f5d57 + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/PFSense by SNMP/net.if.status[{#SNMPINDEX}])=2)' + name: 'Interface [{#IFNAME}({#IFALIAS})]: 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 context macro to value - 0. That marks this interface as not important. No new trigger will be fired if this interface is down. + tags: + - tag: scope + value: availability + - uuid: 86f6e925d8a64e31a44b5338c92b31ec + name: 'Interface [{#IFNAME}({#IFALIAS})]: Interface type' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.2.1.2.2.1.3.{#SNMPINDEX}' + key: 'net.if.type[{#SNMPINDEX}]' + description: | + MIB: IF-MIB + The type of interface. + Additional values for ifType are assigned by the Internet Assigned Numbers Authority (IANA), + through updating the syntax of the IANAifType textual convention. + valuemap: + name: 'IF-MIB::ifType' + preprocessing: + - type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + tags: + - tag: component + value: network + - tag: description + value: '{#IFALIAS}' + - tag: interface + value: '{#IFNAME}' + trigger_prototypes: + - uuid: eb3090605ba14407a91736ac9768d65a + expression: | + change(/PFSense by SNMP/net.if.speed[{#SNMPINDEX}])<0 and last(/PFSense by SNMP/net.if.speed[{#SNMPINDEX}])>0 + and ( + last(/PFSense by SNMP/net.if.type[{#SNMPINDEX}])=6 or + last(/PFSense by SNMP/net.if.type[{#SNMPINDEX}])=7 or + last(/PFSense by SNMP/net.if.type[{#SNMPINDEX}])=11 or + last(/PFSense by SNMP/net.if.type[{#SNMPINDEX}])=62 or + last(/PFSense by SNMP/net.if.type[{#SNMPINDEX}])=69 or + last(/PFSense by SNMP/net.if.type[{#SNMPINDEX}])=117 + ) + and + (last(/PFSense by SNMP/net.if.status[{#SNMPINDEX}])<>2) + recovery_mode: RECOVERY_EXPRESSION + recovery_expression: | + (change(/PFSense by SNMP/net.if.speed[{#SNMPINDEX}])>0 and last(/PFSense by SNMP/net.if.speed[{#SNMPINDEX}],#2)>0) or + (last(/PFSense by SNMP/net.if.status[{#SNMPINDEX}])=2) + name: 'Interface [{#IFNAME}({#IFALIAS})]: 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.' + dependencies: + - name: 'Interface [{#IFNAME}({#IFALIAS})]: Link down' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/PFSense by SNMP/net.if.status[{#SNMPINDEX}])=2)' + tags: + - tag: scope + value: capacity + - uuid: 90c99a9c4ce44b3ca929c4b3200286fb + expression: | + (avg(/PFSense by SNMP/net.if.in[{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/PFSense by SNMP/net.if.speed[{#SNMPINDEX}])) and + last(/PFSense by SNMP/net.if.speed[{#SNMPINDEX}])>0 + recovery_mode: RECOVERY_EXPRESSION + recovery_expression: 'avg(/PFSense by SNMP/net.if.in[{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/PFSense by SNMP/net.if.speed[{#SNMPINDEX}])' + name: 'Interface [{#IFNAME}({#IFALIAS})]: High inbound bandwidth usage' + event_name: 'Interface [{#IFNAME}({#IFALIAS})]: High inbound bandwidth usage ( > {$IF.UTIL.MAX:"{#IFNAME}"}% )' + opdata: 'In: {ITEM.LASTVALUE1}, speed: {ITEM.LASTVALUE2}' + priority: WARNING + description: 'The utilization of the network interface is close to its estimated maximum bandwidth.' + dependencies: + - name: 'Interface [{#IFNAME}({#IFALIAS})]: Link down' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/PFSense by SNMP/net.if.status[{#SNMPINDEX}])=2)' + tags: + - tag: scope + value: performance + - uuid: 6be52ce31bab4250b421de1bfe84263c + expression: | + (avg(/PFSense by SNMP/net.if.out[{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/PFSense by SNMP/net.if.speed[{#SNMPINDEX}])) and + last(/PFSense by SNMP/net.if.speed[{#SNMPINDEX}])>0 + recovery_mode: RECOVERY_EXPRESSION + recovery_expression: 'avg(/PFSense by SNMP/net.if.out[{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/PFSense by SNMP/net.if.speed[{#SNMPINDEX}])' + name: 'Interface [{#IFNAME}({#IFALIAS})]: High outbound bandwidth usage' + event_name: 'Interface [{#IFNAME}({#IFALIAS})]: High outbound bandwidth usage ( > {$IF.UTIL.MAX:"{#IFNAME}"}% )' + opdata: 'Out: {ITEM.LASTVALUE1}, speed: {ITEM.LASTVALUE2}' + priority: WARNING + description: 'The utilization of the network interface is close to its estimated maximum bandwidth.' + dependencies: + - name: 'Interface [{#IFNAME}({#IFALIAS})]: Link down' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/PFSense by SNMP/net.if.status[{#SNMPINDEX}])=2)' + tags: + - tag: scope + value: performance + graph_prototypes: + - uuid: 4679de2da218418e9564f0cc5a13e31a + name: 'Interface [{#IFNAME}({#IFALIAS})]: Inbound packet filter traffic' + graph_items: + - color: 1A7C11 + item: + host: 'PFSense by SNMP' + key: 'net.if.in.pass.v4.bps[{#SNMPINDEX}]' + - sortorder: '1' + color: F63100 + item: + host: 'PFSense by SNMP' + key: 'net.if.in.block.v4.bps[{#SNMPINDEX}]' + - sortorder: '2' + color: 2774A4 + item: + host: 'PFSense by SNMP' + key: 'net.if.in.pass.v6.bps[{#SNMPINDEX}]' + - sortorder: '3' + color: A54F10 + item: + host: 'PFSense by SNMP' + key: 'net.if.in.block.v6.bps[{#SNMPINDEX}]' + - sortorder: '4' + color: 6C59DC + yaxisside: RIGHT + item: + host: 'PFSense by SNMP' + key: 'net.if.in.pass.v4.pps[{#SNMPINDEX}]' + - sortorder: '5' + color: FC6EA3 + yaxisside: RIGHT + item: + host: 'PFSense by SNMP' + key: 'net.if.in.block.v4.pps[{#SNMPINDEX}]' + - sortorder: '6' + color: AC8C14 + yaxisside: RIGHT + item: + host: 'PFSense by SNMP' + key: 'net.if.in.pass.v6.pps[{#SNMPINDEX}]' + - sortorder: '7' + color: 611F27 + yaxisside: RIGHT + item: + host: 'PFSense by SNMP' + key: 'net.if.in.block.v6.pps[{#SNMPINDEX}]' + - uuid: 3acc01b7ad11441ca2ea4dab13274efa + name: 'Interface [{#IFNAME}({#IFALIAS})]: Network traffic' + graph_items: + - drawtype: GRADIENT_LINE + color: 1A7C11 + item: + host: 'PFSense by SNMP' + key: 'net.if.in[{#SNMPINDEX}]' + - sortorder: '1' + drawtype: BOLD_LINE + color: 2774A4 + item: + host: 'PFSense by SNMP' + key: 'net.if.out[{#SNMPINDEX}]' + - sortorder: '2' + color: F63100 + yaxisside: RIGHT + item: + host: 'PFSense by SNMP' + key: 'net.if.out.errors[{#SNMPINDEX}]' + - sortorder: '3' + color: A54F10 + yaxisside: RIGHT + item: + host: 'PFSense by SNMP' + key: 'net.if.in.errors[{#SNMPINDEX}]' + - sortorder: '4' + color: FC6EA3 + yaxisside: RIGHT + item: + host: 'PFSense by SNMP' + key: 'net.if.out.discards[{#SNMPINDEX}]' + - sortorder: '5' + color: 6C59DC + yaxisside: RIGHT + item: + host: 'PFSense by SNMP' + key: 'net.if.in.discards[{#SNMPINDEX}]' + - uuid: 58b7aa7618274c9e9285d4c0b63c2ca8 + name: 'Interface [{#IFNAME}({#IFALIAS})]: Outbound packet filter traffic' + graph_items: + - color: 1A7C11 + item: + host: 'PFSense by SNMP' + key: 'net.if.out.pass.v4.bps[{#SNMPINDEX}]' + - sortorder: '1' + color: F63100 + item: + host: 'PFSense by SNMP' + key: 'net.if.out.block.v4.bps[{#SNMPINDEX}]' + - sortorder: '2' + color: 2774A4 + item: + host: 'PFSense by SNMP' + key: 'net.if.out.pass.v6.bps[{#SNMPINDEX}]' + - sortorder: '3' + color: A54F10 + item: + host: 'PFSense by SNMP' + key: 'net.if.out.block.v6.bps[{#SNMPINDEX}]' + - sortorder: '4' + color: 6C59DC + yaxisside: RIGHT + item: + host: 'PFSense by SNMP' + key: 'net.if.out.pass.v4.pps[{#SNMPINDEX}]' + - sortorder: '5' + color: FC6EA3 + yaxisside: RIGHT + item: + host: 'PFSense by SNMP' + key: 'net.if.out.block.v4.pps[{#SNMPINDEX}]' + - sortorder: '6' + color: AC8C14 + yaxisside: RIGHT + item: + host: 'PFSense by SNMP' + key: 'net.if.out.pass.v6.pps[{#SNMPINDEX}]' + - sortorder: '7' + color: 611F27 + yaxisside: RIGHT + item: + host: 'PFSense by SNMP' + key: 'net.if.out.block.v6.pps[{#SNMPINDEX}]' + tags: + - tag: class + value: software + - tag: target + value: pfsense + macros: + - macro: '{$IF.ERRORS.WARN}' + value: '2' + description: 'Threshold of error packets rate for warning trigger. Can be used with interface name as context.' + - macro: '{$IF.UTIL.MAX}' + value: '90' + description: 'Threshold of interface bandwidth utilization for warning trigger in %. Can be used with interface name as context.' + - macro: '{$IFCONTROL}' + value: '1' + description: 'Macro for operational state of the interface for link down trigger. Can be used with interface name as context.' + - macro: '{$NET.IF.IFADMINSTATUS.MATCHES}' + value: '^.*' + description: 'This macro is used in filters of network interfaces discovery rule.' + - macro: '{$NET.IF.IFADMINSTATUS.NOT_MATCHES}' + value: ^2$ + description: 'Ignore down(2) administrative status.' + - macro: '{$NET.IF.IFALIAS.MATCHES}' + value: '.*' + description: 'This macro is used in filters of network interfaces discovery rule.' + - macro: '{$NET.IF.IFALIAS.NOT_MATCHES}' + value: CHANGE_IF_NEEDED + description: 'This macro is used in filters of network interfaces discovery rule.' + - macro: '{$NET.IF.IFDESCR.MATCHES}' + value: '.*' + description: 'This macro is used in filters of network interfaces discovery rule.' + - macro: '{$NET.IF.IFDESCR.NOT_MATCHES}' + value: CHANGE_IF_NEEDED + description: 'This macro is used in filters of network interfaces discovery rule.' + - macro: '{$NET.IF.IFNAME.NOT_MATCHES}' + value: '(^pflog[0-9.]*$|^pfsync[0-9.]*$)' + description: 'This macro is used in filters of network interfaces discovery rule.' + - macro: '{$NET.IF.IFOPERSTATUS.MATCHES}' + value: '^.*$' + description: 'This macro is used in filters of network interfaces discovery rule.' + - macro: '{$NET.IF.IFOPERSTATUS.NOT_MATCHES}' + value: ^6$ + description: 'Ignore notPresent(6).' + - macro: '{$NET.IF.IFTYPE.MATCHES}' + value: '.*' + description: 'This macro is used in filters of network interfaces discovery rule.' + - macro: '{$NET.IF.IFTYPE.NOT_MATCHES}' + value: CHANGE_IF_NEEDED + description: 'This macro is used in filters of network interfaces discovery rule.' + - macro: '{$SNMP.TIMEOUT}' + value: 5m + description: 'The time interval for SNMP availability trigger.' + - macro: '{$SOURCE.TRACKING.TABLE.UTIL.MAX}' + value: '90' + description: 'Threshold of source tracking table utilization trigger in %.' + - macro: '{$STATE.TABLE.UTIL.MAX}' + value: '90' + description: 'Threshold of state table utilization trigger in %.' + dashboards: + - uuid: e12c87ecce2a4f568e4c68356d175793 + name: 'PFSense: Overview' + pages: + - name: 'Packet filter' + widgets: + - type: graph + width: '72' + height: '10' + fields: + - type: GRAPH + name: graphid.0 + value: + host: 'PFSense by SNMP' + name: 'PFSense: Packet filter reason codes' + - type: STRING + name: reference + value: AAAAA + - name: 'Network traffic' + widgets: + - type: graphprototype + width: '72' + height: '10' + fields: + - type: INTEGER + name: columns + value: '1' + - type: GRAPH_PROTOTYPE + name: graphid.0 + value: + host: 'PFSense by SNMP' + name: 'Interface [{#IFNAME}({#IFALIAS})]: Inbound packet filter traffic' + - type: STRING + name: reference + value: AAAAB + - type: graphprototype + 'y': '10' + width: '72' + height: '10' + fields: + - type: INTEGER + name: columns + value: '1' + - type: GRAPH_PROTOTYPE + name: graphid.0 + value: + host: 'PFSense by SNMP' + name: 'Interface [{#IFNAME}({#IFALIAS})]: Outbound packet filter traffic' + - type: STRING + name: reference + value: AAAAC + - type: graphprototype + 'y': '20' + width: '72' + height: '10' + fields: + - type: INTEGER + name: columns + value: '1' + - type: GRAPH_PROTOTYPE + name: graphid.0 + value: + host: 'PFSense by SNMP' + name: 'Interface [{#IFNAME}({#IFALIAS})]: Network traffic' + - type: STRING + name: reference + value: AAAAD + valuemaps: + - uuid: 2216d8afb349448394590770ff99e56a + name: 'IF-MIB::ifOperStatus' + mappings: + - value: '1' + newvalue: up + - value: '2' + newvalue: down + - value: '3' + newvalue: testing + - value: '4' + newvalue: unknown + - value: '5' + newvalue: dormant + - value: '6' + newvalue: notPresent + - value: '7' + newvalue: lowerLayerDown + - uuid: 3165b9b6c79e446f9d1029571518004e + name: 'IF-MIB::ifType' + mappings: + - value: '1' + newvalue: other + - value: '2' + newvalue: regular1822 + - value: '3' + newvalue: hdh1822 + - value: '4' + newvalue: ddnX25 + - value: '5' + newvalue: rfc877x25 + - value: '6' + newvalue: ethernetCsmacd + - value: '7' + newvalue: iso88023Csmacd + - value: '8' + newvalue: iso88024TokenBus + - value: '9' + newvalue: iso88025TokenRing + - value: '10' + newvalue: iso88026Man + - value: '11' + newvalue: starLan + - value: '12' + newvalue: proteon10Mbit + - value: '13' + newvalue: proteon80Mbit + - value: '14' + newvalue: hyperchannel + - value: '15' + newvalue: fddi + - value: '16' + newvalue: lapb + - value: '17' + newvalue: sdlc + - value: '18' + newvalue: ds1 + - value: '19' + newvalue: e1 + - value: '20' + newvalue: basicISDN + - value: '21' + newvalue: primaryISDN + - value: '22' + newvalue: propPointToPointSerial + - value: '23' + newvalue: ppp + - value: '24' + newvalue: softwareLoopback + - value: '25' + newvalue: eon + - value: '26' + newvalue: ethernet3Mbit + - value: '27' + newvalue: nsip + - value: '28' + newvalue: slip + - value: '29' + newvalue: ultra + - value: '30' + newvalue: ds3 + - value: '31' + newvalue: sip + - value: '32' + newvalue: frameRelay + - value: '33' + newvalue: rs232 + - value: '34' + newvalue: para + - value: '35' + newvalue: arcnet + - value: '36' + newvalue: arcnetPlus + - value: '37' + newvalue: atm + - value: '38' + newvalue: miox25 + - value: '39' + newvalue: sonet + - value: '40' + newvalue: x25ple + - value: '41' + newvalue: iso88022llc + - value: '42' + newvalue: localTalk + - value: '43' + newvalue: smdsDxi + - value: '44' + newvalue: frameRelayService + - value: '45' + newvalue: v35 + - value: '46' + newvalue: hssi + - value: '47' + newvalue: hippi + - value: '48' + newvalue: modem + - value: '49' + newvalue: aal5 + - value: '50' + newvalue: sonetPath + - value: '51' + newvalue: sonetVT + - value: '52' + newvalue: smdsIcip + - value: '53' + newvalue: propVirtual + - value: '54' + newvalue: propMultiplexor + - value: '55' + newvalue: ieee80212 + - value: '56' + newvalue: fibreChannel + - value: '57' + newvalue: hippiInterface + - value: '58' + newvalue: frameRelayInterconnect + - value: '59' + newvalue: aflane8023 + - value: '60' + newvalue: aflane8025 + - value: '61' + newvalue: cctEmul + - value: '62' + newvalue: fastEther + - value: '63' + newvalue: isdn + - value: '64' + newvalue: v11 + - value: '65' + newvalue: v36 + - value: '66' + newvalue: g703at64k + - value: '67' + newvalue: g703at2mb + - value: '68' + newvalue: qllc + - value: '69' + newvalue: fastEtherFX + - value: '70' + newvalue: channel + - value: '71' + newvalue: ieee80211 + - value: '72' + newvalue: ibm370parChan + - value: '73' + newvalue: escon + - value: '74' + newvalue: dlsw + - value: '75' + newvalue: isdns + - value: '76' + newvalue: isdnu + - value: '77' + newvalue: lapd + - value: '78' + newvalue: ipSwitch + - value: '79' + newvalue: rsrb + - value: '80' + newvalue: atmLogical + - value: '81' + newvalue: ds0 + - value: '82' + newvalue: ds0Bundle + - value: '83' + newvalue: bsc + - value: '84' + newvalue: async + - value: '85' + newvalue: cnr + - value: '86' + newvalue: iso88025Dtr + - value: '87' + newvalue: eplrs + - value: '88' + newvalue: arap + - value: '89' + newvalue: propCnls + - value: '90' + newvalue: hostPad + - value: '91' + newvalue: termPad + - value: '92' + newvalue: frameRelayMPI + - value: '93' + newvalue: x213 + - value: '94' + newvalue: adsl + - value: '95' + newvalue: radsl + - value: '96' + newvalue: sdsl + - value: '97' + newvalue: vdsl + - value: '98' + newvalue: iso88025CRFPInt + - value: '99' + newvalue: myrinet + - value: '100' + newvalue: voiceEM + - value: '101' + newvalue: voiceFXO + - value: '102' + newvalue: voiceFXS + - value: '103' + newvalue: voiceEncap + - value: '104' + newvalue: voiceOverIp + - value: '105' + newvalue: atmDxi + - value: '106' + newvalue: atmFuni + - value: '107' + newvalue: atmIma + - value: '108' + newvalue: pppMultilinkBundle + - value: '109' + newvalue: ipOverCdlc + - value: '110' + newvalue: ipOverClaw + - value: '111' + newvalue: stackToStack + - value: '112' + newvalue: virtualIpAddress + - value: '113' + newvalue: mpc + - value: '114' + newvalue: ipOverAtm + - value: '115' + newvalue: iso88025Fiber + - value: '116' + newvalue: tdlc + - value: '117' + newvalue: gigabitEthernet + - value: '118' + newvalue: hdlc + - value: '119' + newvalue: lapf + - value: '120' + newvalue: v37 + - value: '121' + newvalue: x25mlp + - value: '122' + newvalue: x25huntGroup + - value: '123' + newvalue: trasnpHdlc + - value: '124' + newvalue: interleave + - value: '125' + newvalue: fast + - value: '126' + newvalue: ip + - value: '127' + newvalue: docsCableMaclayer + - value: '128' + newvalue: docsCableDownstream + - value: '129' + newvalue: docsCableUpstream + - value: '130' + newvalue: a12MppSwitch + - value: '131' + newvalue: tunnel + - value: '132' + newvalue: coffee + - value: '133' + newvalue: ces + - value: '134' + newvalue: atmSubInterface + - value: '135' + newvalue: l2vlan + - value: '136' + newvalue: l3ipvlan + - value: '137' + newvalue: l3ipxvlan + - value: '138' + newvalue: digitalPowerline + - value: '139' + newvalue: mediaMailOverIp + - value: '140' + newvalue: dtm + - value: '141' + newvalue: dcn + - value: '142' + newvalue: ipForward + - value: '143' + newvalue: msdsl + - value: '144' + newvalue: ieee1394 + - value: '145' + newvalue: if-gsn + - value: '146' + newvalue: dvbRccMacLayer + - value: '147' + newvalue: dvbRccDownstream + - value: '148' + newvalue: dvbRccUpstream + - value: '149' + newvalue: atmVirtual + - value: '150' + newvalue: mplsTunnel + - value: '151' + newvalue: srp + - value: '152' + newvalue: voiceOverAtm + - value: '153' + newvalue: voiceOverFrameRelay + - value: '154' + newvalue: idsl + - value: '155' + newvalue: compositeLink + - value: '156' + newvalue: ss7SigLink + - value: '157' + newvalue: propWirelessP2P + - value: '158' + newvalue: frForward + - value: '159' + newvalue: rfc1483 + - value: '160' + newvalue: usb + - value: '161' + newvalue: ieee8023adLag + - value: '162' + newvalue: bgppolicyaccounting + - value: '163' + newvalue: frf16MfrBundle + - value: '164' + newvalue: h323Gatekeeper + - value: '165' + newvalue: h323Proxy + - value: '166' + newvalue: mpls + - value: '167' + newvalue: mfSigLink + - value: '168' + newvalue: hdsl2 + - value: '169' + newvalue: shdsl + - value: '170' + newvalue: ds1FDL + - value: '171' + newvalue: pos + - value: '172' + newvalue: dvbAsiIn + - value: '173' + newvalue: dvbAsiOut + - value: '174' + newvalue: plc + - value: '175' + newvalue: nfas + - value: '176' + newvalue: tr008 + - value: '177' + newvalue: gr303RDT + - value: '178' + newvalue: gr303IDT + - value: '179' + newvalue: isup + - value: '180' + newvalue: propDocsWirelessMaclayer + - value: '181' + newvalue: propDocsWirelessDownstream + - value: '182' + newvalue: propDocsWirelessUpstream + - value: '183' + newvalue: hiperlan2 + - value: '184' + newvalue: propBWAp2Mp + - value: '185' + newvalue: sonetOverheadChannel + - value: '186' + newvalue: digitalWrapperOverheadChannel + - value: '187' + newvalue: aal2 + - value: '188' + newvalue: radioMAC + - value: '189' + newvalue: atmRadio + - value: '190' + newvalue: imt + - value: '191' + newvalue: mvl + - value: '192' + newvalue: reachDSL + - value: '193' + newvalue: frDlciEndPt + - value: '194' + newvalue: atmVciEndPt + - value: '195' + newvalue: opticalChannel + - value: '196' + newvalue: opticalTransport + - value: '197' + newvalue: propAtm + - value: '198' + newvalue: voiceOverCable + - value: '199' + newvalue: infiniband + - value: '200' + newvalue: teLink + - value: '201' + newvalue: q2931 + - value: '202' + newvalue: virtualTg + - value: '203' + newvalue: sipTg + - value: '204' + newvalue: sipSig + - value: '205' + newvalue: docsCableUpstreamChannel + - value: '206' + newvalue: econet + - value: '207' + newvalue: pon155 + - value: '208' + newvalue: pon622 + - value: '209' + newvalue: bridge + - value: '210' + newvalue: linegroup + - value: '211' + newvalue: voiceEMFGD + - value: '212' + newvalue: voiceFGDEANA + - value: '213' + newvalue: voiceDID + - value: '214' + newvalue: mpegTransport + - value: '215' + newvalue: sixToFour + - value: '216' + newvalue: gtp + - value: '217' + newvalue: pdnEtherLoop1 + - value: '218' + newvalue: pdnEtherLoop2 + - value: '219' + newvalue: opticalChannelGroup + - value: '220' + newvalue: homepna + - value: '221' + newvalue: gfp + - value: '222' + newvalue: ciscoISLvlan + - value: '223' + newvalue: actelisMetaLOOP + - value: '224' + newvalue: fcipLink + - value: '225' + newvalue: rpr + - value: '226' + newvalue: qam + - value: '227' + newvalue: lmp + - value: '228' + newvalue: cblVectaStar + - value: '229' + newvalue: docsCableMCmtsDownstream + - value: '230' + newvalue: adsl2 + - value: '231' + newvalue: macSecControlledIF + - value: '232' + newvalue: macSecUncontrolledIF + - value: '233' + newvalue: aviciOpticalEther + - value: '234' + newvalue: atmbond + - value: '235' + newvalue: voiceFGDOS + - value: '236' + newvalue: mocaVersion1 + - value: '237' + newvalue: ieee80216WMAN + - value: '238' + newvalue: adsl2plus + - value: '239' + newvalue: dvbRcsMacLayer + - value: '240' + newvalue: dvbTdm + - value: '241' + newvalue: dvbRcsTdma + - value: '242' + newvalue: x86Laps + - value: '243' + newvalue: wwanPP + - value: '244' + newvalue: wwanPP2 + - value: '245' + newvalue: voiceEBS + - value: '246' + newvalue: ifPwType + - value: '247' + newvalue: ilan + - value: '248' + newvalue: pip + - value: '249' + newvalue: aluELP + - value: '250' + newvalue: gpon + - value: '251' + newvalue: vdsl2 + - value: '252' + newvalue: capwapDot11Profile + - value: '253' + newvalue: capwapDot11Bss + - value: '254' + newvalue: capwapWtpVirtualRadio + - value: '255' + newvalue: bits + - value: '256' + newvalue: docsCableUpstreamRfPort + - value: '257' + newvalue: cableDownstreamRfPort + - value: '258' + newvalue: vmwareVirtualNic + - value: '259' + newvalue: ieee802154 + - value: '260' + newvalue: otnOdu + - value: '261' + newvalue: otnOtu + - value: '262' + newvalue: ifVfiType + - value: '263' + newvalue: g9981 + - value: '264' + newvalue: g9982 + - value: '265' + newvalue: g9983 + - value: '266' + newvalue: aluEpon + - value: '267' + newvalue: aluEponOnu + - value: '268' + newvalue: aluEponPhysicalUni + - value: '269' + newvalue: aluEponLogicalLink + - value: '270' + newvalue: aluGponOnu + - value: '271' + newvalue: aluGponPhysicalUni + - value: '272' + newvalue: vmwareNicTeam + - value: '277' + newvalue: docsOfdmDownstream + - value: '278' + newvalue: docsOfdmaUpstream + - value: '279' + newvalue: gfast + - value: '280' + newvalue: sdci + - value: '281' + newvalue: xboxWireless + - value: '282' + newvalue: fastdsl + - value: '283' + newvalue: docsCableScte55d1FwdOob + - value: '284' + newvalue: docsCableScte55d1RetOob + - value: '285' + newvalue: docsCableScte55d2DsOob + - value: '286' + newvalue: docsCableScte55d2UsOob + - value: '287' + newvalue: docsCableNdf + - value: '288' + newvalue: docsCableNdr + - value: '289' + newvalue: ptm + - value: '290' + newvalue: ghn + - uuid: fc5652614ee94cd8b437b3058886e857 + name: 'Services status' + mappings: + - value: '0' + newvalue: 'not running' + - value: '2' + newvalue: running + - uuid: c3c721156c624317af993e1a263c16bc + name: 'Service state' + mappings: + - value: '0' + newvalue: Down + - value: '1' + newvalue: Up + - uuid: f6bb441b7a65446c96c546bd3f3140ee + name: 'SNMPv2-TC::TruthValue' + mappings: + - value: '1' + newvalue: 'true' + - value: '2' + newvalue: 'false' + - uuid: d553e33d8b104a5e89d88500e85fa5fc + name: zabbix.host.available + mappings: + - value: '0' + newvalue: 'not available' + - value: '1' + newvalue: available + - value: '2' + newvalue: unknown + graphs: + - uuid: cd45a63b52d7470db6b4574027433c8e + name: 'PFSense: Packet filter reason codes' + type: STACKED + ymin_type_1: FIXED + graph_items: + - color: 199C0D + item: + host: 'PFSense by SNMP' + key: pfsense.packets.match + - sortorder: '1' + color: F63100 + item: + host: 'PFSense by SNMP' + key: pfsense.packets.bad.offset + - sortorder: '2' + color: 00611C + item: + host: 'PFSense by SNMP' + key: pfsense.packets.fragment + - sortorder: '3' + color: F7941D + item: + host: 'PFSense by SNMP' + key: pfsense.packets.short + - sortorder: '4' + color: FC6EA3 + item: + host: 'PFSense by SNMP' + key: pfsense.packets.normalize + - sortorder: '5' + color: 6C59DC + item: + host: 'PFSense by SNMP' + key: pfsense.packets.mem.drop diff --git a/Overrides/PFSense_by_SNMP/7.0/README.md b/Overrides/PFSense_by_SNMP/7.0/README.md new file mode 100644 index 00000000..8c057935 --- /dev/null +++ b/Overrides/PFSense_by_SNMP/7.0/README.md @@ -0,0 +1,1199 @@ +# Zabbix Template: PFSense by SNMP + +![class: software](https://img.shields.io/badge/class-software-00c9bf) ![target: pfsense](https://img.shields.io/badge/target-pfsense-00c9bf) ![vendor: Zabbix](https://img.shields.io/badge/vendor-Zabbix-00c9bf) ![version: 7.0-0](https://img.shields.io/badge/version-7.0--0-00c9bf) + +Template for monitoring pfSense by SNMP +Setup: + 1. Enable SNMP daemon at Services in pfSense web interface https://docs.netgate.com/pfsense/en/latest/services/snmp.html + 2. Setup firewall rule to get access from Zabbix proxy or Zabbix server by SNMP https://docs.netgate.com/pfsense/en/latest/firewall/index.html#managing-firewall-rules + 3. Link template to the host + + +MIBs used: +BEGEMOT-PF-MIB +HOST-RESOURCES-MIB + +Generated by official Zabbix template tool "Templator" + +## Items + +### Item: DHCP server status + +![component: application](https://img.shields.io/badge/component-application-00c9bf) + +MIB: HOST-RESOURCES-MIB +The status of DHCP server process. + +```console +pfsense.dhcpd.status +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | +| History | 7d | + +### Item: DNS server status + +![component: application](https://img.shields.io/badge/component-application-00c9bf) + +MIB: HOST-RESOURCES-MIB +The status of DNS server process. + +```console +pfsense.dns.status +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | +| History | 7d | + +### Item: State of nginx process + +![component: application](https://img.shields.io/badge/component-application-00c9bf) + +MIB: HOST-RESOURCES-MIB +The status of nginx process. + +```console +pfsense.nginx.status +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | +| History | 7d | + +### Item: Packets with bad offset + +![component: network](https://img.shields.io/badge/component-network-00c9bf) + +MIB: BEGEMOT-PF-MIB +True if the packet was logged with the specified packet filter reason code. The known codes are: match, bad-offset, fragment, short, normalize, and memory. + +```console +pfsense.packets.bad.offset +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | +| Value type | FLOAT in pps | +| History | 7d | + +### Item: Fragmented packets + +![component: network](https://img.shields.io/badge/component-network-00c9bf) + +MIB: BEGEMOT-PF-MIB +True if the packet was logged with the specified packet filter reason code. The known codes are: match, bad-offset, fragment, short, normalize, and memory. + +```console +pfsense.packets.fragment +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | +| Value type | FLOAT in pps | +| History | 7d | + +### Item: Packets matched a filter rule + +![component: network](https://img.shields.io/badge/component-network-00c9bf) + +MIB: BEGEMOT-PF-MIB +True if the packet was logged with the specified packet filter reason code. The known codes are: match, bad-offset, fragment, short, normalize, and memory. + +```console +pfsense.packets.match +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | +| Value type | FLOAT in pps | +| History | 7d | + +### Item: Packets dropped due to memory limitation + +![component: network](https://img.shields.io/badge/component-network-00c9bf) + +MIB: BEGEMOT-PF-MIB +True if the packet was logged with the specified packet filter reason code. The known codes are: match, bad-offset, fragment, short, normalize, and memory. + +```console +pfsense.packets.mem.drop +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | +| Value type | FLOAT in pps | +| History | 7d | + +### Item: Normalized packets + +![component: network](https://img.shields.io/badge/component-network-00c9bf) + +MIB: BEGEMOT-PF-MIB +True if the packet was logged with the specified packet filter reason code. The known codes are: match, bad-offset, fragment, short, normalize, and memory. + +```console +pfsense.packets.normalize +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | +| Value type | FLOAT in pps | +| History | 7d | + +### Item: Short packets + +![component: network](https://img.shields.io/badge/component-network-00c9bf) + +MIB: BEGEMOT-PF-MIB +True if the packet was logged with the specified packet filter reason code. The known codes are: match, bad-offset, fragment, short, normalize, and memory. + +```console +pfsense.packets.short +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | +| Value type | FLOAT in pps | +| History | 7d | + +### Item: Packet filter running status + +![component: application](https://img.shields.io/badge/component-application-00c9bf) ![component: health](https://img.shields.io/badge/component-health-00c9bf) + +MIB: BEGEMOT-PF-MIB +True if packet filter is currently enabled. + +```console +pfsense.pf.status +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | +| History | 7d | + +### Item: Firewall rules count + +![component: firewall](https://img.shields.io/badge/component-firewall-00c9bf) + +MIB: BEGEMOT-PF-MIB +The number of labeled filter rules on this system. + +```console +pfsense.rules.count +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | +| History | 7d | + +### Item: Source tracking table current + +![component: network](https://img.shields.io/badge/component-network-00c9bf) + +MIB: BEGEMOT-PF-MIB +Number of entries in the source tracking table. + +```console +pfsense.source.tracking.table.count +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | +| History | 7d | + +### Item: Source tracking table limit + +![component: network](https://img.shields.io/badge/component-network-00c9bf) + +MIB: BEGEMOT-PF-MIB +Maximum number of 'sticky-address' or 'source-track' rules in the ruleset. + +```console +pfsense.source.tracking.table.limit +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | +| History | 7d | + +### Item: Source tracking table utilization in % + +![component: network](https://img.shields.io/badge/component-network-00c9bf) + +Utilization of source tracking table in %. + +```console +pfsense.source.tracking.table.pused +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | CALCULATED | +| Value type | FLOAT in % | +| History | 7d | + +### Item: States table current + +![component: network](https://img.shields.io/badge/component-network-00c9bf) + +MIB: BEGEMOT-PF-MIB +Number of entries in the state table. + +```console +pfsense.state.table.count +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | +| History | 7d | + +### Item: States table limit + +![component: network](https://img.shields.io/badge/component-network-00c9bf) + +MIB: BEGEMOT-PF-MIB +Maximum number of 'keep state' rules in the ruleset. + +```console +pfsense.state.table.limit +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | +| History | 7d | + +### Item: States table utilization in % + +![component: network](https://img.shields.io/badge/component-network-00c9bf) + +Utilization of state table in %. + +```console +pfsense.state.table.pused +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | CALCULATED | +| Value type | FLOAT in % | +| History | 7d | + +### Item: SNMP agent availability + +![component: health](https://img.shields.io/badge/component-health-00c9bf) ![component: network](https://img.shields.io/badge/component-network-00c9bf) + +Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list. +Possible values: +0 - not available +1 - available +2 - unknown + +```console +zabbix[host,snmp,available] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | INTERNAL | +| History | 7d | + +## Triggers + +### Trigger: DHCP server is not running + +![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf) + +Please check DHCP server settings https://docs.netgate.com/pfsense/en/latest/services/dhcp/index.html +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | AVERAGE | + +```console +last(/PFSense by SNMP/pfsense.dhcpd.status)=0 +``` + +### Trigger: DNS server is not running + +![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf) + +Please check DNS server settings https://docs.netgate.com/pfsense/en/latest/services/dns/index.html +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | AVERAGE | + +```console +last(/PFSense by SNMP/pfsense.dns.status)=0 +``` + +### Trigger: Web server is not running + +![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf) + +Please check nginx service status. +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | AVERAGE | + +```console +last(/PFSense by SNMP/pfsense.nginx.status)=0 +``` + +### Trigger: Packet filter is not running + +![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf) + +Please check PF status. +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | HIGH | + +```console +last(/PFSense by SNMP/pfsense.pf.status)<>1 +``` + +### Trigger: Source tracking table usage is high + +![scope: capacity](https://img.shields.io/badge/scope-capacity-00c9bf) + +Please check the number of sticky connections https://docs.netgate.com/pfsense/en/latest/monitoring/status/firewall-states-sources.html +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | WARNING | + +```console +min(/PFSense by SNMP/pfsense.source.tracking.table.pused,#3)>{$SOURCE.TRACKING.TABLE.UTIL.MAX} +``` + +### Trigger: State table usage is high + +![scope: capacity](https://img.shields.io/badge/scope-capacity-00c9bf) + +Please check the number of connections https://docs.netgate.com/pfsense/en/latest/config/advanced-firewall-nat.html#config-advanced-firewall-maxstates +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | WARNING | + +```console +min(/PFSense by SNMP/pfsense.state.table.pused,#3)>{$STATE.TABLE.UTIL.MAX} +``` + +### Trigger: No SNMP data collection + +![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf) + +SNMP is not available for polling. Please check device connectivity and SNMP settings. +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | WARNING | + +```console +max(/PFSense by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0 +``` + +## Discovery Rules + +### Discovery Rule: Network interfaces discovery + +Discovering interfaces from IF-MIB. + +```console +pfsense.net.if.discovery +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +#### Discovery Rule: Network interfaces discovery: Item Prototypes + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Inbound IPv4 traffic blocked + +![component: firewall](https://img.shields.io/badge/component-firewall-00c9bf) ![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: BEGEMOT-PF-MIB +IPv4 bits per second blocked coming in on this interface. + + +```console +net.if.in.block.v4.bps[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Inbound IPv4 packets blocked + +![component: firewall](https://img.shields.io/badge/component-firewall-00c9bf) ![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: BEGEMOT-PF-MIB +The number of IPv4 packets blocked coming in on this interface. + + +```console +net.if.in.block.v4.pps[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Inbound IPv6 traffic blocked + +![component: firewall](https://img.shields.io/badge/component-firewall-00c9bf) ![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: BEGEMOT-PF-MIB +IPv6 bits per second blocked coming in on this interface. + + +```console +net.if.in.block.v6.bps[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Inbound IPv6 packets blocked + +![component: firewall](https://img.shields.io/badge/component-firewall-00c9bf) ![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: BEGEMOT-PF-MIB +The number of IPv6 packets blocked coming in on this interface. + + +```console +net.if.in.block.v6.pps[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Inbound packets discarded + +![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: IF-MIB +The number of inbound packets which were chosen to be discarded +even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. +One possible reason for discarding such a packet could be to free up buffer space. +Discontinuities in the value of this counter can occur at re-initialization of the management system, +and at other times as indicated by the value of ifCounterDiscontinuityTime. + + +```console +net.if.in.discards[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Inbound packets with errors + +![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: IF-MIB +For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. + + +```console +net.if.in.errors[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Inbound IPv4 traffic passed + +![component: firewall](https://img.shields.io/badge/component-firewall-00c9bf) ![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: BEGEMOT-PF-MIB +IPv4 bits per second passed coming in on this interface. + + +```console +net.if.in.pass.v4.bps[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Inbound IPv4 packets passed + +![component: firewall](https://img.shields.io/badge/component-firewall-00c9bf) ![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: BEGEMOT-PF-MIB +The number of IPv4 packets passed coming in on this interface. + + +```console +net.if.in.pass.v4.pps[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Inbound IPv6 traffic passed + +![component: firewall](https://img.shields.io/badge/component-firewall-00c9bf) ![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: BEGEMOT-PF-MIB +IPv6 bits per second passed coming in on this interface. + + +```console +net.if.in.pass.v6.bps[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Inbound IPv6 packets passed + +![component: firewall](https://img.shields.io/badge/component-firewall-00c9bf) ![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: BEGEMOT-PF-MIB +The number of IPv6 packets passed coming in on this interface. + + +```console +net.if.in.pass.v6.pps[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Bits received + +![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: IF-MIB +The total number of octets received on the interface, including framing characters. This object is a 64-bit version of ifInOctets. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. + + +```console +net.if.in[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Outbound IPv4 traffic blocked + +![component: firewall](https://img.shields.io/badge/component-firewall-00c9bf) ![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: BEGEMOT-PF-MIB +IPv4 bits per second blocked going out on this interface. + + +```console +net.if.out.block.v4.bps[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Outbound IPv4 packets blocked + +![component: firewall](https://img.shields.io/badge/component-firewall-00c9bf) ![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: BEGEMOT-PF-MIB +The number of IPv4 packets blocked going out on this interface. + + +```console +net.if.out.block.v4.pps[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Outbound IPv6 traffic blocked + +![component: firewall](https://img.shields.io/badge/component-firewall-00c9bf) ![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: BEGEMOT-PF-MIB +IPv6 bits per second blocked going out on this interface. + + +```console +net.if.out.block.v6.bps[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Outbound IPv6 packets blocked + +![component: firewall](https://img.shields.io/badge/component-firewall-00c9bf) ![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: BEGEMOT-PF-MIB +The number of IPv6 packets blocked going out on this interface. + + +```console +net.if.out.block.v6.pps[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Outbound packets discarded + +![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: IF-MIB +The number of outbound packets which were chosen to be discarded +even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. +One possible reason for discarding such a packet could be to free up buffer space. +Discontinuities in the value of this counter can occur at re-initialization of the management system, +and at other times as indicated by the value of ifCounterDiscontinuityTime. + + +```console +net.if.out.discards[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Outbound packets with errors + +![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: IF-MIB +For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. + + +```console +net.if.out.errors[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Outbound IPv4 traffic passed + +![component: firewall](https://img.shields.io/badge/component-firewall-00c9bf) ![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: BEGEMOT-PF-MIB +IPv4 bits per second passed going out on this interface. + + +```console +net.if.out.pass.v4.bps[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Outbound IPv4 packets passed + +![component: firewall](https://img.shields.io/badge/component-firewall-00c9bf) ![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: BEGEMOT-PF-MIB +The number of IPv4 packets passed going out on this interface. + + +```console +net.if.out.pass.v4.pps[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Outbound IPv6 traffic passed + +![component: firewall](https://img.shields.io/badge/component-firewall-00c9bf) ![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: BEGEMOT-PF-MIB +IPv6 bits per second passed going out on this interface. + + +```console +net.if.out.pass.v6.bps[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Outbound IPv6 packets passed + +![component: firewall](https://img.shields.io/badge/component-firewall-00c9bf) ![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: BEGEMOT-PF-MIB +The number of IPv6 packets passed going out on this interface. + + +```console +net.if.out.pass.v6.pps[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Bits sent + +![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: IF-MIB +The total number of octets transmitted out of the interface, including framing characters. This object is a 64-bit version of ifOutOctets.Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. + + +```console +net.if.out[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Rules references count + +![component: firewall](https://img.shields.io/badge/component-firewall-00c9bf) ![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: BEGEMOT-PF-MIB +The number of rules referencing this interface. + + +```console +net.if.rules.refs[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Speed + +![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: IF-MIB +An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of `n' then the speed of the interface is somewhere in the range of `n-500,000' to`n+499,999'. For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. For a sub-layer which has no concept of bandwidth, this object should be zero. + + +```console +net.if.speed[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Operational status + +![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: IF-MIB +The current operational state of the interface. +- The testing(3) state indicates that no operational packet scan be passed +- If ifAdminStatus is down(2) then ifOperStatus should be down(2) +- If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic +- It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection) +- It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state +- It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components. + + +```console +net.if.status[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +##### Discovery Rule: Network interfaces discovery: Item Prototype: Interface [{#IFNAME}({#IFALIAS})]: Interface type + +![component: network](https://img.shields.io/badge/component-network-00c9bf) ![description: {#IFALIAS}](https://img.shields.io/badge/description-{#IFALIAS}-00c9bf) ![interface: {#IFNAME}](https://img.shields.io/badge/interface-{#IFNAME}-00c9bf) + +MIB: IF-MIB +The type of interface. +Additional values for ifType are assigned by the Internet Assigned Numbers Authority (IANA), +through updating the syntax of the IANAifType textual convention. + + +```console +net.if.type[{#SNMPINDEX}] +``` + +Settings: + +| Item Setting | Value | +| ------------ | ----- | +| Type | SNMP_AGENT | + +#### Discovery Rule: Network interfaces discovery: Discovery Triggers + +##### Discovery Rule: Network interfaces discovery: Trigger Prototype: Interface [{#IFNAME}({#IFALIAS})]: High input error rate + +![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf) + +It recovers when it is below 80% of the `{$IF.ERRORS.WARN:"{#IFNAME}"}` threshold. +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | WARNING | + +```console +min(/PFSense by SNMP/net.if.in.errors[{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} +``` + +##### Discovery Rule: Network interfaces discovery: Trigger Prototype: Interface [{#IFNAME}({#IFALIAS})]: High output error rate + +![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf) + +It recovers when it is below 80% of the `{$IF.ERRORS.WARN:"{#IFNAME}"}` threshold. +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | WARNING | + +```console +min(/PFSense by SNMP/net.if.out.errors[{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} +``` + +##### Discovery Rule: Network interfaces discovery: Trigger Prototype: Interface [{#IFNAME}({#IFALIAS})]: Link down + +![scope: availability](https://img.shields.io/badge/scope-availability-00c9bf) + +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 context macro to value - 0. That marks this interface as not important. No new trigger will be fired if this interface is down. + +Settings: + +| Trigger Setting | Values | +| --------------- | ------ | +| Priority | AVERAGE | + +```console +{$IFCONTROL:"{#IFNAME}"}=1 and (last(/PFSense by SNMP/net.if.status[{#SNMPINDEX}])=2) +``` + +#### Discovery Rule: Network interfaces discovery: Graph Prototypes + +The following graph prototypes are defined by this Template + +* Interface [{#IFNAME}({#IFALIAS})]: Inbound packet filter traffic +* Interface [{#IFNAME}({#IFALIAS})]: Network traffic +* Interface [{#IFNAME}({#IFALIAS})]: Outbound packet filter traffic + + +## Macros + +The following Zabbix macros are configured via this template. + +### Macro: `{$IF.ERRORS.WARN}` + +Threshold of error packets rate for warning trigger. Can be used with interface name as context. + +Default: + +```console +2 +``` + +### Macro: `{$IF.UTIL.MAX}` + +Threshold of interface bandwidth utilization for warning trigger in %. Can be used with interface name as context. + +Default: + +```console +90 +``` + +### Macro: `{$IFCONTROL}` + +Macro for operational state of the interface for link down trigger. Can be used with interface name as context. + +Default: + +```console +1 +``` + +### Macro: `{$NET.IF.IFADMINSTATUS.MATCHES}` + +This macro is used in filters of network interfaces discovery rule. + +Default: + +```console +^.* +``` + +### Macro: `{$NET.IF.IFADMINSTATUS.NOT_MATCHES}` + +Ignore down(2) administrative status. + +Default: + +```console +^2$ +``` + +### Macro: `{$NET.IF.IFALIAS.MATCHES}` + +This macro is used in filters of network interfaces discovery rule. + +Default: + +```console +.* +``` + +### Macro: `{$NET.IF.IFALIAS.NOT_MATCHES}` + +This macro is used in filters of network interfaces discovery rule. + +Default: + +```console +CHANGE_IF_NEEDED +``` + +### Macro: `{$NET.IF.IFDESCR.MATCHES}` + +This macro is used in filters of network interfaces discovery rule. + +Default: + +```console +.* +``` + +### Macro: `{$NET.IF.IFDESCR.NOT_MATCHES}` + +This macro is used in filters of network interfaces discovery rule. + +Default: + +```console +CHANGE_IF_NEEDED +``` + +### Macro: `{$NET.IF.IFNAME.NOT_MATCHES}` + +This macro is used in filters of network interfaces discovery rule. + +Default: + +```console +(^pflog[0-9.]*$|^pfsync[0-9.]*$) +``` + +### Macro: `{$NET.IF.IFOPERSTATUS.MATCHES}` + +This macro is used in filters of network interfaces discovery rule. + +Default: + +```console +^.*$ +``` + +### Macro: `{$NET.IF.IFOPERSTATUS.NOT_MATCHES}` + +Ignore notPresent(6). + +Default: + +```console +^6$ +``` + +### Macro: `{$NET.IF.IFTYPE.MATCHES}` + +This macro is used in filters of network interfaces discovery rule. + +Default: + +```console +.* +``` + +### Macro: `{$NET.IF.IFTYPE.NOT_MATCHES}` + +This macro is used in filters of network interfaces discovery rule. + +Default: + +```console +CHANGE_IF_NEEDED +``` + +### Macro: `{$SNMP.TIMEOUT}` + +The time interval for SNMP availability trigger. + +Default: + +```console +5m +``` + +### Macro: `{$SOURCE.TRACKING.TABLE.UTIL.MAX}` + +Threshold of source tracking table utilization trigger in %. + +Default: + +```console +90 +``` + +### Macro: `{$STATE.TABLE.UTIL.MAX}` + +Threshold of state table utilization trigger in %. + +Default: + +```console +90 +``` + +## Dashboards + +The following Zabbix dashboards are included in this template. + +* PFSense: Overview diff --git a/Overrides/PFSense_by_SNMP/7.0/docs/gen_ref_pages.py b/Overrides/PFSense_by_SNMP/7.0/docs/gen_ref_pages.py new file mode 100644 index 00000000..bd02be1b --- /dev/null +++ b/Overrides/PFSense_by_SNMP/7.0/docs/gen_ref_pages.py @@ -0,0 +1,6 @@ +from pathlib import Path + +import mkdocs_gen_files + +with mkdocs_gen_files.open("index.md", "w", encoding="utf-8") as index: + index.writelines(Path("README.md").open("r").read()) diff --git a/Overrides/PFSense_by_SNMP/7.0/mkdocs.yaml b/Overrides/PFSense_by_SNMP/7.0/mkdocs.yaml new file mode 100644 index 00000000..98b15dbc --- /dev/null +++ b/Overrides/PFSense_by_SNMP/7.0/mkdocs.yaml @@ -0,0 +1,17 @@ +site_name: "Zabbix Template: PFSense by SNMP" +repo_url: https://github.com/radiorabe/rabe-zabbix +repo_name: radiorabe/rabe-zabbix +markdown_extensions: + - pymdownx.highlight: + anchor_linenums: true + - pymdownx.inlinehilite + - pymdownx.snippets + - pymdownx.superfences +plugins: + - search + - gen-files: + scripts: + - docs/gen_ref_pages.py + - literate-nav +nav: + - README: index.md diff --git a/README.md b/README.md index 5d775c14..26582ca4 100644 --- a/README.md +++ b/README.md @@ -148,7 +148,10 @@ In some cases we override the Zabbix out-of-the-box templates to ensure they fit our use case. We publish the changed templates along with a generated diff against its upstream version. -Currently, there are no such changes! +| Name | 6.4 | 7.0 | +| ---- | --- | --- | +| Linux by Zabbix agent | | [✅](./Overrides/Linux_by_Zabbix_agent/7.0) | +| PFSense by SNMP | | [✅](./Overrides/PFSense_by_SNMP/7.0) | ## Zabbix Version Support diff --git a/catalog-info.yaml b/catalog-info.yaml index 3b775451..43c3ede5 100644 --- a/catalog-info.yaml +++ b/catalog-info.yaml @@ -32,6 +32,76 @@ spec: owner: it-reaktion system: rabe-zabbix --- +# Overrides/Linux_by_Zabbix_agent/7.0/Linux_by_Zabbix_agent.yaml +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: zabbix-template-Linux_by_Zabbix_agent + title: "Zabbix Template: Linux by Zabbix agent" + description: | + This is an official Linux template. It requires Zabbix agent 7.0 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" + + annotations: + backstage.io/techdocs-ref: dir:./Overrides/Linux_by_Zabbix_agent/7.0 + github.com/project-slug: radiorabe/rabe-zabbix + links: + - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Overrides/Linux_by_Zabbix_agent/7.0 + title: GitHub + icon: github + tags: [os, linux] +spec: + type: zabbix-template + lifecycle: experimental + owner: it-reaktion + system: rabe-zabbix + subcomponentOf: rabe-zabbix-templates +--- +# Overrides/PFSense_by_SNMP/7.0/PFSense_by_SNMP.yaml +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: zabbix-template-PFSense_by_SNMP + title: "Zabbix Template: PFSense by SNMP" + description: | + Template for monitoring pfSense by SNMP + Setup: + 1. Enable SNMP daemon at Services in pfSense web interface https://docs.netgate.com/pfsense/en/latest/services/snmp.html + 2. Setup firewall rule to get access from Zabbix proxy or Zabbix server by SNMP https://docs.netgate.com/pfsense/en/latest/firewall/index.html#managing-firewall-rules + 3. Link template to the host + + + MIBs used: + BEGEMOT-PF-MIB + HOST-RESOURCES-MIB + + Generated by official Zabbix template tool "Templator" + + annotations: + backstage.io/techdocs-ref: dir:./Overrides/PFSense_by_SNMP/7.0 + github.com/project-slug: radiorabe/rabe-zabbix + links: + - url: https://github.com/radiorabe/rabe-zabbix/tree/develop/Overrides/PFSense_by_SNMP/7.0 + title: GitHub + icon: github + tags: [software, pfsense] +spec: + type: zabbix-template + lifecycle: experimental + owner: it-reaktion + system: rabe-zabbix + subcomponentOf: rabe-zabbix-templates +--- # Stacks/Applications/Apache_with_TLS_by_HTTP_Stack/7.0/Apache_with_TLS_by_HTTP_Stack.yaml apiVersion: backstage.io/v1alpha1 kind: Component diff --git a/hack/plays/manage.yml b/hack/plays/manage.yml index f2a2b5c3..d30052f6 100644 --- a/hack/plays/manage.yml +++ b/hack/plays/manage.yml @@ -36,7 +36,11 @@ - template_name: "timedatectl" - template_name: "tuned" - template_name: "Zabbix unsupported items" - upstream_templates: [] # nothing needed, currently + upstream_templates: + - template_name: "Linux by Zabbix agent" + upstream: "os/linux/template_os_linux.yaml" + - template_name: "PFSense by SNMP" + upstream: "app/pfsense_snmp/template_app_pfsense_snmp.yaml" __: # items below are "commented" :) - template_name: "Apache by HTTP" upstream: "app/apache_http/template_app_apache_http.yaml" @@ -444,7 +448,7 @@ {% for tag in tpl.tags %}![{{ tag.tag }}: {{ tag.value }}](https://img.shields.io/badge/{{ tag.tag }}-{{ tag.value }}-00c9bf){% if not loop.last %} {% endif %}{% endfor %}{% if 'vendor' in tpl %} ![vendor: {{ tpl.vendor.name }}](https://img.shields.io/badge/vendor-{{ tpl.vendor.name }}-00c9bf) ![version: {{ tpl.vendor.version }}](https://img.shields.io/badge/version-{{ tpl.vendor.version | replace("-", "--") }}-00c9bf){% endif %} - {{ tpl.description | trim }} + {{ (tpl.description | trim) if 'description' in tpl }} {% if 'templates' in tpl %} ## Linked Templates @@ -542,7 +546,7 @@ ### Discovery Rule: {{ rule.name }} - {{ rule.description }} + {{ (rule.description) if 'description' in rule }} ```console {{ rule.key }}