[comment]: # ({43ef458c-43ef458c})
# 6 Sender

[comment]: # ({/43ef458c-43ef458c})

[comment]: # ({7753f260-836aa47c})
#### Overview

Zabbix sender is a command line utility that may be used to send
performance data to Zabbix server for processing.

The utility is usually used in long running user scripts for periodical
sending of availability and performance data.

For sending results directly to Zabbix server or proxy, a [trapper
item](/manual/config/items/itemtypes/trapper) type must be configured.

See also the [Python library for Zabbix](/devel/python) that has built-in functionality to act like Zabbix sender.

[comment]: # ({/7753f260-836aa47c})

[comment]: # ({3b779c05-fce06a66})
#### Running Zabbix sender

An example of running Zabbix UNIX sender:

    cd bin
    ./zabbix_sender -z zabbix -s "Linux DB3" -k db.connections -o 43

where:

-   z - Zabbix server host (IP address can be used as well)
-   s - technical name of monitored host (as registered in Zabbix
    frontend)
-   k - item key
-   o - value to send

::: noteimportant
Options that contain whitespaces, must be quoted
using double quotes.
:::

Zabbix sender can be used to send multiple values from an input file.
See the [Zabbix sender manpage](/manpages/zabbix_sender) for more
information.

If a configuration file is specified, Zabbix sender uses all addresses
defined in the agent ServerActive configuration parameter for sending
data. If sending to one address fails, the sender tries sending to the
other addresses. If sending of batch data fails to one address, the
following batches are not sent to this address.

Zabbix sender accepts strings in UTF-8 encoding (for both UNIX-like
systems and Windows) without byte order mark (BOM) first in the file.

Zabbix sender on Windows can be run similarly:

    zabbix_sender.exe [options]

zabbix\_sender realtime sending scenarios will gather multiple values passed to it 
in close succession and send them to the server in a single connection. A value that is not
further apart from the previous value than 0.2 seconds can be put in the
same stack, but maximum polling time still is 1 second.

::: noteclassic
Zabbix sender will terminate if invalid (not following
*parameter=value* notation) parameter entry is present in the specified
configuration file.
:::

[comment]: # ({/3b779c05-fce06a66})

[comment]: # ({93f23aed-db62e674})

#### Running Zabbix sender with low-level discovery

An example of running Zabbix sender for sending a JSON-formatted value for low-level discovery:

    ./zabbix_sender -z 192.168.1.113 -s "Zabbix server" -k trapper.discovery.item -o '[{"{#FSNAME}":"/","{#FSTYPE}":"rootfs"},{"{#FSNAME}":"/sys","{#FSTYPE}":"sysfs"}]'

For this to work, the low-level discovery rule must have a Zabbix trapper item type (in this example, with `trapper.discovery.item` key).

[comment]: # ({/93f23aed-db62e674})
