`;
throw new Error(`Erro na API dos Chamados: ${ResutadosZabix}`);
}
if (ResutadosZabix === 404) {
Elementohost.innerHTML = `
Status 404
Nenhum serviço encontrado
`;
throw new Error(`Erro na API dos Chamados: ${ResutadosZabix}`);
}
if (ResutadosZabix === 401) {
Elementohost.innerHTML = `
Status 404
Usuário não autenticado!
`;
location.reload(true);
throw new Error(`Erro na API dos Chamados: ${ResutadosZabix}`);
}
if (ResutadosZabix === 502) {
Elementohost.innerHTML = `
Status 404
Estamos realizando manutenções, volte mais tarde
`;
throw new Error(`Erro na API dos Chamados: ${ResutadosZabix} `);
}
if (ResutadosZabix === 504) {
Elementohost.innerHTML = `
Status 404
Este Serviço, demorou muito para responder, por favor contate o suporte
`;
throw new Error(`Erro na API dos Chamados: ${ResutadosZabix} `);
}
}
function ApresentarHosts(hosts) {
const filteredHosts = hosts.filter(host =>
host.metrics.some(metric => metric.key === "system.hostname")
);
const seletorEnseg = document.getElementById('Hostes');
const hostsPainel = document.getElementById('ItensHosts');
if (!seletorEnseg) return;
// Evita múltiplos eventos sendo adicionados ao select
seletorEnseg.innerHTML = ``;
filteredHosts.forEach(host => {
let hostName = host.metrics.find(metric => metric.key === "system.hostname")?.value || "Desativado";
let hostConsult = host.host_name;
seletorEnseg.innerHTML += ``;
});
Preinfo = "
Selecione um Host
";
HostsPainel.innerHTML = Preinfo;
// Removendo eventos anteriores antes de adicionar um novo
seletorEnseg.replaceWith(seletorEnseg.cloneNode(true));
document.getElementById('Hostes').addEventListener('change', function () {
const selectedHostName = this.value;
hostsPainel.innerHTML = ""; // Limpa o painel
// Busca o host correspondente pelo host_name
const selectedHost = filteredHosts.find(host => host.host_name === selectedHostName);
if (!selectedHost) return;
let hostAtivos = `
Status do Host - Sem Resposta
`;
let hostMemoriaTotalRam = `
Total de Ram - Sem Resposta
`;
let discos = {};
let hostMemoriaUsoRam = `
Ram: ...
`;
let hostCPU = `
CPU: ....
`;
selectedHost.metrics.forEach(metric => {
if (metric.key === "icmpping") {
const valor = metric.value;
if (valor == 0) {
hostAtivos = `
Host Offline
`; // Aplicação do Desativado dentro do item host
}
// Reação de aplicação de inserção para o caso do ping for 1
if (valor == 1) {
hostAtivos = `
Host Online
`; // Aplicação do ativo dentro do item host
}
}
if (metric.key === "vm.memory.size[total]") {
const valorMemoria = metric.value;
const totalGB = (valorMemoria / Math.pow(1024, 3)).toFixed(2);
hostMemoriaTotalRam = `
Total de Ram ${totalGB} GB
`
}
// Suponha que metric.key pode ter diferentes letras de unidade
if (metric.key.startsWith("vfs.fs.dependent.size[")) {
// Expressão regular para capturar a letra da unidade
const match = metric.key.match(/vfs\.fs\.dependent\.size\[([A-Z]):,total\]/);
if (match) {
let driveLetter = match[1]; // Captura a letra do drive
let totalGB = formatarTamanhoTotal(metric.value); // Converte para GB
function formatarTamanhoTotal(valorEmBytes) {
let valorEmGB = valorEmBytes / Math.pow(1024, 3); // Converte para GB
if (valorEmGB >= 1000) {
let valorEmTB = valorEmGB / 1024; // Converte para TB
return `${valorEmTB.toFixed(2)} TB`;
}
return `${valorEmGB.toFixed(2)} GB`;
}
if (!discos[driveLetter]) {
discos[driveLetter] = { total: 0, used: 0 };
}
discos[driveLetter].total = totalGB;
}
}
// Suponha que metric.key pode ter diferentes letras de unidade
if (metric.key.startsWith("vfs.fs.dependent.size[")) {
// Expressão regular para capturar a letra da unidade
const match = metric.key.match(/vfs\.fs\.dependent\.size\[([A-Z]):,used\]/);
if (match) {
let driveLetter = match[1]; // Captura a letra do drive
let usedGB = formatarTamanhoUsed(metric.value) // Converte para GB
// Função para formatar o tamanho em GB ou TB
function formatarTamanhoUsed(valorEmBytes) {
let valorEmGB = valorEmBytes / Math.pow(1024, 3); // Converte para GB
if (valorEmGB >= 1000) {
let valorEmTB = valorEmGB / 1024; // Converte para TB
return `${valorEmTB.toFixed(2)} TB`;
}
return `${valorEmGB.toFixed(2)} GB`;
}
if (!discos[driveLetter]) {
discos[driveLetter] = { total: 0, used: 0 };
}
discos[driveLetter].used = usedGB;
}
}
if (metric.key === "system.cpu.util") {
let Alinhadocpu = Math.floor(metric.value);
hostCPU = `
CPU: ${Alinhadocpu}%
`;
setTimeout(() => {
const Elementoshost_CPU = document.getElementById(`ElementosUtili_CPU_${Alinhadocpu}`);
if (Alinhadocpu == 100) {
Elementoshost_CPU.classList.add('Consumo_Limite');
}
//Maior ou igual á 75 ou Menor ou igual á 99
if (Alinhadocpu >= 75 && Alinhadocpu <= 99) {
Elementoshost_CPU.classList.add('Consumo_Alto');
}
//Maior ou igual á 30 ou Menor ou igual á 74
if (Alinhadocpu >= 30 && Alinhadocpu <= 74) {
Elementoshost_CPU.classList.add('Consumo_Medio');
}
if (Alinhadocpu >= 0 && Alinhadocpu <= 29) {
Elementoshost_CPU.classList.add('Consumo_Baixo');
}
}, 1);
}
if (metric.key === "vm.memory.util") {
let AlinhadoMemory = Math.floor(metric.value);
hostMemoriaUsoRam = `
Ram: ${AlinhadoMemory}%
`;
setTimeout(() => {
const Elementoshost_Memory = document.getElementById(`ElementosUtili_Memory_${AlinhadoMemory}`);
if (AlinhadoMemory == 100) {
Elementoshost_Memory.classList.add('Consumo_Limite');
}
//Maior ou igual á 75 ou Menor ou igual á 99
if (AlinhadoMemory >= 75 && AlinhadoMemory <= 99) {
Elementoshost_Memory.classList.add('Consumo_Alto');
}
//Maior ou igual á 30 ou Menor ou igual á 74
if (AlinhadoMemory >= 30 && AlinhadoMemory <= 74) {
Elementoshost_Memory.classList.add('Consumo_Medio');
}
if (AlinhadoMemory >= 0 && AlinhadoMemory <= 29) {
Elementoshost_Memory.classList.add('Consumo_Baixo');
}
}, 1);
}
});
let alinhamentoDeDiscos = "";
for (let drive in discos) {
alinhamentoDeDiscos += `
Unidade ${drive}: ${discos[drive].used} de ${discos[drive].total}
`;
}
// Se nenhum disco foi encontrado, exibir mensagem padrão
let alidanhamento_de_disco = Object.keys(discos).length > 0 ? alinhamentoDeDiscos : "
Sem informações de disco disponíveis
";
hostsPainel.innerHTML = `
${hostCPU}
${hostMemoriaUsoRam}
${hostAtivos}
${alidanhamento_de_disco}
${hostMemoriaTotalRam}
`;
});
}
localStorage.setItem('Carregou_tela_Moni', 'true');
clearInterval(checkElements_Moni);
}
} catch (error) {
console.error('Erro dentro da tela home:', error);
clearInterval(checkElements_Moni);
}
}, interval_Moni);
} catch (error) {
console.error('Erro fora da tela home:', error);
}
}