Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (2)

Наибольший вклад в теги

Все теги (8)

Лучшие ответы пользователя

Все ответы (2)
  • Как осуществить вывод графиков / экранов Zabbix на отдельной страничке?

    @KGBelyaev Автор вопроса
    Сам спросил, сам отвечу - конечно можно!

    Я взял более сложный пример - habrahabr.ru/post/104460
    Затем он был обрезан / модифицирован до нужного функционала.
    Получилось следующее решение: в Zabbix-е был создан пользователь гость, с разрешениями на просмотр нужных графиков / карт сетей.
    Затем, пройдясь по этим самым графикам были получены прямые ссылки на генерируемые картинки (просто в теле выдаваемой Zabbix-ом html страницы).
    Т.о. была получена коллекция ссылок вида: http://адрес_сервера/zabbix/chart2.php... , где graphid - номер графика, width - ширина генерируемой картинки.

    Все эти ссылки были загнаны в скрипт, который, в свою очередь загнан в cron для регулярного обновления этих картинок.

    Теперь можно нарисовать страничку и вставить в нее ссылки на получаемые картинки.

    Собственно скрипт:
    <?php
    
    // Папка для хранения изображений
    define('TMP_PATH', '/var/web/zabbix_images/');
    
    $resources = array();
    
    //Графики
    $resources[] = array('url' => 'http://адрес_сервера/zabbix/chart2.php?graphid=534&width=1000');
    $resources[] = array('url' => 'http://адрес_сервера/zabbix/chart2.php?graphid=524&width=800');
    //Карта сети
    $resources[] = array('url' => 'http://адрес_сервера/zabbix/map.php?sysmapid=1');
    
    //Получаем изображения
    foreach($resources as $k => $res)
    {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $res['url']);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    
    $file = curl_exec($ch);
    if($file) file_put_contents(TMP_PATH . 'img' . $k . '.png', $file);
    curl_close($ch);
    }
    ?>
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (3)