NAME
    Zabbix::Check - System and service checks for Zabbix

VERSION
    version 1.11

SYNOPSIS
    System and service checks for Zabbix

            UserParameter=cpan.zabbix.check.installed,/usr/bin/env bash -c "/usr/bin/perl -MZabbix::Check 2>/dev/null; if [ \$? -eq 0 ]; then echo 1; else echo 0; fi"
            UserParameter=cpan.zabbix.check.version,/usr/bin/perl -MZabbix::Check -e_version
            # Disk
            UserParameter=cpan.zabbix.check.disk.discovery,/usr/bin/perl -MZabbix::Check::Disk -e_discovery
            UserParameter=cpan.zabbix.check.disk.bps[*],/usr/bin/perl -MZabbix::Check::Disk -e_bps -- $1 $2
            UserParameter=cpan.zabbix.check.disk.iops[*],/usr/bin/perl -MZabbix::Check::Disk -e_iops -- $1 $2
            UserParameter=cpan.zabbix.check.disk.ioutil[*],/usr/bin/perl -MZabbix::Check::Disk -e_ioutil -- $1
            # Supervisor
            UserParameter=cpan.zabbix.check.supervisor.installed,/usr/bin/perl -MZabbix::Check::Supervisor -e_installed
            UserParameter=cpan.zabbix.check.supervisor.running,/usr/bin/perl -MZabbix::Check::Supervisor -e_running
            UserParameter=cpan.zabbix.check.supervisor.worker_discovery,/usr/bin/perl -MZabbix::Check::Supervisor -e_worker_discovery
            UserParameter=cpan.zabbix.check.supervisor.worker_status[*],/usr/bin/perl -MZabbix::Check::Supervisor -e_worker_status -- $1
            # RabbitMQ
            UserParameter=cpan.zabbix.check.rabbitmq.installed,/usr/bin/perl -MZabbix::Check::RabbitMQ -e_installed
            UserParameter=cpan.zabbix.check.rabbitmq.running,/usr/bin/perl -MZabbix::Check::RabbitMQ -e_running
            UserParameter=cpan.zabbix.check.rabbitmq.vhost_discovery[*],/usr/bin/perl -MZabbix::Check::RabbitMQ -e_vhost_discovery -- $1
            UserParameter=cpan.zabbix.check.rabbitmq.queue_discovery[*],/usr/bin/perl -MZabbix::Check::RabbitMQ -e_queue_discovery -- $1
            UserParameter=cpan.zabbix.check.rabbitmq.queue_status[*],/usr/bin/perl -MZabbix::Check::RabbitMQ -e_queue_status -- $1 $2 $3
            # Systemd
            UserParameter=cpan.zabbix.check.systemd.installed,/usr/bin/perl -MZabbix::Check::Systemd -e_installed
            UserParameter=cpan.zabbix.check.systemd.system_status,/usr/bin/perl -MZabbix::Check::Systemd -e_system_status
            UserParameter=cpan.zabbix.check.systemd.service_discovery[*],/usr/bin/perl -MZabbix::Check::Systemd -e_service_discovery -- $1
            UserParameter=cpan.zabbix.check.systemd.service_status[*],/usr/bin/perl -MZabbix::Check::Systemd -e_service_status -- $1
            # Time
            UserParameter=cpan.zabbix.check.time.epoch,/usr/bin/perl -MZabbix::Check::Time -e_epoch
            UserParameter=cpan.zabbix.check.time.zone,/usr/bin/perl -MZabbix::Check::Time -e_zone
            UserParameter=cpan.zabbix.check.time.ntp_offset[*],/usr/bin/perl -MZabbix::Check::Time -e_ntp_offset -- $1 $2
            # Redis
            UserParameter=cpan.zabbix.check.redis.installed,/usr/bin/perl -MZabbix::Check::Redis -e_installed
            UserParameter=cpan.zabbix.check.redis.discovery,/usr/bin/perl -MZabbix::Check::Redis -e_discovery
            UserParameter=cpan.zabbix.check.redis.running[*],/usr/bin/perl -MZabbix::Check::Redis -e_running -- $1
            UserParameter=cpan.zabbix.check.redis.info[*],/usr/bin/perl -MZabbix::Check::Redis -e_info -- $1 $2

