Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Php Zabbix Sender

Php Zabbix Sender Laravel Package

disc/php-zabbix-sender

Modern PHP implementation of a Zabbix Sender client. Send metrics to Zabbix server quickly by adding host/key/value data and calling send(). Supports PHP 5.4+ and works with Zabbix 2.0.8, 2.1.7+ and 4.0.

View on GitHub
Deep Wiki
Context7

PHP Zabbix Sender

Frequently asked questions about Php Zabbix Sender
How do I integrate this Zabbix sender into a Laravel application for monitoring API response times?
Use Laravel middleware to log response times, then dispatch metrics via the sender. For example, capture start time in middleware, send the duration after the request completes, and queue the job if needed to avoid blocking. Configure the Zabbix hostname and key in your `config/zabbix.php` file.
Does this package support Laravel’s queue system for async metric sending?
Yes, you can wrap the sender logic in a job (e.g., `SendZabbixMetricJob`) and dispatch it to Laravel queues. This prevents blocking your application and ensures metrics are sent reliably. Use `dispatch()` or `dispatchSync()` based on your needs.
What Laravel versions and PHP versions are officially supported by this package?
The package supports PHP 5.4+ and is compatible with Laravel 5.x and 6.x+. Since it’s a standalone PHP library, it doesn’t enforce Laravel-specific constraints, but ensure your Laravel app’s PHP version aligns with the package’s requirements.
How do I configure the Zabbix sender to work with a self-signed certificate or secure connection?
This package uses plain UDP by default, so it doesn’t natively support TLS. Secure your Zabbix server with firewall rules or VPC peering instead. If you need encrypted payloads, consider extending the package or using a proxy service to handle encryption before sending metrics.
Can I batch multiple metrics in a single send() call to reduce network overhead?
Yes, you can chain multiple `addData()` calls before invoking `send()`. This reduces the number of UDP packets sent to the Zabbix server. For example, batch metrics collected over a minute or per business event before sending them together.
What happens if the Zabbix server is unreachable or the send() call fails?
The package doesn’t include retry logic, so failed sends will throw exceptions. To handle this, wrap `send()` in a retry decorator (e.g., using `spatie/laravel-retryable`) or log failures to Laravel’s queue:failed table for later processing.
Is there a way to validate or sanitize metric keys before sending to Zabbix?
The package doesn’t include built-in validation, but you can sanitize keys in your Laravel application before passing them to `addData()`. For example, use regex to ensure keys match Zabbix’s expected format (e.g., `alphanumeric.{key}`).
How do I test this package in a CI/CD pipeline or local development environment?
Run `vendor/bin/phpunit` to execute the package’s test suite. For integration testing, mock the Zabbix server using a local instance or a testing framework like VCR for HTTP-based mocking. Ensure your test environment matches your target Zabbix version.
Are there alternatives to this package for sending metrics to Zabbix from Laravel?
Alternatives include using the official `zabbix_sender` CLI tool via `exec()` or `shell_exec()`, or exploring Laravel monitoring packages like `spatie/laravel-monitoring`. However, this package offers a pure PHP solution with no external dependencies, making it more portable.
How can I ensure this package works with Zabbix 5.0 or future versions if they introduce protocol changes?
Monitor Zabbix’s official documentation for protocol updates. Test the package against your target Zabbix version pre-deployment, and consider contributing to the package if you encounter compatibility issues. The package’s stateless design makes it easier to adapt to future changes.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
besmartand-pro/php-quality-config
sentix/ai-chatbot
terminal42/code-quality-tools
codifyo/ts-generator-bundle
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity