PHPackages                             fliix-cloud/php-zabbix-sender - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. fliix-cloud/php-zabbix-sender

ActiveLibrary

fliix-cloud/php-zabbix-sender
=============================

PHP Implementation of Zabbix Sender (supports Zabbix 7.x) forked from webmasterskaya/php-zabbix-sender

1.0.3(1mo ago)125↓100%Apache-2.0PHPPHP ^8.4CI failing

Since Mar 17Pushed 1mo agoCompare

[ Source](https://github.com/fliix-cloud/php-zabbix-sender)[ Packagist](https://packagist.org/packages/fliix-cloud/php-zabbix-sender)[ RSS](/packages/fliix-cloud-php-zabbix-sender/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (4)Versions (5)Used By (0)

fliix/php-zabbix-sender
=======================

[](#fliixphp-zabbix-sender)

PHP implementation of the Zabbix Sender protocol — compatible with **Zabbix 7.x**.

- ✅ Unencrypted connection to Zabbix Server
- ✅ TLS PSK connection to Zabbix Server (TLS 1.2, compatible with Zabbix 7.x / OpenSSL 3.x)

Official Zabbix Sender docs: [https://www.zabbix.com/documentation/current/en/manpages/zabbix\_sender](https://www.zabbix.com/documentation/current/en/manpages/zabbix_sender)

---

Requirements
------------

[](#requirements)

RequirementVersionPHP≥ 8.4ext-socketsanyopenssl binaryany (needed for PSK connections)---

Installation
------------

[](#installation)

```
composer require fliix-cloud/php-zabbix-sender
```

Development
-----------

[](#development)

```
composer test
composer cs
composer check
```

- `composer test` runs the PHPUnit test suite.
- `composer cs` runs php-cs-fixer in dry-run mode.
- `composer check` runs both style checks and tests.

---

Quick start – unencrypted connection
------------------------------------

[](#quick-start--unencrypted-connection)

1. Create a **Trapper** item in Zabbix
    →
2. Instantiate the sender:

    ```
    $sender = new \Fliix\ZabbixSender\ZabbixSender([
        'server' => '127.0.0.1',
        'host'   => 'my-zabbix-host',
    ]);
    ```
3. Send a single value:

    ```
    $sender->send('my.trapper.key', 'some value');
    ```
4. Check the result:

    ```
    $info = $sender->getLastResponseInfo();
    echo $info->getTotal();     // total items submitted
    echo $info->getProcessed(); // items accepted by Zabbix
    echo $info->getFailed();    // items rejected by Zabbix
    echo $info->getSpent();     // processing time in seconds
    ```

---

Batch mode
----------

[](#batch-mode)

Collect multiple values and send them in a single request:

```
$sender = new \Fliix\ZabbixSender\ZabbixSender([
    'server' => '127.0.0.1',
    'host'   => 'my-zabbix-host',
]);

$sender->batch()
    ->send('cpu.load',    '0.42')
    ->send('memory.free', '1024')
    ->send('disk.used',   '512', 'other-host'); // override host per item

$success = $sender->execute();
```

---

TLS PSK connection (Zabbix 7.x)
-------------------------------

[](#tls-psk-connection-zabbix-7x)

### Background

[](#background)

Zabbix supports Pre-Shared Key (PSK) encryption between the sender and the Zabbix Server/Proxy. PSK uses **TLS 1.2** cipher suites defined in RFC 4279 (e.g. `PSK-AES256-CBC-SHA`). These cipher suites are **not available in TLS 1.3** and are disabled by default in **OpenSSL 3.x**, which is why the connection must explicitly use TLS 1.2.

### Step 1 – Generate a PSK key

[](#step-1--generate-a-psk-key)

A PSK key is a hex-encoded random string. Generate one with:

```
openssl rand -hex 32
# example output: a3f1b2c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2
```

Keep this value – you will need it both in Zabbix and in your PHP code.

### Step 2 – Configure PSK in Zabbix

[](#step-2--configure-psk-in-zabbix)

1. Open the Zabbix web UI and navigate to **Configuration → Hosts**
2. Select the host that will receive the data.
3. Go to the **Encryption** tab.
4. Set **Connections from host** to **PSK**.
5. Fill in:
    - **PSK identity** – a human-readable name, e.g. `hostname`
    - **PSK** – the hex key generated in Step 1.
6. Save the host.

### Step 3 – Use PSK in PHP

[](#step-3--use-psk-in-php)

```
$sender = new \Fliix\ZabbixSender\ZabbixSender([
    'server'           => '127.0.0.1',
    'port'             => 10051,
    'host'             => 'my-zabbix-host',
    'tls-connect'      => 'psk',
    'tls-psk-identity' => 'my-php-sender',
    'tls-psk'          => 'a3f1b2c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2',
]);

$sender->send('my.trapper.key', 'secure value');

$info = $sender->getLastResponseInfo();
echo "Processed: {$info->getProcessed()}, Failed: {$info->getFailed()}";
```

#### Optional: override the PSK cipher

[](#optional-override-the-psk-cipher)

By default, the library uses a TLS 1.2 PSK cipher list to improve compatibility with different OpenSSL/Zabbix builds:

`PSK-AES128-GCM-SHA256:PSK-AES256-GCM-SHA384:PSK-AES128-CBC-SHA256:PSK-AES256-CBC-SHA384:PSK-AES128-CBC-SHA:PSK-AES256-CBC-SHA`

If your Zabbix Server is configured to use a specific cipher, pass `tls-cipher` explicitly:

```
$sender = new \Fliix\ZabbixSender\ZabbixSender([
    'server'           => '127.0.0.1',
    'tls-connect'      => 'psk',
    'tls-psk-identity' => 'my-php-sender',
    'tls-psk'          => 'a3f1b2c4...',
    'tls-cipher'       => 'PSK-AES128-CBC-SHA',
]);
```

### PSK with batch mode

[](#psk-with-batch-mode)

PSK works transparently with batch mode. The same `tls-connect` options are used — just call `batch()` before sending:

```
$sender = new \Fliix\ZabbixSender\ZabbixSender([
    'server'           => '127.0.0.1',
    'port'             => 10051,
    'host'             => 'my-zabbix-host',
    'tls-connect'      => 'psk',
    'tls-psk-identity' => 'my-php-sender',
    'tls-psk'          => 'a3f1b2c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2',
]);

$sender->batch()
    ->send('cpu.load',    '0.42')
    ->send('memory.free', '1024')
    ->send('disk.used',   '512', 'other-host'); // override host per item

$success = $sender->execute();
```

### Troubleshooting PSK

[](#troubleshooting-psk)

SymptomLikely causeFix`SSL alert handshake failure`Cipher mismatch or TLS version mismatchEnsure `tls-cipher` matches what Zabbix accepts; Zabbix 7 requires TLS 1.2`no cipher can be selected`OpenSSL 3.x with PSKUse `-tls1_2` and a PSK-specific cipher (already handled by this library)`Processed 0 Failed 1`Item key or host name mismatchVerify the Zabbix host name and trapper item keyConnection refusedWrong server/port or firewallCheck `server`/`port` options and Zabbix Server firewall rules---

Protocol compatibility (zabbix\_sender)
---------------------------------------

[](#protocol-compatibility-zabbix_sender)

This library follows the Zabbix sender protocol frame format:

- Header magic/version: `ZBXD\1`
- Header length: 13 bytes total
- Data length: 8 bytes little-endian (`pack("VV", $length, 0x00)`)
- Payload: JSON with `request: "sender data"` and `data: [...]`

This matches the Zabbix protocol docs for `zabbix_sender` and `header_datalen`.

---

All available options
---------------------

[](#all-available-options)

OptionTypeDefaultDescription`server`string*(required)*Zabbix Server or Proxy hostname / IP`port`int`10051`Zabbix Server port`host`string*(required)*Zabbix host name the data belongs to`tls-connect`string`unencrypted`Encryption mode: `unencrypted`, `psk``tls-psk-identity`string–PSK identity (required when `tls-connect=psk`)`tls-psk`string–PSK hex key (required when `tls-connect=psk`)`tls-cipher`string`PSK-AES128-GCM-SHA256:PSK-AES256-GCM-SHA384:PSK-AES128-CBC-SHA256:PSK-AES256-CBC-SHA384:PSK-AES128-CBC-SHA:PSK-AES256-CBC-SHA`Override TLS 1.2 cipher for PSK connections`tls-cipher13`string–Override TLS 1.3 ciphersuite (OpenSSL ≥ 1.1.1 only)---

License
-------

[](#license)

Apache-2.0

###  Health Score

43

—

FairBetter than 91% of packages

Maintenance89

Actively maintained with recent releases

Popularity11

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 76.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

4

Last Release

53d ago

PHP version history (2 changes)1.0.0PHP &gt;=8.3

1.0.1PHP ^8.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/eb303373f6334a373497e3abb62290722f77e47c35378ac471f5569506fc3136?d=identicon)[fliix-cloud](/maintainers/fliix-cloud)

---

Top Contributors

[![kernusr](https://avatars.githubusercontent.com/u/16020878?v=4)](https://github.com/kernusr "kernusr (45 commits)")[![fliix-cloud](https://avatars.githubusercontent.com/u/139812224?v=4)](https://github.com/fliix-cloud "fliix-cloud (9 commits)")[![Copilot](https://avatars.githubusercontent.com/in/1143301?v=4)](https://github.com/Copilot "Copilot (5 commits)")

###  Code Quality

TestsPHPUnit

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/fliix-cloud-php-zabbix-sender/health.svg)

```
[![Health](https://phpackages.com/badges/fliix-cloud-php-zabbix-sender/health.svg)](https://phpackages.com/packages/fliix-cloud-php-zabbix-sender)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M647](/packages/sylius-sylius)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[contao/core-bundle

Contao Open Source CMS

1231.6M2.3k](/packages/contao-core-bundle)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M386](/packages/shopware-core)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