DISK
    Zabbix check for disk

  discovery
    discovers disks

  bps $1 $2
    gets disk I/O traffic in bytes per second

    $1: *device name, eg: sda, sdb1, dm-3, ...*

    $2: *type: read|write|total*

  iops $1 $2
    gets disk I/O transaction speed in transactions per second

    $1: *device name, eg: sda, sdb1, dm-3, ...*

    $2: *type: read|write|total*

  ioutil $1
    gets disk I/O utilization in percentage

    $1: *device name, eg: sda, sdb1, dm-3, ...*

SUPERVISOR
    Zabbix check for Supervisor service

  installed
    checks Supervisor is installed: 0 | 1

  running
    checks Supervisor is installed and running: 0 | 1 | 2 = not installed

  worker_discovery
    discovers Supervisor workers

  worker_status $1
    gets Supervisor worker status: RUNNING | STOPPED | ...

    $1: *worker name*

RABBITMQ
    Zabbix check for RabbitMQ service

  installed
    checks RabbitMQ is installed: 0 | 1

  running
    checks RabbitMQ is installed and running: 0 | 1 | 2 = not installed

  vhost_discovery $1
    discovers RabbitMQ vhosts

    $1: *cache expiry in seconds, by default 0*

  queue_discovery $1
    discovers RabbitMQ queues

    $1: *cache expiry in seconds, by default 0*

  queue_status $1 $2 $3
    gets RabbitMQ queue status using queue discovery cache

    $1: *vhost name*

    $2: *queue name*

    $3: *type: ready|unacked|total*

SYSTEMD
    Zabbix check for Systemd services

  installed
    checks Systemd is installed: 0 | 1

  system_status
    gets Systemd system status: initializing | starting | running | degraded
    | maintenance | stopping | offline | unknown

  service_discovery
    discovers Systemd enabled services

    $1: *regex of service name, by default undefined*

  service_status $1
    gets Systemd enabled service status: active | inactive | failed |
    unknown | ...

    $1: *service name*

TIME
    Zabbix check for system time

  epoch
    gets system time epoch in seconds

  zone
    gets system time zone, eg: +0200

  ntp_offset $1 $2
    gets system time difference by NTP server

    $1: *server, by defaut pool.ntp.org*

    $2: *port, by default 123*

REDIS
    Zabbix check for Redis service

  installed
    checks Redis is installed: 0 | 1

  discovery
    discovers Redis instances

  running $1
    checks Redis is installed and instance is running: 0 | 1 | 2 = not
    installed

    $1: *bind, by defaut 127.0.0.1:6379*

  info $1 $2
    gets info

    $1: *key*

    $2: *bind, by defaut 127.0.0.1:6379*

INSTALLATION
    To install this module type the following

            perl Makefile.PL
            make
            make test
            make install

    from CPAN

            cpan -i Zabbix::Check

DEPENDENCIES
    This module requires these other modules and libraries:

    *   JSON

    *   Net::NTP

    *   Lazy::Utils

REPOSITORY
    GitHub <https://github.com/orkunkaraduman/Zabbix-Check>

    CPAN <https://metacpan.org/release/Zabbix-Check>

AUTHOR
    Orkun Karaduman (ORKUN) <orkun@cpan.org>

COPYRIGHT AND LICENSE
    Copyright (C) 2017 Orkun Karaduman <orkunkaraduman@gmail.com>

    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the
    Free Software Foundation, either version 3 of the License, or (at your
    option) any later version.

    This program is distributed in the hope that it will be useful, but
    WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
    Public License for more details.

    You should have received a copy of the GNU General Public License along
    with this program. If not, see <http://www.gnu.org/licenses/>.

