becker / laravel-zabbix-api
This package provides a Zabbix API library for Laravel Framework
Installs: 18 579
Dependents: 0
Suggesters: 0
Security: 0
Stars: 25
Watchers: 4
Forks: 17
Open Issues: 2
Requires (Dev)
- phpunit/phpunit: ~5.0
This package is auto-updated.
Last update: 2024-10-26 13:13:23 UTC
README
This package provides a Zabbix API library for Laravel Framework. It uses the PhpZabbixApi class generated by the http://github.com/confirm/PhpZabbixApi package.
NOTE: This version was tested with Zabbix Server 3.0.* only. Not sure if it works with other versions as well.
Installation
To get started, you should add the becker/laravel-zabbix-api
Composer dependency to your project:
composer require becker/laravel-zabbix-api
Register the Service Provider
NOTE: You can skip this step if you are using Laravel 5.5 or higher. The package is automatically registered, due to the package auto-discovery feature.
Open up the config/app.php
and register the new Service Provider:
//config/app.php /* * Package Service Providers... */ Becker\Zabbix\ZabbixServiceProvider::class, //...
Publish the configuration file
php artisan vendor:publish --tag=zabbix
This will create the config/zabbix.php
file.
Configure your Zabbix Server settings
At your .env
file, define the new Zabbix settings:
ZABBIX_HOST=http://your.zabbix.url ZABBIX_USERNAME=username ZABBIX_PASSWORD=password
IMPORTANT: The
ZABBIX_HOST
parameter SHOULD NOT contain any trailing slashes at the end. For a list of all available environment variables, check theconfig/zabbix.php
file.
Use it in your Controller
//app/Http/Controllers/TestController.php <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; class TestController extends Controller { /** * The ZabbixApi instance. * * @var \Becker\Zabbix\ZabbixApi */ protected $zabbix; /** * Create a new Zabbix API instance. * * @return void */ public function __construct() { $this->zabbix = app('zabbix'); } /** * Get all the Zabbix host groups. * * @return array */ public function index() { return $this->zabbix->hostgroupGet([ 'output' => 'extend' ]); // Or, if you want to use Laravel Collections return collect($this->zabbix->hostgroupGet())->map(function ($item) { return [ 'name' => strtoupper($item->name) ]; }); } }
And that's it! 🍻