Mecanismo de relatórios do Satellite 6.5: o que e por quê

O Red Hat Satellite é uma solução de gerenciamento de sistema que facilita implantar, dimensionar e gerenciar sua infraestrutura da Red Hat em ambientes físicos, virtuais e em nuvem. O Satellite permite que os usuários sintonizem e atualizem os sistemas para garantir sua operação eficiente e segura, de acordo com vários padrões. Ao automatizar a maioria das tarefas associadas à manutenção do desempenho do sistema, o Satellite ajuda as organizações a aumentar a eficiência, reduzir custos operacionais e responder mais prontamente às solicitações estratégicas de negócios.



Embora você possa executar tarefas administrativas básicas usando os serviços Red Hat incluídos na sua assinatura do Red Hat Enterprise Linux, o Red Hat Satellite adiciona amplos recursos de gerenciamento do ciclo de vida.

Entre esses recursos estão:

  • Instalação de patches;
  • Gerenciamento de assinaturas;
  • Inicialização;
  • Gerenciamento de configuração.

Em um único console, você pode gerenciar milhares de sistemas tão facilmente quanto um único, o que aumenta a disponibilidade, a confiabilidade e oferece a capacidade de auditar o sistema.

E agora temos o novo Red Hat Satellite 6.5!

Uma das coisas legais do Red Hat Satellite 6.5 é o novo mecanismo de relatório.

O Satellite Server geralmente atua como o centro onde todas as informações sobre os sistemas corporativos da Red Hat fluem, e esse mais novo mecanismo permite criar e exportar relatórios contendo informações sobre hosts de clientes Satellite, assinaturas de software e defeitos de software aplicáveis ​​(erratas aplicáveis) e etc. Os relatórios são programados na linguagem Ruby (ERB) incorporada.

O Satellite 6.5 vem completo com relatórios prontos, e o mecanismo oferece aos usuários a capacidade de personalizar esses relatórios ou criar seus próprios. Os relatórios incorporados do Satellite 6.5 são gerados no formato CSV; no entanto, nesta postagem, mostraremos como você pode criar relatórios no formato HTML.

Relatórios internos do Satellite 6.5


O Satellite 6.5 inclui quatro relatórios internos:

  • Erratas aplicáveis - uma lista de defeitos de software (erratas) a serem corrigidos nos hosts de conteúdo (opcionalmente filtrados por hosts ou defeitos);
  • Status do host - relate o status dos hosts do Satellite (opcionalmente filtrados pelos hosts);
  • Hosts registrados - informações sobre hosts Satellite: endereço IP, versão do SO, assinatura de software (opcionalmente filtrada por hosts);
  • Assinaturas - informações sobre assinaturas de software: número total de assinaturas, número de assinaturas gratuitas, códigos de SKU (opcionalmente filtrados por parâmetros de assinatura).

Para gerar um relatório, abra o menu Monitor , selecione Modelos de relatório e clique no botão Gerar à direita do relatório desejado. Deixe o campo de filtragem em branco para incluir todos os dados no relatório ou digite algo para limitar os resultados. Por exemplo, se apenas os hosts RHEL 8 forem exibidos no relatório Hosts Registrados, especifique o filtro os = RedHat e os_major = 8 , conforme mostrado na captura de tela abaixo:



Após gerar o relatório, você pode baixá-lo e abri-lo em uma planilha do tipo LibreOffice Calc, que importa os dados do CSV e os coloca em colunas, por exemplo, como o relatório de errata aplicável na captura de tela abaixo:



Observe que a opção Padrão está ativada nas propriedades dos relatórios incorporados, para que sejam automaticamente adicionados a todas as novas organizações e locais criados no Satellite.

Customização de relatórios incorporados


Vamos analisar a personalização usando o relatório de assinaturas interno como um exemplo. Por padrão, este relatório reflete o número total de assinaturas (1), bem como o número de assinaturas disponíveis, ou seja, gratuitas (2). Adicionaremos outra coluna a ela com o número de assinaturas usadas, definido como (1) - (2). Por exemplo, se no total tivermos 50 assinaturas RHEL e 10 delas forem gratuitas, serão usadas 40 assinaturas.

