Gerenciando Servidores com GlideRecord no ServiceNow

Tiago Macul
3 min readDec 3, 2024

--

No ambiente de operações de TI, a gestão eficaz dos servidores é crucial para a continuidade dos serviços e para a otimização dos recursos. Na nossa plataforma ServiceNow, utilizamos a tabela cmdb_ci_server para armazenar informações essenciais sobre nossos servidores. Um dos métodos mais poderosos para interagir com esta tabela é por meio do uso de GlideRecord, que nos permite executar operações como criar, ler, atualizar e excluir registros de forma programática.

O que é GlideRecord?

O GlideRecord é uma classe do ServiceNow (sim uma classe) que facilita a manipulação de dados em tabelas do banco de dados. Com ela, podemos realizar consultas e operações diretamente na tabela cmdb_ci_server para obter informações sobre os servidores que gerenciamos.

Exemplo Prático de Script

Abaixo, apresento um exemplo de um script que utiliza o GlideRecord para iterar sobre todos os registros na tabela cmdb_ci_server e exibir informações relevantes sobre cada servidor.

// Criar um novo objeto GlideRecord para a tabela cmdb_ci_server
var serverGR = new GlideRecord('cmdb_ci_server');

// Consultar todos os registros na tabela
serverGR.query();

// Verificar se existem registros
if (serverGR.hasNext()) {
// Loop através de todos os registros retornados
while (serverGR.next()) {
// Exibir informações do servidor
var serverName = serverGR.getValue('name'); // Nome do servidor
var serverIP = serverGR.getValue('ip_address'); // Endereço IP do servidor
var serverOS = serverGR.getValue('os'); // Sistema operacional do servidor

// Imprimir os detalhes do servidor no log
gs.info('Servidor: ' + serverName + ', IP: ' + serverIP + ', OS: ' + serverOS);
}
} else {
gs.info('Nenhum servidor encontrado na tabela cmdb_ci_server.');
}

Exemplo da resposta

*** Script: Servidor: Service-now Production Sacramento, IP: null, OS: Linux Red Hat
*** Script: Servidor: Service-now Production San Diego, IP: null, OS: Linux Red Hat
*** Script: Servidor: DatabaseServer2, IP: null, OS: Linux Red Hat

Explicação do Script:

  1. GlideRecord: Usamos new GlideRecord('cmdb_ci_server') para criar uma instância que nos permite interagir com a tabela cmdb_ci_server.
  2. query(): O método query() é chamado para buscar todos os registros da tabela.
  3. hasNext() ou Next(): Verificamos se existem registros retornados.
  4. Loop com next(): Dentro de um loop while, chamamos serverGR.next() para iterar sobre cada registro.
  5. getValue(): Usamos getValue() para obter os valores dos campos relevantes (neste exemplo, name, ip_address, e os).
  6. gs.info(): Usamos gs.info() para registrar as informações no log do sistema, que pode ser visualizado em System Logs > System Log > All.

Como Usar:

  • Você pode executar este script em um Background Script dentro do ServiceNow.
  • Acesse System Definition > Scripts — Background e cole o código acima.
  • Execute o script para visualizar os resultados no log.

Gerenciar servidores de maneira eficaz é fundamental para garantir a saúde da infraestrutura de TI. O uso de scripts como este nos permite automatizar processos e ter acesso instantâneo às informações necessárias para a tomada de decisões mais informadas. Além disso, pode ajudar a identificar rapidamente problemas nos servidores, permitindo uma resposta proativa antes que esses problemas afetem os serviços.

Know more:
Exploring CMDB: A Deep Dive into cmdb_ci_router in ServiceNow.

--

--

No responses yet