Satellite 6.5报告引擎:什么以及为什么

Red Hat Satellite是一种系统管理解决方案,可以轻松地在物理,虚拟和云环境中部署,扩展和管理Red Hat基础架构。 卫星允许用户调整和更新系统,以确保根据各种标准进行有效,安全的操作。 通过自动执行与维护系统性能相关的大多数任务,Satellite可帮助组织提高效率,降低运营成本并更轻松地响应战略业务请求。



尽管您可以使用Red Hat Enterprise Linux订阅中随附的Red Hat服务执行基本的管理任务,但是Red Hat Satellite增加了广泛的生命周期管理功能。

这些功能包括:

  • 安装补丁;
  • 订阅管理;
  • 初始化;
  • 配置管理。

通过一个控制台,您可以像一个单一的控制台一样轻松地管理数千个系统,从而提高了可用性,可靠性,并使您能够审核系统。

现在我们有了新的Red Hat Satellite 6.5!

关于Red Hat Satellite 6.5的很酷的事情之一就是新的报表引擎。

Satellite Server通常是所有有关Red Hat公司系统信息的中心,而最新的引擎使您可以创建和导出报告,其中包含有关Satellite客户端主机,软件订阅和适用的软件缺陷(适用的勘误)的信息,以及等 使用嵌入式Ruby(ERB)语言对报告进行编程。

Satellite 6.5随附了现成的报告,该引擎使用户能够自定义这些报告或创建自己的报告。 Satellite 6.5嵌入式报告以CSV格式生成,但是在本文中,我们将展示如何创建HTML格式的报告。

Satellite 6.5内置报告


卫星6.5包含四个内置报告:

  • 适用的勘误表 -内容主机上要修复的软件缺陷列表(勘误表)(可选地由主机或缺陷过滤掉);
  • 主机状态 -报告从属主机的状态(可选地由主机过滤);
  • 已注册的主机 -有关从属主机的信息:IP地址,操作系统版本,软件订阅(可选地由主机过滤);
  • 订阅 -有关软件订阅的信息:订阅总数,免费订阅数,SKU代码(可选地按订阅参数过滤)。

要生成报告,请打开“ 监视器”菜单,选择“报告模板” ,然后单击所需报告右侧的“生成”按钮。 将过滤字段保留为空白以包括报告中的所有数据,或在其中输入内容以限制结果。 例如,如果仅RHEL 8主机应显示在“已注册的主机”报告中,则指定过滤器os = RedHat和os_major = 8 ,如以下屏幕截图所示:



生成报告后,您可以下载它并在LibreOffice Calc类型的电子表格中打开它,该电子表格从CSV导入数据并将其放在列中,例如,如以下屏幕快照中的“ 适用勘误”报告:



请注意,嵌入式报表的属性中启用了“ 默认”选项,因此它们会自动添加到您在Satellite中创建的所有新组织和位置。

定制嵌入式报告


让我们以内置的“ 订阅”报告为例来分析定制。 默认情况下,此报告反映订阅的总数(1)以及可用订阅(即免费订阅)的数量(2)。 我们将在其上添加另一列,其中包含所使用的订阅数,其定义为(1)-(2)。 例如,如果总共有50个RHEL订阅,其中10个是免费的,则使用40个订阅。

由于禁止编辑嵌入式报告,因此不建议对其进行更改,因此,您必须克隆嵌入式报告,为其命名,然后修改此克隆副本。

因此,如果要修改“ 订阅”报告,则必须首先克隆它。 因此,打开“ 监视器”菜单,选择“报告模板”,然后在“ 订阅”模板右侧的下拉菜单中选择“ 克隆” 。 然后我们输入克隆报告的名称(我们称其为Custom Subscriptions ),并在AvailableQuantity行之间添加“ Used”:pool.quantity-pool.available, -注意该行末尾的逗号。 这是屏幕快照中的外观:



然后,单击“ 提交”按钮,这将使我们返回“ 报告模板”页面。 在此处,单击刚刚创建的“ 自定义订阅”报告右侧的“ 生成”按钮。 将“订阅”过滤器字段保留为空白,然后单击“ 提交” 。 此后,将创建并加载报告,其中我们添加了“已用”列。



嵌入式Ruby语言的帮助位于报告编辑窗口的“ 帮助”选项卡上。 它概述了语法以及可用的变量和方法。

创建自己的报告


现在,让我们看一下分配给Satellite中主机的Ansible-Roles报告示例创建自己的报告。 打开“ 监视器”菜单,单击“报告模板” ,然后单击“ 创建模板”按钮。 调用我们的报告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”。

然后转到输入选项卡,然后单击+添加输入按钮。 我们说名称为hosts ,描述类型为Filter by hosts(可选) 。 然后单击提交 ,然后单击刚刚创建的报告右侧的生成按钮。 接下来,您可以设置主机过滤器,或单击立即提交以为所有主机生成报告。 生成的报告在LibreOffice Calc中将如下所示:



HTML报告


卫星报告引擎使您不仅可以生成CSV格式的报告。 例如,我们将基于集成的“主机状态”报告创建自己的报告,但仅以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 "Host statuses HTML" 

报告的内容将显示在控制台上。 可以将信息重定向到文件,然后设置cron,以便它运行Shell脚本以生成报告并通过电子邮件发送。 HTML格式完美地显示在电子邮件客户端中,它使您能够以方便的形式组织定期向感兴趣的各方发送报告,以便于感知。

因此,Satellite 6.5中的报告引擎是用于导出公司在Satellite中拥有的重要数据的强大工具。 它非常灵活,可让您使用内置报告及其修订版。 此外,用户可以从头开始创建自己的报告。 有关卫星报告引擎的详细信息,请参见我们的YouTube视频。

7月9日在莫斯科时间11:00不要错过有关新版本Red Hat Enterprise Linux 8的网络研讨会。

我们的发言人是Red Hat平台和欧洲,中东和非洲的管理系统开发经理Aram Kananov。 Aram在Red Hat的工作包括对市场,行业和竞争对手的全面分析,以及平台业务部门的产品定位和营销,其中包括管理从实施到最终使用的整个产品的整个生命周期。

Source: https://habr.com/ru/post/zh-CN458778/


All Articles