Como a edição de relatórios incorporados está bloqueada e não é recomendável alterá-los, você deverá clonar o relatório incorporado, dar um novo nome e modificar essa cópia do clone.

Portanto, se quisermos modificar o relatório de assinaturas , primeiro devemos cloná-lo. Portanto, abra o menu Monitor , selecione Modelos de relatório e selecione Clonar no menu suspenso à direita do modelo de assinaturas . Em seguida, inserimos o nome do relatório do clone (vamos chamá-lo de Assinaturas personalizadas ) e adicionamos a linha 'Usado' entre as linhas Disponível e Quantidade : pool.quantity - pool.available, - preste atenção à vírgula no final da linha. Aqui está como fica na captura de tela:



Em seguida, clicamos no botão Enviar , que retorna à página Modelos de relatório . Lá, clique no botão Gerar à direita do relatório de Assinaturas personalizadas que você acabou de criar. Deixe o campo de filtro Assinaturas em branco e clique em Enviar . Depois disso, um relatório é criado e carregado, no qual há uma coluna Usado adicionada por nós.



A ajuda para o idioma Ruby incorporado está localizada na guia Ajuda na janela de edição de relatórios. Ele fornece uma visão geral da sintaxe, bem como das variáveis ​​e métodos disponíveis.

Crie seu próprio relatório


Agora, vamos criar nossos próprios relatórios usando o exemplo de um relatório Ansible-Roles atribuído aos hosts no Satellite. Abra o menu Monitor , clique em Modelos de relatório e, em seguida, clique no botão Criar modelo . Ligue para o nosso relatório Ansible Roles Report e insira o seguinte código ERB nele:

<%# 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 -%> 

Este código gera um relatório pelos hosts, exibindo o atributo "all_ansible_roles" para eles.

Em seguida, vá para a guia Entradas e clique no botão + Adicionar entrada . Dizemos que o nome é hosts e o tipo de descrição é Filtrar por hosts (opcional) . Em seguida, clique em Enviar e, em seguida, clique no botão Gerar à direita do relatório que você acabou de criar. Em seguida, você pode definir o filtro do host ou clicar em Enviar imediatamente para gerar um relatório para todos os hosts. O relatório gerado terá a seguinte aparência no LibreOffice Calc:



Relatórios HTML


O Satellite Reporting Engine permite gerar relatórios não apenas no formato CSV. Como exemplo, criaremos nosso próprio relatório com base no relatório de status de host integrado, mas apenas na forma de uma tabela HTML com células codificadas por cores com base no status. Para fazer isso, clonamos o Status do host e substituímos o código ERB pelo seguinte:

 <!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> 

Este relatório gera HTML que se parecerá com isso no navegador:



Executando relatórios a partir da linha de comandos


O comando hammer é usado para executar o relatório na linha de comando, e o utilitário cron automatiza esse processo.

Use o comando hammer report-template generate —name "", por exemplo:

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

O conteúdo do relatório será exibido no console. As informações podem ser redirecionadas para um arquivo e, em seguida, configurar o cron para que ele execute um script de shell para gerar um relatório e enviá-lo por email. O formato HTML é perfeitamente exibido nos clientes de email, o que permite organizar a entrega regular de relatórios às partes interessadas de forma conveniente para percepção.

Portanto, o mecanismo de relatório no Satellite 6.5 é uma ferramenta poderosa para exportar dados importantes que as empresas possuem no Satellite. É muito flexível e permite que você use os relatórios internos e suas versões revisadas. Além disso, os usuários podem criar seus próprios relatórios a partir do zero. Detalhes sobre o Satellite Reporting Engine estão disponíveis em nosso vídeo do YouTube.

9 de julho às 11:00, horário de Moscou, não perca o seminário on-line sobre a nova versão do Red Hat Enterprise Linux 8

Nosso palestrante é Aram Kananov, gerente de desenvolvimento de sistemas de plataforma e controle da Red Hat na Europa, Oriente Médio e África. O trabalho de Aram na Red Hat inclui uma análise abrangente do mercado, da indústria e dos concorrentes, bem como o posicionamento e o marketing do produto da unidade de negócios da plataforma, que inclui o gerenciamento de todo o ciclo de vida de todo o produto, da implementação ao uso final.

Source: https://habr.com/ru/post/pt458778/


All Articles