becker / laravel-zabbix-api by becker

This package provides a Zabbix API library for Laravel Framework
18,549
25
4
Package Data
Maintainer Username: becker
Maintainer Contact: vinicius@becker.eti.br (Vinicius Becker)
Package Create Date: 2016-09-22
Package Last Update: 2024-10-26
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-11-19 03:14:44
Package Statistics
Total Downloads: 18,549
Monthly Downloads: 250
Daily Downloads: 5
Total Stars: 25
Total Watchers: 4
Total Forks: 17
Total Open Issues: 2

Laravel Zabbix API

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.phpand 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 the config/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! :beers: