Двигун звітів у Satellite 6.5: Що це і навіщо

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

Двигун звітів у Satellite 6.5: Що це і навіщо

Хоча ви можете виконувати основні адміністративні завдання за допомогою 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-адреса, версія ОС, підписки на ПЗ (опціонально фільтрується по хостах);
  • підписки – відомості про підписки на ПЗ: загальна кількість передплат, кількість вільних, SKU-коди (опціонально фільтрується за параметрами передплат).

Щоб сформувати звіт, відкрийте меню монітор, Виберіть Шаблони звітів та натисніть кнопку Generate праворуч від потрібного звіту. Залиште поле фільтрації порожнім, щоб увімкнути всі дані, або введіть туди щось, щоб обмежити результати. Наприклад, якщо у звіті Registered Hosts повинні відображатися тільки хости RHEL 8, то вкажіть фільтр os = RedHat і os_major = 8, як показано на скріншоті нижче:

Двигун звітів у Satellite 6.5: Що це і навіщо

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

Двигун звітів у Satellite 6.5: Що це і навіщо

Зверніть увагу, що у властивостях вбудованих звітів включено опцію За замовчуванням (Default), тому вони автоматично додаються до нових організацій і ділянок (locations), які ви створюєте в Satellite.

Кастомізація вбудованих звітів

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

Оскільки редагування вбудованих звітів заблоковане і змінювати їх не рекомендується, доведеться клонувати вбудований звіт, дати йому нове ім'я і потім модифікувати цю клон-копію.

Отже, якщо хочемо модифікувати звіт підписки, його спочатку треба клонувати. Тому відкриваємо меню монітор, вибираємо Шаблони звітів і в меню, що розкривається праворуч від шаблону підписки вибираємо Клон. Потім вводимо ім'я клон-звіту (назвемо його Custom Subscriptions) та між рядками наявний и Кількість додаємо до нього рядок 'Used': pool.quantity - pool.available, - Зверніть увагу на кому в кінці рядка. Ось як це виглядає на скріншоті:

Двигун звітів у Satellite 6.5: Що це і навіщо

Потім натискаємо кнопку Надіслати, що повертає нас сторінку Шаблони звітів. Там клацаємо кнопку Генерувати праворуч від щойно створеного звіту Custom Subscriptions. Поле Subscriptions filter залишаємо порожнім та клацаємо Надіслати. Після чого створюється та завантажується звіт, в якому є доданий нами стовпець Використаний.

Двигун звітів у Satellite 6.5: Що це і навіщо

Довідка з вбудованої мови Ruby знаходиться на вкладці Документи у вікні редагування звіту. У ній міститься огляд синтаксису, а також доступних змінних та методів.

Створення власного звіту

Тепер розглянемо створення власних звітів з прикладу звіту по Ansible-ролям, призначеним хостам в Satellite. Відкриваємо меню монітор, клацаємо Шаблони звітів а потім натискаємо кнопку Створити шаблон. Назвемо наш звіт 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".

Потім переходимо на вкладку Витрати і клацаємо кнопку + Add Input. Говоримо, що name дорівнює хостів, а description type – Filter by hosts (опційний). Потім клацаємо Надіслати а потім натискаємо кнопку Генерувати праворуч від щойно створеного звіту. Далі можна задати фільтр хостів або одразу натиснути Надіслати, щоб сформувати звіт з усіх хостів. Згенерований звіт буде виглядати в LibreOffice Calc приблизно так:

Двигун звітів у Satellite 6.5: Що це і навіщо

Створення HTML-звітів

Двигун звітів Satellite дозволяє генерувати звіти не лише у форматі CSV. Як приклад ми створимо власний звіт на основі вбудованого звіту Host Статуси, але у вигляді 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, який виглядатиме у браузері приблизно так:

Двигун звітів у Satellite 6.5: Що це і навіщо

Запуск звітів із командного рядка

Для запуску звіту з командного рядка використовується команда забиватиа утиліта 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 включає всебічний аналіз ринку, індустрії та конкурентів, а також позиціонування та маркетинг продуктів для бізнес-підрозділу платформ, що включає управління всім життєвим циклом всієї продукту від впровадження до закінчення використання.

Джерело: habr.com

Додати коментар або відгук