Ad Widget

Collapse

Zabbix API

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • swq
    Member
    • Sep 2009
    • 84

    #1

    Zabbix API

    Есть ошибка. Может кто подскажет где копать?

    Есть хост. Элементы хоста (маки устройств) создаются на основе LLD. Тут проблем нет.
    Есть скрипт на PERL, хочу составить список ключей хоста, вот кусок скрипта:

    $json =
    {
    jsonrpc=> '2.0',
    method => 'item.getobjects',
    params =>
    {
    host => "MACs",
    },
    id => 2,
    auth => "$authID",
    };
    $response = $client->call($url, $json);
    print Dumper($response);

    Если количество элементов не очень велико, то все в порядке и я получаю свой список. Если их количество велико (более 10000), то скрипт сваливается с сообщением:
    $VAR1 = undef;

    Пытаюсь слить в массив:
    foreach $item (@{$response->content->{result}}) {
    $key = $item->{key_};
    push @arr, $key;
    }

    Получаю такую ошибку:
    Can't call method "content" on an undefined value at ./item_getobjects line 40.
    В скрипте line 40 это:
    foreach $item (@{$response->content->{result}}) {

    Что не так? Что-то кажется мне, что тут надо копаться в настройках PHP. Или нет?
    Кто что посоветует?
  • swq
    Member
    • Sep 2009
    • 84

    #2
    Нашел. Может кому пригодится.
    Как и предполагал все дело в настройке PHP.
    Параметр memory_limit.
    Только вот правка /etc/php5/apache2/php.ini результата не дает.
    Править надо /etc/zabbix/apache.conf

    php_value memory_limit 2048M вполне себе работает.

    Comment

    • swq
      Member
      • Sep 2009
      • 84

      #3
      Originally posted by swq
      Нашел. Может кому пригодится.
      Как и предполагал все дело в настройке PHP.
      Параметр memory_limit.
      Только вот правка /etc/php5/apache2/php.ini результата не дает.
      Править надо /etc/zabbix/apache.conf

      php_value memory_limit 2048M вполне себе работает.
      В общем рано радовался. При ~11500 items все еще работает, а при более 20К опять сваливается.

      И если ранее в /var/log/apache2/error.log была конкретная ошибка:
      [Thu Mar 12 20:38:01 2015] [error] [client 127.0.0.1] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 78 bytes) in /usr/share/zabbix/include/classes/api/services/CItem.php on line 1148

      то сейчас в логах пусто. Сейчас в /etc/zabbix/apache.conf
      php_value memory_limit -1

      Куда еще смотреть?

      Comment

      • swq
        Member
        • Sep 2009
        • 84

        #4
        Originally posted by swq
        В общем рано радовался. При ~11500 items все еще работает, а при более 20К опять сваливается.

        И если ранее в /var/log/apache2/error.log была конкретная ошибка:
        [Thu Mar 12 20:38:01 2015] [error] [client 127.0.0.1] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 78 bytes) in /usr/share/zabbix/include/classes/api/services/CItem.php on line 1148

        то сейчас в логах пусто. Сейчас в /etc/zabbix/apache.conf
        php_value memory_limit -1

        Куда еще смотреть?
        Смотреть в сторону прямого контакта с mysql. Так получилось лучше да и значительно быстрее.
        Всем спасибо.

        Comment

        Working...