# 1 Zabbix agent

#### Overview

These checks use the communication with Zabbix agent for data gathering.

There are [passive and active](/manual/appendix/items/activepassive)
agent checks. When configuring an item, you can select the required
type:

-   *Zabbix agent* - for passive checks
-   *Zabbix agent (active)* - for active checks

#### Supported item keys

The table provides details on the item keys that you can use with Zabbix
agent items.

See also:

-   [Items supported by
    platform](/manual/appendix/items/supported_by_platform)
-   [Item keys specific for Windows
    agent](/manual/config/items/itemtypes/zabbix_agent/win_keys)

\*\* Mandatory and optional parameters \*\*

Parameters without angle brackets are mandatory. Parameters marked with
angle brackets **<** **>** are optional.

|Key|<|<|<|<|
|---|-|-|-|-|
|<|**Description**|**Return value**|**Parameters**|**Comments**|
|agent.hostname|<|<|<|<|
|<|Agent host name.|String|<|Returns the actual value of the agent hostname from a configuration file.|
|agent.ping|<|<|<|<|
|<|Agent availability check.|Nothing - unavailable<br><br>1 - available|<|Use the **nodata()** trigger function to check for host unavailability.|
|agent.version|<|<|<|<|
|<|Version of Zabbix agent.|String|<|Example of returned value:<br>1.8.2|
|kernel.maxfiles|<|<|<|<|
|<|Maximum number of opened files supported by OS.|Integer|<|<|
|kernel.maxproc|<|<|<|<|
|<|Maximum number of processes supported by OS.|Integer|<|<|
|log\[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>\]|<|<|<|<|
|<|Log file monitoring.|Log|**file** - full path and name of log file<br>**regexp** - regular expression describing the required pattern<br>**encoding** - code page [identifier](/manual/config/items/itemtypes/zabbix_agent#available_encodings)<br>**maxlines** - maximum number of new lines per second the agent will send to Zabbix server or proxy. This parameter overrides the value of 'MaxLinesPerSecond' in [zabbix\_agentd.conf](/manual/appendix/config/zabbix_agentd)<br>**mode** - possible values:<br>*all* (default), *skip* - skip processing of older data (affects only newly created items that have not returned any data yet).<br>**output** - an optional output formatting template. The **\\0** escape sequence is replaced with the matched text while an **\\N** (where N=1...9) escape sequence is replaced with Nth matched group (or an empty string if the N exceeds the number of captured groups).|The item must be configured as an [active check](/manual/appendix/items/activepassive#active_checks).<br>If file is missing or permissions do not allow access, item turns unsupported.<br><br>If `output` is left empty - the whole line containing the matched text is returned. Note that all global regular expression types except 'Result is TRUE' always return the whole matched line and the `output` parameter is ignored.<br><br>Content extraction using the `output` parameter takes place on the agent.<br><br>Examples:<br>=> log\[/var/log/syslog\]<br>=> log\[/var/log/syslog,error\]<br>=> log\[/home/zabbix/logs/logfile,,,100\]<br><br>The `output` parameter is supported since Zabbix 2.2.<br>The `mode` parameter is supported since Zabbix 2.0.<br><br>See also additional information on [log monitoring](log_items).|
|logrt\[file\_regexp,<regexp>,<encoding>,<maxlines>,<mode>,<output>\]|<|<|<|<|
|<|Log file monitoring with log rotation support.|Log|**file\_regexp** - absolute path to file and regexp describing the file name pattern<br>**regexp** - regular expression describing the required content pattern<br>**encoding** - code page [identifier](/manual/config/items/itemtypes/zabbix_agent#available_encodings)<br>**maxlines** - maximum number of new lines per second the agent will send to Zabbix server or proxy. This parameter overrides the value of 'MaxLinesPerSecond' in [zabbix\_agentd.conf](/manual/appendix/config/zabbix_agentd)<br>**mode** - possible values:<br>*all* (default), *skip* - skip processing of older data (affects only newly created items that have not returned any data yet).<br>**output** - an optional output formatting template. The **\\0** escape sequence is replaced with the matched text while an **\\N** (where N=1...9) escape sequence is replaced with Nth matched group (or an empty string if the N exceeds the number of captured groups).|The item must be configured as an [active check](/manual/appendix/items/activepassive#active_checks).<br>Log rotation is based on the last modification time of files.<br><br>If `output` is left empty - the whole line containing the matched text is returned. Note that all global regular expression types except 'Result is TRUE' always return the whole matched line and the `output` parameter is ignored.<br><br>Content extraction using the `output` parameter takes place on the agent.<br><br>Examples:<br>=> logrt\["/home/zabbix/logs/\^logfile\[0-9\]{1,3}$",,,100\] → will match a file like "logfile1" (will not match ".logfile1")<br>=> logrt\["/home/user/\^logfile\_.\*\_\[0-9\]{1,3}$","pattern\_to\_match","UTF-8",100\] → will collect data from files such "logfile\_abc\_1" or "logfile\_\_001".<br><br>The `output` parameter is supported since Zabbix 2.2.<br>The `mode` parameter is supported since Zabbix 2.0.<br><br>See also additional information on [log monitoring](log_items).|
|net.dns\[<ip>,name,<type>,<timeout>,<count>\]|<|<|<|<|
|<|Checks if DNS service is up.|0 - DNS is down (server did not respond or DNS resolution failed)<br><br>1 - DNS is up|**ip** - IP address of DNS server (leave empty for the default DNS server, ignored on Windows)<br>**name** - DNS name to query<br>**type** - record type to be queried (default is *SOA*)<br>**timeout** (ignored on Windows) - timeout for the request in seconds (default is 1 second)<br>**count** (ignored on Windows) - number of tries for the request (default is 2)|Example:<br>=> net.dns\[8.8.8.8,zabbix.com,MX,2,1\]<br><br>The possible values for `type` are:<br>*ANY*, *A*, *NS*, *CNAME*, *MB*, *MG*, *MR*, *PTR*, *MD*, *MF*, *MX*, *SOA*, *NULL*, *WKS* (except for Windows), *HINFO*, *MINFO*, *TXT*, *SRV*<br><br>Internationalized domain names are not supported, please use IDNA encoded names instead.<br>SRV record type is supported since Zabbix agent versions 1.8.6 (Unix) and 2.0.0 (Windows).<br><br>Naming before Zabbix 2.0 (still supported): *net.tcp.dns*|
|net.dns.record\[<ip>,name,<type>,<timeout>,<count>\]|<|<|<|<|
|<|Performs a DNS query.|Character string with the required type of information|**ip** - IP address of DNS server (leave empty for the default DNS server, ignored on Windows)<br>**name** - DNS name to query<br>**type** - record type to be queried (default is *SOA*)<br>**timeout** (ignored on Windows) - timeout for the request in seconds (default is 1 second)<br>**count** (ignored on Windows) - number of tries for the request (default is 2)|Example:<br>=> net.dns.record\[8.8.8.8,zabbix.com,MX,2,1\]<br><br>The possible values for `type` are:<br>*ANY*, *A*, *NS*, *CNAME*, *MB*, *MG*, *MR*, *PTR*, *MD*, *MF*, *MX*, *SOA*, *NULL*, *WKS* (except for Windows), *HINFO*, *MINFO*, *TXT*, *SRV*<br><br>Internationalized domain names are not supported, please use IDNA encoded names instead.<br>SRV record type is supported since Zabbix agent versions 1.8.6 (Unix) and 2.0.0 (Windows).<br><br>Naming before Zabbix 2.0 (still supported): *net.tcp.dns.query*|
|net.if.collisions\[if\]|<|<|<|<|
|<|Number of out-of-window collisions.|Integer|**if** - network interface name|<|
|net.if.discovery|<|<|<|<|
|<|List of network interfaces. Used for low-level discovery.|JSON object|<|Supported since Zabbix agent version 2.0.<br><br>On FreeBSD, OpenBSD and NetBSD supported since Zabbix agent version 2.2.<br><br>Some Windows versions (for example, Server 2008) might require the latest updates installed to support non-ASCII characters in interface names.|
|net.if.in\[if,<mode>\]|<|<|<|<|
|<|Incoming traffic statistics on network interface.|Integer|**if** - network interface name (Unix); network interface full description or IPv4 address (Windows)<br>**mode** - possible values:<br>*bytes* - number of bytes (default)<br>*packets* - number of packets<br>*errors* - number of errors<br>*dropped* - number of dropped packets|Multi-byte interface names on Windows are supported since Zabbix agent version 1.8.6.<br><br>Examples:<br>=> net.if.in\[eth0,errors\]<br>=> net.if.in\[eth0\]<br><br>You may obtain network interface descriptions on Windows with net.if.discovery or net.if.list items.<br><br>You may use this key with a *Delta (speed per second)* store value in order to get bytes per second statistics.|
|net.if.out\[if,<mode>\]|<|<|<|<|
|<|Outgoing traffic statistics on network interface.|Integer|**if** - network interface name (Unix); network interface full description or IPv4 address (Windows)<br>**mode** - possible values:<br>*bytes* - number of bytes (default)<br>*packets* - number of packets<br>*errors* - number of errors<br>*dropped* - number of dropped packets|Multi-byte interface names on Windows are supported since Zabbix agent 1.8.6 version.<br><br>Examples:<br>=> net.if.out\[eth0,errors\]<br>=> net.if.out\[eth0\]<br><br>You may obtain network interface descriptions on Windows with net.if.discovery or net.if.list items.<br><br>You may use this key with a *Delta (speed per second)* store value in order to get bytes per second statistics.|
|net.if.total\[if,<mode>\]|<|<|<|<|
|<|Sum of incoming and outgoing traffic statistics on network interface.|Integer|**if** - network interface name (Unix); network interface full description or IPv4 address (Windows)<br>**mode** - possible values:<br>*bytes* - number of bytes (default)<br>*packets* - number of packets<br>*errors* - number of errors<br>*dropped* - number of dropped packets|Examples:<br>=> net.if.total\[eth0,errors\]<br>=> net.if.total\[eth0\]<br><br>You may obtain network interface descriptions on Windows with net.if.discovery or net.if.list items.<br><br>You may use this key with a *Delta (speed per second)* store value in order to get bytes per second statistics.<br><br>Note that dropped packets are supported only if both net.if.in and net.if.out work for dropped packets on your platform.|
|net.tcp.listen\[port\]|<|<|<|<|
|<|Checks if this TCP port is in LISTEN state.|0 - it is not in LISTEN state<br><br>1 - it is in LISTEN state|**port** - TCP port number|Example:<br>=> net.tcp.listen\[80\]<br><br>On Linux supported since Zabbix agent version 1.8.4|
|net.tcp.port\[<ip>,port\]|<|<|<|<|
|<|Checks if it is possible to make TCP connection to specified port.|0 - cannot connect<br><br>1 - can connect|**ip** - IP address (default is 127.0.0.1)<br>**port** - port number|Example:<br>=> net.tcp.port\[,80\] → can be used to test availability of web server running on port 80.<br><br>For simple TCP performance testing use net.tcp.service.perf\[tcp,<ip>,<port>\]<br><br>Note that these checks may result in additional messages in system daemon logfiles (SMTP and SSH sessions being logged usually).<br><br>Old naming: *check\_port\[\*\]*|
|net.tcp.service\[service,<ip>,<port>\]|<|<|<|<|
|<|Checks if service is running and accepting TCP connections.|0 - service is down<br><br>1 - service is running|**service** - either of:<br>*ssh*, *ntp*, *ldap*, *smtp*, *ftp*, *http*, *pop*, *nntp*, *imap*, *tcp*, *https*, *telnet* (see [details](/manual/appendix/items/service_check_details))<br>**ip** - IP address (default is 127.0.0.1)<br>**port** - port number (by default standard service port number is used)|Example:<br>=> net.tcp.service\[ftp,,45\] → can be used to test the availability of FTP server on TCP port 45.<br><br>Note that these checks may result in additional messages in system daemon logfiles (SMTP and SSH sessions being logged usually).<br><br>Checking of encrypted protocols (like IMAP on port 993 or POP on port 995) is currently not supported. As a workaround, please use net.tcp.port for checks like these.<br><br>Checking of LDAP and HTTPS by Windows agent is currently not supported.<br><br>Note that the telnet check looks for a login prompt (':' at the end).<br><br>See also [known issues](/manual/installation/known_issues#https_checks) of checking HTTPS service.<br><br>*https* and *telnet* services are supported since Zabbix 2.0.<br>*ntp* service only works since Zabbix 2.0.15, 2.2.10 and 2.4.6, despite being available in earlier versions.<br><br>Old naming: *check\_service\[\*\]*|
|net.tcp.service.perf\[service,<ip>,<port>\]|<|<|<|<|
|<|Checks performance of service.|0 - service is down<br><br>seconds - the number of seconds spent while connecting to the service|**service** - either of:<br>*ssh*, *ntp*, *ldap*, *smtp*, *ftp*, *http*, *pop*, *nntp*, *imap*, *tcp*, *https*, *telnet* (see [details](/manual/appendix/items/service_check_details))<br>**ip** - IP address (default is 127.0.0.1)<br>**port** - port number (by default standard service port number is used)|Example:<br>=> net.tcp.service.perf\[ssh\] → can be used to test the speed of initial response from SSH server.<br><br>Checking of encrypted protocols (like IMAP on port 993 or POP on port 995) is currently not supported. As a workaround, please use net.tcp.service.perf\[tcp,<ip>,<port>\] for checks like these.<br><br>Checking of LDAP and HTTPS by Windows agent is currently not supported.<br><br>Note that the telnet check looks for a login prompt (':' at the end).<br><br>See also [known issues](/manual/installation/known_issues#https_checks) of checking HTTPS service.<br><br>*https* and *telnet* services are supported since Zabbix 2.0.<br>*ntp* service only works since Zabbix 2.0.15, 2.2.10 and 2.4.6, despite being available in earlier versions.<br><br>Old naming: *check\_service\_perf\[\*\]*|
|net.udp.listen\[port\]|<|<|<|<|
|<|Checks if this UDP port is in LISTEN state.|0 - it is not in LISTEN state<br><br>1 - it is in LISTEN state|**port** - UDP port number|Example:<br>=> net.udp.listen\[68\]<br><br>On Linux supported since Zabbix agent version 1.8.4|
|proc.mem\[<name>,<user>,<mode>,<cmdline>\]|<|<|<|<|
|<|Memory used by process in bytes.|Integer - with `mode` as *max*, *min*, *sum*<br><br>Float - with `mode` as *avg*|**name** - process name (default is *all processes*)<br>**user** - user name (default is *all users*)<br>**mode** - possible values:<br>*avg*, *max*, *min*, *sum* (default)<br>**cmdline** - filter by command line (it is a regular expression)|Examples:<br>=> proc.mem\[,root\] → memory used by all processes running under the "root" user<br>=> proc.mem\[zabbix\_server,zabbix\] → memory used by all zabbix\_server processes running under the zabbix user<br>=> proc.mem\[,oracle,max,oracleZABBIX\] → memory used by the most memory-hungry process running under oracle having oracleZABBIX in its command line.<br><br>*Note*: When several processes use shared memory, the sum of memory used by processes may result in large, unrealistic values.|
|proc.num\[<name>,<user>,<state>,<cmdline>\]|<|<|<|<|
|<|The number of processes.|Integer|**name** - process name (default is *all processes*)<br>**user** - user name (default is *all users*)<br>**state** - possible values: *all* (default), *run*, *sleep*, *zomb*<br>**cmdline** - filter by command line (it is a regular expression)|Examples:<br>=> proc.num\[,mysql\] → number of processes running under the mysql user<br>=> proc.num\[apache2,www-data\] → number of apache2 processes running under the www-data user<br>=> proc.num\[,oracle,sleep,oracleZABBIX\] → number of processes in sleep state running under oracle having oracleZABBIX in its command line<br><br>On Windows, only the `name` and `user` parameters are supported.|
|sensor\[device,sensor,<mode>\]|<|<|<|<|
|<|Hardware sensor reading.|Float|**device** - device name<br>**sensor** - sensor name<br>**mode** - possible values:<br>*avg*, *max*, *min* (if this parameter is omitted, device and sensor are treated verbatim).|Reads /proc/sys/dev/sensors on Linux 2.4.<br><br>Example:<br>=> sensor\[w83781d-i2c-0-2d,temp1\]<br><br>Prior to Zabbix 1.8.4, the *sensor\[temp1\]* format was used.|
|^|^|^|^|Reads /sys/class/hwmon on Linux 2.6+.<br><br>See a more detailed description of [sensor](/manual/appendix/items/sensor) item on Linux.|
|^|^|^|^|Reads the *hw.sensors* MIB on OpenBSD.<br><br>Examples:<br>=> sensor\[cpu0,temp0\] → temperature of one CPU<br>=> sensor\["cpu\[0-2\]$",temp,avg\] → average temperature of the first three CPU's<br><br>Supported on OpenBSD since Zabbix 1.8.4.|
|system.boottime|<|<|<|<|
|<|System boot time.|Integer (Unix timestamp)|<|<|
|system.cpu.discovery|<|<|<|<|
|<|List of detected CPUs/CPU cores. Used for low-level discovery.|JSON object|<|Supported on all platforms since 2.4.0.|
|system.cpu.intr|<|<|<|<|
|<|Device interrupts.|Integer.|<|<|
|system.cpu.load\[<cpu>,<mode>\]|<|<|<|<|
|<|[CPU load](http://en.wikipedia.org/wiki/Load_(computing)).|Float|**cpu** - possible values:<br>*all* (default), *percpu* (total load divided by online CPU count)<br>**mode** - possible values:<br>*avg1* (one-minute average, default), *avg5*, *avg15*|Example:<br>=> system.cpu.load\[,avg5\]<br><br>*percpu* is supported since Zabbix 2.0.0.<br><br>Old naming: *system.cpu.loadX*|
|system.cpu.num\[<type>\]|<|<|<|<|
|<|Number of CPUs.|Integer|**type** - possible values:<br>*online* (default), *max*|Example:<br>=> system.cpu.num|
|system.cpu.switches|<|<|<|<|
|<|Count of context switches.|Integer|<|Old naming: *system\[switches\]*|
|system.cpu.util\[<cpu>,<type>,<mode>\]|<|<|<|<|
|<|CPU utilisation in percent.|Float|**cpu** - *<CPU number>* or *all* (default)<br>**type** - possible values:<br>*idle*, *nice*, *user* (default), *system* (default for Windows), *iowait*, *interrupt*, *softirq*, *steal*<br>**mode** - possible values:<br>*avg1* (one-minute average, default), *avg5*, *avg15*|Example:<br>=> system.cpu.util\[0,user,avg5\]<br><br>Old naming: *system.cpu.idleX, system.cpu.niceX, system.cpu.systemX, system.cpu.userX*|
|system.hostname\[<type>\]|<|<|<|<|
|<|System host name.|String|**type** (Windows only, must not be used on other systems) - possible values: *netbios* (default) or *host*|The value is acquired by either GetComputerName() (for **netbios**) or gethostname() (for **host**) functions on Windows and by "hostname" command on other systems.<br><br>Examples of returned values:<br>*on Linux*:<br>=> system.hostname → linux-w7x1<br>=> system.hostname → www.zabbix.com<br>*on Windows*:<br>=> system.hostname → WIN-SERV2008-I6<br>=> system.hostname\[host\] → Win-Serv2008-I6LonG<br><br>The `type` parameter for this item is supported since Zabbix **1.8.6**.<br><br>See also a [more detailed description](/manual/appendix/install/windows_agent#configuration).|
|system.hw.chassis\[<info>\]|<|<|<|<|
|<|Chassis information.|String|**info** - possible values: *full* (default), *model*, *serial*, *type* or *vendor*|Example:<br>=> system.hw.chassis\[full\] → Hewlett-Packard HP Pro 3010 Small Form Factor PC CZXXXXXXXX Desktop\]<br><br>This key depends on the availability of the [SMBIOS](http://en.wikipedia.org/wiki/System_Management_BIOS) table in memory.<br><br>**Root permissions** are required because the value is acquired by reading from memory.<br><br>Supported since Zabbix agent version 2.0.|
|system.hw.cpu\[<cpu>,<info>\]|<|<|<|<|
|<|CPU information.|String or integer|**cpu** - *<CPU number>* or *all* (default)<br>**info** - possible values:<br>*full* (default), *curfreq*, *maxfreq*, *model* or *vendor*|Example:<br>=> system.hw.cpu\[0,vendor\] → AuthenticAMD<br><br>Gathers info from /proc/cpuinfo and /sys/devices/system/cpu/\[cpunum\]/cpufreq/cpuinfo\_max\_freq.<br><br>If a CPU number and *curfreq* or *maxfreq* is specified, a numeric value is returned (Hz).<br><br>Supported since Zabbix agent version 2.0.|
|system.hw.devices\[<type>\]|<|<|<|<|
|<|Listing of PCI or USB devices.|Text|**type** - *pci* (default) or *usb*|Example:<br>=> system.hw.devices\[pci\] → 00:00.0 Host bridge: Advanced Micro Devices \[AMD\] RS780 Host Bridge<br>\[..\]<br><br>Returns the output of either lspci or lsusb utility (executed without any parameters)<br><br>Supported since Zabbix agent version 2.0.|
|system.hw.macaddr\[<interface>,<format>\]|<|<|<|<|
|<|Listing of MAC addresses.|String|**interface** - *all* (default) or a regular expression<br>**format** - *full* (default) or *short*|Lists MAC adresses of the interfaces whose name matches the given `interface` regexp (*all* lists for all interfaces).<br><br>Example:<br>=> system.hw.macaddr\["eth0$",full\] → \[eth0\] 00:11:22:33:44:55<br><br>If `format` is specified as *short*, interface names and identical MAC addresses are not listed.<br><br>Supported since Zabbix agent version 2.0.|
|system.localtime\[<type>\]|<|<|<|<|
|<|System time.|Integer - with `type` as *utc*<br><br>String - with `type` as *local*|**type** - possible values:<br>*utc* - (default) the time since the Epoch (00:00:00 UTC, January 1, 1970), measured in seconds.<br>*local* - the time in the 'yyyy-mm-dd,hh:mm:ss.nnn,+hh:mm' format<br>|Parameters for this item are supported since Zabbix agent version 2.0.<br><br>Example:<br>=> system.localtime\[local\] → create an item using this key and then use it to display host time in the *Clock* [screen element](/manual/config/visualisation/screens/elements#clock).|
|system.run\[command,<mode>\]|<|<|<|<|
|<|Run specified command on the host.|Text result of the command<br><br>1 - with `mode` as *nowait* (regardless of command result)|**command** - command for execution<br>**mode** - possible values:<br>*wait* - wait end of execution (default),<br>*nowait* - do not wait|Up to 512KB of data can be returned, including trailing whitespace that is truncated.<br>To be processed correctly, the output of the command must be text.<br><br>Example:<br>=> system.run\[ls -l /\] → detailed file list of root directory.<br><br>*Note*: To enable this functionality, [agent configuration file](/manual/appendix/config/zabbix_agentd) must contain EnableRemoteCommands=1 option.<br>*Note*: The return value of the item is standard output together with standard error produced by command.<br>*Note:* Empty result is allowed starting with Zabbix 2.4.0.<br><br>See also: [Command execution](/manual/appendix/command_execution).|
|system.stat\[resource,<type>\]|<|<|<|<|
|<|System statistics.|Integer or float|**ent** - number of processor units this partition is entitled to receive (float)<br>**kthr,<type>** - information about kernel thread states:<br>*r* - average number of runnable kernel threads (float)<br>*b* - average number of kernel threads placed in the Virtual Memory Manager wait queue (float)<br>**memory,<type>** - information about the usage of virtual and real memory:<br>*avm* - active virtual pages (integer)<br>*fre* - size of the free list (integer)<br>**page,<type>** - information about page faults and paging activity:<br>*fi* - file page-ins per second (float)<br>*fo* - file page-outs per second (float)<br>*pi* - pages paged in from paging space (float)<br>*po* - pages paged out to paging space (float)<br>*fr* - pages freed (page replacement) (float)<br>*sr* - pages scanned by page-replacement algorithm (float)<br>**faults,<type>** - trap and interrupt rate:<br>*in* - device interrupts (float)<br>*sy* - system calls (float)<br>*cs* - kernel thread context switches (float)<br>**cpu,<type>** - breakdown of percentage usage of processor time:<br>*us* - user time (float)<br>*sy* - system time (float)<br>*id* - idle time (float)<br>*wa* - idle time during which the system had outstanding disk/NFS I/O request(s) (float)<br>*pc* - number of physical processors consumed (float)<br>*ec* - the percentage of entitled capacity consumed (float)<br>*lbusy* - indicates the percentage of logical processor(s) utilization that occurred while executing at the user and system level (float)<br>*app* - indicates the available physical processors in the shared pool (float)<br>**disk,<type>** - disk statistics:<br>*bps* - indicates the amount of data transferred (read or written) to the drive in bytes per second (integer)<br>*tps* - indicates the number of transfers per second that were issued to the physical disk/tape (float)<br>This item is supported since Zabbix **1.8.1.**|<|
|system.sw.arch|<|<|<|<|
|<|Software architecture information.|String|<|Example:<br>=> system.sw.arch → i686<br><br>Info is acquired from uname() function.<br><br>Supported since Zabbix agent version 2.0.|
|system.sw.os\[<info>\]|<|<|<|<|
|<|Operating system information.|String|**info** - possible values:<br>*full* (default), *short* or *name*|Example:<br>=> system.sw.os\[short\]→ Ubuntu 2.6.35-28.50-generic 2.6.35.11<br><br>Info is acquired from (note that not all files are present in all distributions):<br>/proc/version (*full*)<br>/proc/version\_signature (*short*)<br>/etc/issue.net (*name*)<br><br>Supported since Zabbix agent version 2.0.|
|system.sw.packages\[<package>,<manager>,<format>\]|<|<|<|<|
|<|Listing of installed packages.|Text|**package** - *all* (default) or a regular expression<br>**manager** - *all* (default) or a package manager<br>**format** - *full* (default) or *short*|Lists (alphabetically) installed packages whose name matches the given `package` regexp (*all* lists them all).<br><br>Example:<br>=> system.sw.packages\[mini,dpkg,short\] → python-minimal, python2.6-minimal, ubuntu-minimal<br><br>Supported package managers (executed command):<br>dpkg (dpkg --get-selections)<br>pkgtool (ls /var/log/packages)<br>rpm (rpm -qa)<br>pacman (pacman -Q)<br><br>If `format` is specified as *full*, packages are grouped by package managers (each manager on a seperate line beginning with its name in square brackets).<br>If `format` is specified as *short*, packages are not grouped and are listed on a single line.<br><br>Supported since Zabbix agent version 2.0.|
|system.swap.in\[<device>,<type>\]|<|<|<|<|
|<|Swap in (from device into memory) statistics.|Integer|**device** - device used for swapping (default is *all*)<br>**type** - possible values:<br>*count* (number of swapins), *sectors* (sectors swapped in), *pages* (pages swapped in). See [supported by platform](/manual/appendix/items/supported_by_platform) for details on defaults.|Example:<br>=> system.swap.in\[,pages\]<br><br>The source of this information is:<br>/proc/swaps, /proc/partitions, /proc/stat (Linux 2.4)<br>/proc/swaps, /proc/diskstats, /proc/vmstat (Linux 2.6)|
|system.swap.out\[<device>,<type>\]|<|<|<|<|
|<|Swap out (from memory onto device) statistics.|Integer|**device** - device used for swapping (default is *all*)<br>**type** - possible values:<br>*count* (number of swapouts), *sectors* (sectors swapped out), *pages* (pages swapped out). See [supported by platform](/manual/appendix/items/supported_by_platform) for details on defaults.|Example:<br>=> system.swap.out\[,pages\]<br><br>The source of this information is:<br>/proc/swaps, /proc/partitions, /proc/stat (Linux 2.4)<br>/proc/swaps, /proc/diskstats, /proc/vmstat (Linux 2.6)|
|system.swap.size\[<device>,<type>\]|<|<|<|<|
|<|Swap space size in bytes or in percentage from total.|Integer - for bytes<br><br>Float - for percentage^1^|**device** - device used for swapping (default is *all*)<br>**type** - possible values:<br>*free* (free swap space, default), *pfree* (free swap space, in percent), *pused* (used swap space, in percent), *total* (total swap space), *used* (used swap space)|Example:<br>=> system.swap.size\[,pfree\] → free swap space percentage<br><br>If *device* is not specified Zabbix agent will only take into account swap devices (files), physical memory will be ignored. For example, on Solaris systems *swap -s* command includes a portion of physical memory and swap devices (unlike *swap -l*).<br><br>Old naming: *system.swap.free*, *system.swap.total*|
|system.uname|<|<|<|<|
|<|Detailed host information.|String|<|Example of returned value:<br>FreeBSD localhost 4.2-RELEASE FreeBSD 4.2-RELEASE \#0: Mon Nov i386<br><br>Since Zabbix 2.2.0, the value for this item is obtained by using the uname() system call, whereas previously it was obtained by invoking "uname -a" on Unix systems. Hence, the value of this item might differ from the output of "uname -a" and does not include additional information that "uname -a" prints based on other sources.|
|system.uptime|<|<|<|<|
|<|System uptime in seconds.|Integer|<|In [item configuration](/manual/config/items/item#configuration), use **s** or **uptime** units to get readable values.|
|system.users.num|<|<|<|<|
|<|Number of users logged in.|Integer|<|**who** command is used on the agent side to obtain the value.|
|vfs.dev.read\[<device>,<type>,<mode>\]|<|<|<|<|
|<|Disk read statistics.|Integer - with `type` in *sectors*, *operations*, *bytes*<br><br>Float - with `type` in *sps*, *ops*, *bps*|**device** - disk device (default is *all*^2^)<br>**type** - possible values: *sectors*, *operations*, *bytes*, *sps*, *ops*, *bps*<br>This parameter must be specified, since defaults differ under various OSes.<br>*sps*, *ops*, *bps* stand for: sectors, operations, bytes per second, respectively.<br>**mode** - possible values: *avg1* (one-minute average, default), *avg5*, *avg15*.<br>This parameter is supported only with `type` in: sps, ops, bps.|Default values of 'type' parameter for different OSes:<br>AIX - operations<br>FreeBSD - bps<br>Linux - sps<br>OpenBSD - operations<br>Solaris - bytes<br><br>Example:<br>=> vfs.dev.read\[,operations\]<br><br>*sps*, *ops* and *bps* on supported platforms used to be limited to 8 devices (7 individual and one *all*). Since Zabbix 2.0.1 this limit is 1024 devices (1023 individual and one for *all*).<br><br>Supports LVM since Zabbix 1.8.6.<br><br>Only relative device names could be used (for example, **sda**) until Zabbix 1.8.6. Since then, an optional **/dev/** prefix may be used (for example, **/dev/sda**).<br><br>Old naming: *io\[\*\]*|
|vfs.dev.write\[<device>,<type>,<mode>\]|<|<|<|<|
|<|Disk write statistics.|Integer - with `type` in *sectors*, *operations*, *bytes*<br><br>Float - with `type` in *sps*, *ops*, *bps*|**device** - disk device (default is *all*^2^)<br>**type** - possible values: *sectors*, *operations*, *bytes*, *sps*, *ops*, *bps*<br>This parameter must be specified, since defaults differ under various OSes.<br>*sps*, *ops*, *bps* stand for: sectors, operations, bytes per second, respectively.<br>**mode** - possible values: *avg1* (one-minute average, default), *avg5*, *avg15*.<br>This parameter is supported only with `type` in: sps, ops, bps.|Default values of 'type' parameter for different OSes:<br>AIX - operations<br>FreeBSD - bps<br>Linux - sps<br>OpenBSD - operations<br>Solaris - bytes<br><br>Example:<br>=> vfs.dev.write\[,operations\]<br><br>*sps*, *ops* and *bps* on supported platforms used to be limited to 8 devices (7 individual and one *all*). Since Zabbix 2.0.1 this limit is 1024 (1023 individual and one for *all*).<br><br>Supports LVM since Zabbix 1.8.6.<br><br>Only relative device names could be used (for example, **sda**) until Zabbix 1.8.6. Since then, an optional **/dev/** prefix may be used (for example, **/dev/sda**).<br><br>Old naming: *io\[\*\]*|
|vfs.file.cksum\[file\]|<|<|<|<|
|<|File checksum, calculated by the UNIX cksum algorithm.|Integer|**file** - full path to file|Example:<br>=> vfs.file.cksum\[/etc/passwd\]<br><br>Example of returned value:<br>1938292000<br><br>Old naming: *cksum*<br><br>The file size limit depends on [large file support](/manual/appendix/items/large_file_support).|
|vfs.file.contents\[file,<encoding>\]|<|<|<|<|
|<|Retrieving contents of a file.|Text|**file** - full path to file<br>**encoding** - code page [identifier](/manual/config/items/itemtypes/zabbix_agent#available_encodings)|Returns an empty string if the file is empty or contains LF/CR characters only.<br><br>Example:<br>=> vfs.file.contents\[/etc/passwd\]<br><br>This item is limited to files no larger than 64 Kbytes.<br><br>Supported since Zabbix agent version 2.0.|
|vfs.file.exists\[file\]|<|<|<|<|
|<|Checks if file exists|0 - not found<br><br>1 - regular file or a link (symbolic or hard) to regular file exists|**file** - full path to file|Example:<br>=> vfs.file.exists\[/tmp/application.pid\]<br><br>The return value depends on what S\_ISREG POSIX macro returns.<br><br>The file size limit depends on [large file support](/manual/appendix/items/large_file_support).|
|vfs.file.md5sum\[file\]|<|<|<|<|
|<|MD5 checksum of file.|Character string (MD5 hash of the file)|**file** - full path to file|Example:<br>=> vfs.file.md5sum\[/usr/local/etc/zabbix\_agentd.conf\]<br><br>Example of returned value:<br>b5052decb577e0fffd622d6ddc017e82<br><br>The file size limit (64 MB) for this item was removed in version 1.8.6.<br><br>The file size limit depends on [large file support](/manual/appendix/items/large_file_support).|
|vfs.file.regexp\[file,regexp,<encoding>,<start line>,<end line>,<output>\]|<|<|<|<|
|<|Find string in a file.|The line containing the matched string, or as specified by the optional `output` parameter|**file** - full path to file<br>**regexp** - GNU regular expression<br>**encoding** - code page [identifier](/manual/config/items/itemtypes/zabbix_agent#available_encodings)<br>**start line** - the number of first line to search (first line of file by default).<br>**end line** - the number of last line to search (last line of file by default).<br>**output** - an optional output formatting template. The **\\0** escape sequence is replaced with the matched text while an **\\N** (where N=1...9) escape sequence is replaced with Nth matched group (or an empty string if the N exceeds the number of captured groups).|Only the first matching line is returned.<br>An empty string is returned if no line matched the expression.<br><br>Content extraction using the `output` parameter takes place on the agent.<br><br>The `start line`, `end line` and `output` parameters are supported from version 2.2.<br><br>Examples:<br>=> vfs.file.regexp\[/etc/passwd,zabbix\]<br>=> vfs.file.regexp\[/path/to/some/file,"(\[0-9\]+)$",,3,5,\\1\]<br>=> vfs.file.regexp\[/etc/passwd,"\^zabbix:.:(\[0-9\]+)",,,,\\1\] → getting the ID of user *zabbix*|
|vfs.file.regmatch\[file,regexp,<encoding>,<start line>,<end line>\]|<|<|<|<|
|<|Find string in a file.|0 - match not found<br><br>1 - found|**file** - full path to file<br>**regexp** - GNU regular expression<br>**encoding** - code page [identifier](/manual/config/items/itemtypes/zabbix_agent#available_encodings)<br>**start line** - the number of first line to search (first line of file by default).<br>**end line** - the number of last line to search (last line of file by default).|The `start line` and `end line` parameters are supported from version 2.2.<br><br>Example:<br>=> vfs.file.regmatch\[/var/log/app.log,error\]|
|vfs.file.size\[file\]|<|<|<|<|
|<|File size (in bytes).|Integer|**file** - full path to file|The file must have read permissions for user *zabbix*.<br><br>Example:<br>=> vfs.file.size\[/var/log/syslog\]<br><br>The file size limit depends on [large file support](/manual/appendix/items/large_file_support).|
|vfs.file.time\[file,<mode>\]|<|<|<|<|
|<|File time information.|Integer (Unix timestamp)|**file** - full path to the file<br>**mode** - possible values:<br>*modify* (default) - modification time, *access* - last access time, *change* - last change time|Example:<br>=> vfs.file.time\[/etc/passwd,modify\]<br><br>The file size limit depends on [large file support](/manual/appendix/items/large_file_support).|
|vfs.fs.discovery|<|<|<|<|
|<|List of mounted filesystems. Used for low-level discovery.|JSON object|<|Supported since Zabbix agent version 2.0.|
|vfs.fs.inode\[fs,<mode>\]|<|<|<|<|
|<|Number or percentage of inodes.|Integer - for number<br><br>Float - for percentage|**fs** - filesystem<br>**mode** - possible values:<br>*total* (default), *free*, *used*, //pfree // (free, percentage), *pused* (used, percentage)|Example:<br>=> vfs.fs.inode\[/,pfree\]<br><br>Old naming: *vfs.fs.inode.free\[\*\]*, *vfs.fs.inode.pfree\[\*\]*, *vfs.fs.inode.total\[\*\]*|
|vfs.fs.size\[fs,<mode>\]|<|<|<|<|
|<|Disk space in bytes or in percentage from total.|Integer - for bytes<br><br>Float - for percentage|**fs** - filesystem<br>**mode** - possible values:<br>*total* (default), *free*, *used*, *pfree* (free, percentage), *pused* (used, percentage)|In case of a mounted volume, disk space for local file system is returned.<br><br>Example:<br>=> vfs.fs.size\[/tmp,free\]<br><br>Reserved space of a file system is taken into account and not included when using the *free* mode.<br><br>Old naming: *vfs.fs.free\[\*\]*, *vfs.fs.total\[\*\]*, *vfs.fs.used\[\*\]*, *vfs.fs.pfree\[\*\]*, *vfs.fs.pused\[\*\]*|
|vm.memory.size\[<mode>\]|<|<|<|<|
|<|Memory size in bytes or in percentage from total.|Integer - for bytes<br><br>Float - for percentage|**mode** - possible values:<br>*total* (default), *active*, *anon*, *buffers*, *cached*, *exec*, *file*, *free*, *inactive*, *pinned*, *shared*, *wired*, *used*, *pused* (used, percentage), *available*, *pavailable* (available, percentage)|This item accepts three categories of parameters:<br><br>1) *total* - total amount of memory;<br>2) platform-specific memory types: *active*, *anon*, *buffers*, *cached*, *exec*, *file*, *free*, *inactive*, *pinned*, *shared*, *wired*;<br>3) user-level estimates on how much memory is used and available: *used*, *pused*, *available*, *pavailable*.<br><br>See a more detailed description of vm.memory.size [parameters](/manual/appendix/items/vm.memory.size_params).<br><br>Old naming: *vm.memory.buffers*, *vm.memory.cached*, *vm.memory.free*, *vm.memory.shared*, *vm.memory.total*|
|web.page.get\[host,<path>,<port>\]|<|<|<|<|
|<|Get content of web page.|Web page source as text|**host** - hostname<br>**path** - path to HTML document (default is /)<br>**port** - port number (default is 80)|Returns an empty string on fail.<br><br>Example:<br>=> web.page.get\[www.zabbix.com,index.php,80\]|
|web.page.perf\[host,<path>,<port>\]|<|<|<|<|
|<|Loading time of full web page (in seconds).|Float|**host** - hostname<br>**path** - path to HTML document (default is /)<br>**port** - port number (default is 80)|Returns 0 on fail.<br><br>Example:<br>=> web.page.perf\[www.zabbix.com,index.php,80\]|
|web.page.regexp\[host,<path>,<port>,<regexp>,<length>,<output>\]|<|<|<|<|
|<|Find string on a web page.|The matched string, or as specified by the optional `output` parameter|**host** - hostname<br>**path** - path to HTML document (default is /)<br>**port** - port number (default is 80)<br>**regexp** - GNU regular expression<br>**length** - maximum number of characters to return<br>**output** - an optional output formatting template. The **\\0** escape sequence is replaced with the matched text while an **\\N** (where N=1...9) escape sequence is replaced with Nth matched group (or an empty string if the N exceeds the number of captured groups).|Returns an empty string if no match was found or on fail.<br><br>Content extraction using the `output` parameter takes place on the agent.<br><br>The `output` parameter is supported from version 2.2.<br><br>Example:<br>=> web.page.regexp\[www.zabbix.com,index.php,80,OK,2\]|

::: noteclassic
\[1\] The system.swap.size key might report incorrect data
on virtualized (VMware ESXi, VirtualBox) Windows platforms. In this case
use perf\_counter\[\\700(\_Total)\\702\] key to obtain correct swap
usage percentage.
:::

::: noteclassic
\[2\] If default *all* is used for the first parameter of
**vfs.dev.**\* keys then the keys will return summary statistics,
including: all block devices like sda, sbd and their partitions sda1,
sda2, sdb3 ... and multiple devices (MD raid) based on those block
devices/partitions and logical volumes (LVM) based on those block
devices/partitions.<br>
In such cases returned values should be considered only as relative
value (dynamic in time) but not as absolute values.
:::

::: noteclassic
A Linux-specific note. Zabbix agent must have read-only
access to filesystem */proc*. Kernel patches from www.grsecurity.org
limit access rights of non-privileged users.
:::

#### Available encodings

The `encoding` parameter is used to specify encoding for processing
corresponding item checks, so that data acquired will not be corrupted.
For a list of supported encodings (code page identifiers), please
consult respective documentation, such as documentation for
[libiconv](http://www.gnu.org/software/libiconv/) (GNU Project) or
Microsoft Windows SDK documentation for "Code Page Identifiers".

If empty `encoding` is passed, then UTF-8 (default locale for newer
Unix/Linux distributions, see your system's settings) or ANSI with
system-specific extension (Windows) is used by default.

#### Troubleshooting agent items

1.  If used with passive agent, *Timeout* value in server configuration
    may need to be higher than *Timeout* in the agent configuration
    file. Otherwise the item may not get any value because the server
    request to agent timed out first.
