# FreeBSD by Zabbix agent ## Overview Official FreeBSD template. Requires agent of Zabbix 7.0 and newer. ## Requirements Zabbix version: 7.0 and higher. ## Tested versions This template has been tested on: - FreeBSD ## Configuration > Zabbix should be configured according to the instructions in the [Templates out of the box](https://www.zabbix.com/documentation/7.0/manual/config/templates_out_of_the_box) section. ## Setup Install Zabbix agent on FreeBSD according to Zabbix documentation. ### Macros used |Name|Description|Default| |----|-----------|-------| |{$AGENT.TIMEOUT}|

The timeout after which the agent is considered unavailable. It works only for the agents reachable from Zabbix server/proxy (in passive mode).

|`3m`| ### Items |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |FreeBSD: Maximum number of opened files|

It could be increased by using the sysctl utility or modifying the file /etc/sysctl.conf.

|Zabbix agent|kernel.maxfiles| |FreeBSD: Maximum number of processes|

It could be increased by using the sysctl utility or modifying the file /etc/sysctl.conf.

|Zabbix agent|kernel.maxproc| |FreeBSD: Number of running processes|

The number of processes in a running state.

|Zabbix agent|proc.num[,,run]| |FreeBSD: Number of processes|

The total number of processes in any state.

|Zabbix agent|proc.num[]| |FreeBSD: Host boot time||Zabbix agent|system.boottime| |FreeBSD: Interrupts per second||Zabbix agent|system.cpu.intr

**Preprocessing**

| |FreeBSD: Processor load (1 min average per core)|

The processor load is calculated as the system CPU load divided by the number of CPU cores.

|Zabbix agent|system.cpu.load[percpu,avg1]| |FreeBSD: Processor load (5 min average per core)|

The processor load is calculated as the system CPU load divided by the number of CPU cores.

|Zabbix agent|system.cpu.load[percpu,avg5]| |FreeBSD: Processor load (15 min average per core)|

The processor load is calculated as the system CPU load divided by the number of CPU cores.

|Zabbix agent|system.cpu.load[percpu,avg15]| |FreeBSD: Context switches per second||Zabbix agent|system.cpu.switches

**Preprocessing**

| |FreeBSD: CPU idle time|

The time the CPU has spent doing nothing.

|Zabbix agent|system.cpu.util[,idle]| |FreeBSD: CPU interrupt time|

The amount of time the CPU has been servicing hardware interrupts.

|Zabbix agent|system.cpu.util[,interrupt]| |FreeBSD: CPU nice time|

The time the CPU has spent running users' processes that have been niced.

|Zabbix agent|system.cpu.util[,nice]| |FreeBSD: CPU system time|

The time the CPU has spent running the kernel and its processes.

|Zabbix agent|system.cpu.util[,system]| |FreeBSD: CPU user time|

The time the CPU has spent running users' processes that are not niced.

|Zabbix agent|system.cpu.util[,user]| |FreeBSD: Host name|

A host name of the system.

|Zabbix agent|system.hostname

**Preprocessing**

| |FreeBSD: Host local time||Zabbix agent|system.localtime| |FreeBSD: Free swap space||Zabbix agent|system.swap.size[,free]| |FreeBSD: Free swap space in %||Zabbix agent|system.swap.size[,pfree]| |FreeBSD: Total swap space||Zabbix agent|system.swap.size[,total]| |FreeBSD: System information|

The information as normally returned by the 'uname -a'.

|Zabbix agent|system.uname

**Preprocessing**

| |FreeBSD: System uptime||Zabbix agent|system.uptime| |FreeBSD: Number of logged in users|

The number of users who are currently logged in.

|Zabbix agent|system.users.num| |FreeBSD: Checksum of /etc/passwd||Zabbix agent|vfs.file.cksum[/etc/passwd,sha256]

**Preprocessing**

| |FreeBSD: Available memory|

The available memory is defined as free+cached+buffers memory.

|Zabbix agent|vm.memory.size[available]| |FreeBSD: Total memory||Zabbix agent|vm.memory.size[total]| |FreeBSD: Version of Zabbix agent running||Zabbix agent|agent.version

**Preprocessing**

| |FreeBSD: Host name of Zabbix agent running||Zabbix agent|agent.hostname

**Preprocessing**

| |FreeBSD: Zabbix agent ping|

The agent always returns 1 for this item. It could be used in combination with nodata() for the availability check.

|Zabbix agent|agent.ping| |FreeBSD: Zabbix agent availability|

Monitoring the availability status of the agent.

|Zabbix internal|zabbix[host,agent,available]| |FreeBSD: Get filesystems|

The `vfs.fs.get` key acquires raw information set about the file systems. Later to be extracted by preprocessing in dependent items.

