1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/ijz-Mojo-Zabbix

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Mojo::Zabbix

Mojo::Zabbix — это простая оболочка Perl для Zabbix API. Мы создаём только методы аутентификации и запроса, а также несколько вспомогательных методов для упрощения вызова таких методов, как create/get/update/delete/exists.

中文介绍

Mojo::Zabix — это простой пакет функций zabbix api, который упрощает доступ к операциям zabbix с помощью сценариев Perl. В настоящее время поддерживаются только методы аутентификации и запросов, которые можно использовать для вызова методов create/get/update/delete/exists. Этот модуль основан на Mojo::useragent и использует Mojo:DOM для обработки и извлечения содержимого результатов.

Этот модуль зависит от Mojo и рекомендуется устанавливать с помощью cpan или пакета cpanm Mojo::Zabbix.

Тестирование

Модуль совместим и протестирован с Zabbix версии ниже 5.0.

В настоящее время модуль тестируется только в версиях до 5.0, но может использоваться и в версии 5.0 без строгого тестирования.

Пример

use Mojo::Zabbix;

my $z = Net::Zabbix->new(
url => "https://server/zabbix/",
username => 'user',
password => 'pass',
verify_ssl => 0,
debug => 1,
trace => 0
);

my $r = $z->get("host", {
filter => undef,
search => {
host => "test",
}
});

Пример печати версии zabbix api.

print $z->get("apiinfo.version",)->{result},"\n";

Пример получения нового предупреждающего сообщения о триггере.

  print getTriggers($z); # Эта функция и другие функции упакованы в Mojo::Zabbix::APP

  sub getTriggers {
    my $z=shift;
    my $ysterday=localtime(time()-24*3600);
    my $r = $z->get("trigger", {
            filter => {value => 1,
                       lastChangeSince => "$ysterday",
                'withUnacknowledgedEvents'=>1,
            },
            output => ["","triggerid","description","priority"],
           sortfield =>"priority",
            sortorder => "DESC",
            expandData=>"host",

     },
     );
     my $result;
     my $host=$r->{'result'};
     for (@$host){
       $result.="$_->{'host'}:".$_->{'description'}."\n" ;
     }

    return $result;
  }

Результат:

xxx.xxx.xx.55: {HOST.CONN} серверный порт 84 down xxx.xxx.xx.55: {HOST.CONN} серверный порт 81 down xxx.xxx.xx.55: {HOST.CONN} серверный порт 82 down xxx.xxx.xx.55.9: {HOST.CONN} серверный порт 80 down xxx.xxx.xx.12: {HOST.NAME} серверная нагрузка высокая, пожалуйста, проверьте вовремя xxx.xxx.xx.124: использование диска sdb превышает 95%, текущее значение равно {ITEM.LASTVALUE} xxx.xxx.xx.44: использование диска sdb превышает 95%, текущее значение равно {ITEM.LASTVALUE} xxx.xxx.xx.45: использование диска sdb превышает 95%, текущее значение равно {ITEM.LASTVALUE} xxx.xxx.xx.33: использование диска sdb превышает 95%, текущее значение равно {ITEM.LASTVALUE} xxx.xxx.xx.56: использование диска sda превышает 95%, текущее значение равно {ITEM.LASTVALUE} xxx.xxx.xx.57: использование диска sda превышает 95%, текущее значение равно {ITEM.LASTVALUE}

На основе этого модуля, через webqq или webwx в реальном времени получать данные мониторинга хостов.

XX_10.2.7.20_ Реальные данные:

ESTABLISHED соединение - { connections.status[ESTABLISHED] } : 9 SYN соединение - { connections.status[SYN] } : 0 Выход потока сетевой карты $1 - { net.if.out[bond0] } : 5176 Нагрузка - { system.cpu.load[,avg1] } : 0.000000 $1 оставшийся процент inode - { vfs.fs.inode[/,pfree] } : 99.788211 $1 осталось процентов - { vfs.fs.size[/,pfree] } : 99.269724 Доступная память - { vm.memory.size[available] } : 261874798592 Коэффициент использования памяти - { vm.memory.size[pused] } : 4.720467 Общий объём памяти - { vm.memory.size[total] } : 270763327488

Mojo-Zabbix-APP

Приложение модуля Mojo-Zabbix. Получает данные из данных zabbix, включая хосты, элементы, триггеры и предупреждения и т. д.

Это прикладной модуль модуля Mojo::Zabix, который упаковывает общие модули zabbix api и может удобно получать информацию zabbix, которая в настоящее время включает версию zabbix, список хостов, список мониторинга, триггер, предупреждение и т.д., и может предоставлять больше операций в соответствии с потребностями.

Пример

 use Mojo::Zabbix::APP;

 my @myzinfo = <DATA>; ##(получить информацию zabbix из __DATA__)

#### Определить для процесса отладки и отслеживания информации (открыть отладку и отслеживание)

 my $DEBUG=0;
 my ``` **Определение zabbix-сервера**

my @myzinfo = ('test1 http://test1/zabbix testuser pass');

@Можно определить как многострочные данные, формат следующий: один адрес zabbix сервера.

for (@myzinfo) {

next if /^#/;
next if /^\s*$/;
my ( $name, $url,$user, $pass ) = split;
print "\n$name\n";
my $z;

eval { $z = initZ( $url,$user,$pss ); };

if ($@) {
    print "Error $@!\n";

} else {
    ## Print the version of zabbix api. 打印zabbix 版本
    pVersion($z);
    ## Print all host lists。 获取所有的主机列表
    print  getAllhost($z);
    ## Print warning info of Triggers。打印取得的所有触发器告警信息
    pTriggers($z);

    ## Print the history data of given items, default for past 24 hours.
    ## 打印给定时间段的item历史数据,如果默认不给时间默认为过去24小时内的
    pHitems($z); # 打印实时监控数据

}

}


**Результат демонстрации**

name

Warning info of Triggers

2016-10-19 23:29:57 : 192.168.1.* : {HOST.NAME}上的80端口关闭
2016-10-19 22:58:28 : 192.168.2.* : 系统目录/etc/sysconfig/发生变化
2016-10-19 22:24:32 : 192.168.3.* : 系统目录/etc/init.d/发生变化
2016-10-19 19:12:53 : 192.168.3.* : 磁盘sda IO利用率超过95%
2016-10-19 18:03:03 : 192.168.4.* : Too many processes on {HOST.NAME}

**Более подробное описание**

Мы можем добавить программу в crontab и получать результаты по почте или через IM-инструмент. В настоящее время существует плагин [Mojo-webqq](https://github.com/sjdy521/Mojo-Webqq), который позволяет интерактивно получать данные мониторинга.

**Git-репозиторий**
[Github](https://github.com/bollwarm/Mojo-Zabbix)
[OSChina](https://gitee.com/ijz/Mojo-Zabbix.git)

**Автор**

[Пишите мне](bollwarm@ijz.me)
[Веб|Блог](https://ijz.me)

**Лицензия**

Это программное обеспечение защищено авторским правом (c) 2016 by oragnge.

Это бесплатное программное обеспечение; вы можете распространять его и/или изменять его на тех же условиях, что и сама система языка программирования Perl 5.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Это упаковка Zabbix API, которая упрощает доступ к операциям Zabbix с помощью Perl-скрипта. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/ijz-Mojo-Zabbix.git
git@api.gitlife.ru:oschina-mirror/ijz-Mojo-Zabbix.git
oschina-mirror
ijz-Mojo-Zabbix
ijz-Mojo-Zabbix
master