Движок отчетов в Satellite 6.5: Что это и зачем

    Red Hat Satellite – это решение для управления системой, упрощающее развертывание, масштабирование и управление инфраструктурой Red Hat в физических, виртуальных и облачных средах. Satellite позволяет пользователям настраивать и обновлять системы для обеспечения их эффективной безопасной работы в соответствии с различными стандартами. Автоматизируя большинство задач, связанных с поддержанием работоспособности системы, Satellite помогает организациям повысить эффективность, сократить эксплуатационные расходы, и с большей готовностью отвечать на стратегические запросы бизнеса.



    Хотя вы можете выполнять основные административные задачи с помощью служб Red Hat, включенных в подписку Red Hat Enterprise Linux, Red Hat Satellite добавляет широкие возможности управления всем жизненным циклом.

    Среди таких возможностей:

    • Установка патчей;
    • Управление подпиской;
    • Инициализация;
    • Управление конфигурацией.

    С одной консоли вы можете управлять тысячами систем так же легко, как одной, что увеличивает доступность, надежность и предоставляет возможности для аудита системы.

    А теперь у нас есть новый Red Hat Satellite 6.5!

    Одна из классных вещей, появившихся в Red Hat Satellite 6.5 – это новый движок отчетов.

    Satellite Server часто выступает тем центром, куда стекается вся информация о корпоративных системах Red Hat, и этот самый новый движок позволяет создавать и экспортировать отчеты, содержащие сведения о клиентских хостах Satellite, подписках на ПО, а также подлежащих устранению программных дефектах (applicable errata) и т.п. Программируются отчеты на встроенном языке Ruby (ERB).

    Satellite 6.5 идет в комплекте с уже готовыми отчетами, а движок дает пользователям возможность кастомизировать эти отчеты или создавать свои собственные. Встроенные отчеты Satellite 6.5 генерируются в формате CSV, однако в этом посте мы покажем, как можно создавать отчеты и в формате HTML.

    Встроенные отчеты Satellite 6.5


    Satellite 6.5 включает в себя четыре встроенных отчета:

    • Applicable errata – перечень программных дефектов (errata), подлежащих устранению на контент-хостах (опционально фильтруется по хостам или дефектам);
    • Host statuses – отчет о состоянии хостов Satellite (опционально фильтруется по хостам);
    • Registered hosts – сведения о хостах Satellite: IP-адрес, версия ОС, подписки на ПО (опционально фильтруется по хостам);
    • Subscriptions – сведения о подписках на ПО: общее число подписок, количество свободных, SKU-коды (опционально фильтруется по параметрам подписок).

    Чтобы сформировать отчет, откройте меню Monitor, выберите Report Templates и нажмите кнопку Generate справа от нужного отчета. Оставьте поле фильтрации пустым, чтобы включить в отчет все данные, или введите туда что-нибудь, чтобы ограничить результаты. Например, если в отчете Registered Hosts должны отображаться только хосты RHEL 8, то укажите фильтр os = RedHat and os_major = 8, как показано на скриншоте ниже:



    После формирования отчета его можно скачать и открыть в электронной таблице типа LibreOffice Calc, которая импортирует данные из CSV и разнесет их по столбцам, например, как отчет Applicable errata на скрине ниже:



    Обратите внимание, что в свойствах встроенных отчетов включена опция По умолчанию (Default), поэтому они автоматически добавляются во все новые организации и участки (locations), которые вы создаете в Satellite.

    Кастомизация встроенных отчетов


    Разберем кастомизацию на примере встроенного отчета Subscriptions. По умолчанию этот отчет отражает общее число подписок (1), а также количество доступных, то есть свободных подписок (2). Мы добавим в него еще одну колонку с количеством используемых подписок, которое определяется как (1) – (2). Например, если всего у нас 50 подписок RHEL и 10 из них свободны, то тогда используется 40 подписок.

    Поскольку редактирование встроенных отчетов заблокировано и изменять их не рекомендуется, придется клонировать встроенный отчет, дать ему новое имя и затем уже модифицировать эту клон-копию.

    Итак, если мы хотим модифицировать отчет Subscriptions, то его сначала надо клонировать. Поэтому открываем меню Monitor, выбираем Report Templates и в раскрывающемся меню справа от шаблона Subscriptions выбираем Clone. Затем вводим имя клон-отчета (назовем его Custom Subscriptions) и между строками Available и Quantity добавляем в него строку 'Used': pool.quantity — pool.available, – обратите внимание на запятую в конце строки. Вот как это выглядит на скриншоте:



    Затем нажимаем кнопку Submit, что возвращает нас страницу Report Templates. Там щелкаем кнопку Generate справа от только что созданного отчета Custom Subscriptions. Поле Subscriptions filter оставляем пустым и щелкаем Submit. После чего создается и загружается отчет, в котором есть добавленный нами столбец Used.



    Справка по встроенному языку Ruby находится на вкладке Help в окне редактирования отчета. В ней содержится обзор синтаксиса, а также доступных переменных и методов.

    Создание собственного отчета


    Теперь рассмотрим создание собственных отчетов на примере отчета по Ansible-ролям, назначенным хостам в Satellite. Открываем меню Monitor, щелкаем Report Templates и затем нажимаем кнопку Create Template. Назовем наш отчет Ansible Roles Report и вставим в него следующий ERB-код:

    <%#
    name: Ansible Roles Report
    snippet: false
    template_inputs:
    - name: hosts
     required: false
     input_type: user
     description: Limit the report only on hosts found by this search query. Keep empty
       for report on all available hosts.
     advanced: false
    model: ReportTemplate
    -%>
    <% load_hosts(search: input('hosts'), includes: :ansible_roles).each_record do |host| -%>
    <%   report_row({
           'Name': host.name,
           'All Ansible Roles': host.all_ansible_roles
         }) -%>
    <% end -%>
    <%= report_render -%>
    

    Этот код генерирует отчет по хостам, отображая для них атрибут «all_ansible_roles».

    Затем переходим на вкладку Inputs и щелкаем кнопку + Add Input. Говорим, что name равен hosts, а description type – Filter by hosts (optional). Затем щелкаем Submit и затем нажимаем кнопку Generate справа от только что созданного отчета. Дальше можно задать фильтр хостов или сразу нажать Submit, чтобы сформировать отчет по всем хостам. Сгенерированный отчет будет выглядеть в LibreOffice Calc примерно так:



    Создание HTML-отчетов


    Движок отчетов Satellite позволяет генерировать отчеты не только в формате CSV. В качестве примера мы создадим собственный отчет на основе встроенного отчета Host Statuses, но только в виде HTML-таблицы с цветовым кодированием ячеек на основе статуса. Для этого мы клонируем Host Statuses, а затем заменяем его ERB-код на следующий:

    <!DOCTYPE html>
    <html>
    <head>
       <title>Host Statuses</title>
       <style>
           th {
               background-color: black;
               color: white;
           }
           td.green {
               background-color:#92d400;
               color:black;
           }
           td.yellow {
               background-color:#f0ab00;
               color:black;
           }
           td.red {
               background-color:#CC0000;
               color:black;
           }
           table,th,td {
                   border-collapse:collapse;
                   border: 1px solid black;
           }
       </style> 
    </head>
    <body>
    <table>
    <tr> 
           <th> Hostname </th>
           <th> Status </th> 
    <% load_hosts(search: input('hosts'), includes: :host_statuses).each_record do |host| -%>
       <% all_host_statuses_hash(host).each do |key, value|  -%>
           <th> <%= key %> </th>
       <% end -%>
       <% break -%>
    <% end -%>
    </tr>
    
    <%- load_hosts(search: input('hosts'), includes: :host_statuses).each_record do |host| -%>
       <tr> 
       <td> <%= host.name   %> </td> 
       <% if host.global_status == 0 -%>
           <td class="green"> OK </td>
       <% elsif host.global_status == 1 -%>
           <td class="yellow"> Warning </td>
       <% else -%>
           <td class="red"> Error (<%= host.global_status %>) </td>
       <% end -%>
    
       <% all_host_statuses_hash(host).each do |key, value|  -%>
           <% if value == 0 -%>
               <td class="green"> OK </td>
           <% elsif value == 1  -%>
               <td class="yellow"> Warning </td>
           <% else -%>
               <td class="red"> Error (<%= value %>) </td>
           <% end -%>
       <% end -%>
       </tr>
    <% end -%>
    
    </table>
    </body>
    </html>
    

    Этот отчет генерирует HTML, который будет выглядеть в браузере примерно так:



    Запуск отчетов из командной строки


    Для запуска отчета из командной строки используется команда hammer, а утилита cron позволяет автоматизировать этот процесс.

    Используйте команду hammer report-template generate —name "", например:

    # hammer report-template generate —name "Host statuses HTML"
    

    Содержание отчета будет отражено на консоли. Информацию можно перенаправить в файл, после чего настроить cron так, чтобы он запускал shell-скрипт для формирования отчета и отправлял его по электронной почте. HTML-формат прекрасно отображается в почтовых клиентах, что позволяет организовать регулярную доставку отчетов заинтересованным лицам в удобной для восприятия форме.

    Таким образом, движок отчетов в Satellite 6.5 – это мощный инструмент для экспорта важных данных, имеющихся у компаний в Satellite. Он очень гибок и позволяет пользоваться как встроенными отчетами, так и их доработанными версиями. Кроме того, пользователи могут создавать свои собственные отчеты с нуля. Подробности о Satellite Reporting Engine доступны в нашем видео на YouTube.

    9 июля в 11:00 по Москве не пропустите вебинар про новую версию Red Hat Enterprise Linux 8

    Наш докладчик – Арам Кананов, менеджер департамента разработки платформ и систем управления Red Hat в Европе, на Ближнем Востоке и в Африке. Работа Арама в Red Hat включает в себя всесторонний анализ рынка, индустрии и конкурентов, а также позиционирование и маркетинг продуктов для бизнес-подразделения платформ, что включает в себя управление всем жизненным циклом всей продукта от внедрения до окончания использования.
    Red Hat
    Программные решения с открытым исходным кодом

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

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

    Самое читаемое