|Zabbix agent|vfs.fs.get| ### Triggers |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----------|--------|--------------------------------| |FreeBSD: Configured max number of opened files is too low on {HOST.NAME}||`last(/FreeBSD by Zabbix agent/kernel.maxfiles)<1024`|Info|| |FreeBSD: Configured max number of processes is too low on {HOST.NAME}||`last(/FreeBSD by Zabbix agent/kernel.maxproc)<256`|Info|| |FreeBSD: Too many processes running on {HOST.NAME}||`avg(/FreeBSD by Zabbix agent/proc.num[,,run],5m)>30`|Warning|| |FreeBSD: Too many processes on {HOST.NAME}||`avg(/FreeBSD by Zabbix agent/proc.num[],5m)>300`|Warning|| |FreeBSD: Processor load is too high on {HOST.NAME}||`avg(/FreeBSD by Zabbix agent/system.cpu.load[percpu,avg1],5m)>5`|Warning|| |FreeBSD: Hostname was changed on {HOST.NAME}||`last(/FreeBSD by Zabbix agent/system.hostname,#1)<>last(/FreeBSD by Zabbix agent/system.hostname,#2)`|Info|| |FreeBSD: Lack of free swap space on {HOST.NAME}|

It probably means that the systems requires more physical memory.

|`last(/FreeBSD by Zabbix agent/system.swap.size[,pfree])<50`|Warning|| |FreeBSD: Host information was changed on {HOST.NAME}||`last(/FreeBSD by Zabbix agent/system.uname,#1)<>last(/FreeBSD by Zabbix agent/system.uname,#2)`|Info|| |FreeBSD: {HOST.NAME} has just been restarted||`change(/FreeBSD by Zabbix agent/system.uptime)<0`|Info|| |FreeBSD: /etc/passwd has been changed on {HOST.NAME}||`last(/FreeBSD by Zabbix agent/vfs.file.cksum[/etc/passwd,sha256],#1)<>last(/FreeBSD by Zabbix agent/vfs.file.cksum[/etc/passwd,sha256],#2)`|Warning|| |FreeBSD: Lack of available memory on server {HOST.NAME}||`last(/FreeBSD by Zabbix agent/vm.memory.size[available])<20M`|Average|| |FreeBSD: Zabbix agent is not available|

For passive checks only the availability of the agents and a host is used with {$AGENT.TIMEOUT} as the time threshold.

|`max(/FreeBSD by Zabbix agent/zabbix[host,agent,available],{$AGENT.TIMEOUT})=0`|Average|**Manual close**: Yes| ### LLD rule Network interface discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Network interface discovery|

The discovery of network interfaces as defined in the global regular expression "Network interfaces for discovery".

|Zabbix agent|net.if.discovery| ### Item prototypes for Network interface discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Interface {#IFNAME}: Incoming network traffic||Zabbix agent|net.if.in[{#IFNAME}]

**Preprocessing**

| |Interface {#IFNAME}: Outgoing network traffic||Zabbix agent|net.if.out[{#IFNAME}]

**Preprocessing**

| ### LLD rule Mounted filesystem discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Mounted filesystem discovery|

The discovery of different types of file systems as defined in the global regular expression "File systems for discovery".

|Dependent item|vfs.fs.dependent.discovery| ### Item prototypes for Mounted filesystem discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |{#FSNAME}: Get filesystem data||Dependent item|vfs.fs.dependent[{#FSNAME},data]

**Preprocessing**

| |{#FSNAME}: Filesystem is read-only|

The filesystem is mounted as read-only. It is available only for Zabbix agents 6.4 and higher.

|Dependent item|vfs.fs.dependent[{#FSNAME},readonly]

**Preprocessing**

| |{#FSNAME}: Free inodes, %||Dependent item|vfs.fs.dependent.inode[{#FSNAME},pfree]

**Preprocessing**

| |{#FSNAME}: Free disk space||Dependent item|vfs.fs.dependent.size[{#FSNAME},free]

**Preprocessing**

| |{#FSNAME}: Free disk space, %||Dependent item|vfs.fs.dependent.size[{#FSNAME},pfree]

**Preprocessing**

| |{#FSNAME}: Total disk space||Dependent item|vfs.fs.dependent.size[{#FSNAME},total]

**Preprocessing**

| |{#FSNAME}: Used disk space||Dependent item|vfs.fs.dependent.size[{#FSNAME},used]

**Preprocessing**

| ### Trigger prototypes for Mounted filesystem discovery |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----------|--------|--------------------------------| |{#FSNAME}: Filesystem has become read-only|

The filesystem has become read-only. A possible reason is an I/O error. It is available only for Zabbix agents 6.4 and higher.

|`last(/FreeBSD by Zabbix agent/vfs.fs.dependent[{#FSNAME},readonly],#2)=0 and last(/FreeBSD by Zabbix agent/vfs.fs.dependent[{#FSNAME},readonly])=1`|Average|**Manual close**: Yes| |{#FSNAME}: Free inodes is less than 20%||`last(/FreeBSD by Zabbix agent/vfs.fs.dependent.inode[{#FSNAME},pfree])<20`|Warning|| |{#FSNAME}: Free disk space is less than 20%||`last(/FreeBSD by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pfree])<20`|Warning|| ## Feedback Please report any issues with the template at [`https://support.zabbix.com`](https://support.zabbix.com) You can also provide feedback, discuss the template, or ask for help at [`ZABBIX forums`](https://www.zabbix.com/forum/zabbix-suggestions-and-feedback)