TODO BlueMonitor
Índice
Update para dual boot
Resumo análise final
BD
Criar tabela
K4_SLOT ksID (k4 slot id) k4ID soID slot (incremento manual, tinyint) ksSituacao (1 = ativo, 2 = inativo, 3 = excluído)
Criar campo
SERVER_UPDATES_STATUS ksID (chave para tabela K4_SLOT)
Web (api)
POST
- Recebe k4, so, adiciona na tabela K4_SLOT independente se já existe ou não (possibilitando vários SO's iguais na mesma máquina)
- incrementa slot
- retorna a K4ID, soID, slot, ksID
POST api/v1/devices (cadastraAltera) alterar - id slot, etc criar um put para não instalar novo, e sim, apenas alterar. todo dia manda um post com a situação atual da máquina (qual k1, localidade, ip, mac, etc) para o BM, e atualizar na base alguma mudança.
Outros métodos da API para mudar
POST api/v1/devices/{k4Chave}/signals GET api/v1/devices/{k4Chave}/turnoff POST api/v1/devices/{k4Chave}/turnoff GET api/v1/devices/{k4Chave}/updates POST api/v1/devices/{k4Chave}/updates/{updateId}/status PUT api/v1/devices/{k4Chave}/updates/{updateId}/status/{id}
- todos k4Chave trocar para slot ID (ksID)
Detecção SO
Recebe o nome de um SO vindo do agente, busca na tabela SISTEMA_OPERACIONAL; Retorna o soID
Agente (desktop)
Instalação
- Chama API de #Detecção SO
post para instalação so + k4 + slot, grava no BD local (pode gravar apenas o ksID, que é o id do slot, ou a tabela k4_slot toda).
Solicitação de update(agente)
- Envia para API: dados da K4_SLOT
- Recebe: Lista de updates disponíveis para seu slot.
- Processa: Verifica em sua base local quais updates já foram instalados, e solicita os que ainda não foram.
Envio de updates (web)
- Recebe: solicitação de um update específico contendo os dados da K4_SLOT (ksID) + updID
- Processa: valida se existe ksID (k4+so+slot), se existe, grava na tabela SERVER_UPDATES_STATUS com o ksID além do que já grava.
- Envia: pacote.
Relatórios:
Updates por slot, k4, k1
Manutenção
Dependendo do número de dias sem sinal de máquina ligada, provavelmente o slot não está mais em uso (foi formatado pra dar lugar a outro). neste caso, pode-se marcar como excluído este slot, para que nos relatórios não saia ele, nem status de seus updates.
Schema BD atual
SERVER_UPDATES_STATUS
[dbo].[SERVER_UPDATES_STATUS]( [k4ID] [int] NOT NULL, [updID] [int] NOT NULL, [susInicioDownload] [bit] NULL, [susDataInicioDownload] [datetime] NULL, [susTerminoDownload] [bit] NULL, [susDataTerminoDownload] [datetime] NULL, [susInstalado] [bit] NULL, [susDataInstalado] [datetime] NULL, [susErroInstall] [varchar](1000) NULL, [susID] [uniqueidentifier] NULL CONSTRAINT [DF_SERVER_UPDATES_STATUS_susID] DEFAULT (newid()), CONSTRAINT [PK_K4_SERVER_UPDATES_STATUS] PRIMARY KEY CLUSTERED ( [k4ID] ASC, [updID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
SISTEMA_OPERACIONAL
[dbo].[SISTEMA_OPERACIONAL]( [soID] [int] IDENTITY(1,1) NOT NULL, [soDescricao] [varchar](200) NULL, [soVersao] [varchar](15) NULL, [ent_id] [uniqueidentifier] NULL, CONSTRAINT [PK_SISTEMA_OPERACIONAL] PRIMARY KEY CLUSTERED ( [soID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
SERVER_UPDATES_SISTEMA_OPERACIONAL
[dbo].[SERVER_UPDATES_SISTEMA_OPERACIONAL]( [updID] [int] NOT NULL, [soID] [int] NOT NULL, CONSTRAINT [PK_SERVER_UPDATES_SISTEMA_OPERACIONAL] PRIMARY KEY CLUSTERED ( [updID] ASC, [soID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
Relatório Resumo Configurações de máquinas
mudar o relatório - está hardcoded para a ent_id da sme-sp em: C:\Projetos\MStechCollection\BlueMonitor\main\BlueMonitorSSO_vs2012\BlueMonitor\Relatorios\RelatorioResumoConfigMaquina.aspx.cs
linha 40: if (__SessionWEB.__UsuarioWEB._Usuario.ent_id.Equals("6CF424DC-8EC3-E011-9B36-00155D033206"))
Limite de conexões simultâneas (downloads)
BlueMonitor tem limite de downloads - BlueMonitor gerencia quantos downloads estão sendo feitos, e se já deu o limite, ele retorna "Requisição Excedida" quando um cliente faz requisição da lista de updates pendentes (já aconteceu na FDE - blueUpdate) O BlueUpdate precisa enviar uma notificação de início de download para o BM.
o webservice retorna quantos Status download tem aberto e não fechado. se estiver acima de um X lá, ele não deixa marcar o início do download logo que começar a baixar.
A API não tem limite de downloads
Listagem de máquinas
A listagem de dispositivos apresenta carregamento muito lento. Precisamos investigar as operações realizadas para o carregamento da página e otimizá-las.
Trocar SQL Job e Windows services
Os SQL jobs e Windows Services são de difícil manutenção (devops) e não fornecem acesso a execução manual e logs (até fornecem, mas tem muitas restrições para implantação -- permissão de usuário no bd entre outros)
- Jobs de indicadores da tela inicial
- serviço de inventário
- serviço de monitoramento de link;
Seria interessante trocar SQL jobs e Windows services por tecnologia de jobs administradas pelo ASP.net, como exemplo o HangFire.
Dashboard
Criar dashboard com indicadores
- Uso de dispositivos
- Uso de softwares
- Dispositivos com atualizações pendentes
Novo Blue
Plataforma Tracker
04/01/17 - 15h
Dicionário de dados tem uma documentação, mas vinicius fez um apanhado de todas as funcionalidades do BM e BCW a ideia é renovar a plataforma
relatório de atendimento para o produto não faz sentido, sendo que podemos contabilizar dados de outra forma 15 dias bcw 15 dias bm
um backend, 1 client
blue monitor ainda não tem relatório de inventariado relatórios bem específicos pra cada cliente.
existe um rascunho de relatórios, dashboards apresentados
android - stand by
sincronização de usuários (?) fde manda a base cie
camada como um AD - integrações BD, AD, etc no desktop
bluecontrol - precisava de aluno e professor devido a permissão de horários em sala - provavelmente daria para remover o grupo de usuários
substituir ping de tunel ssh por um sinal de máquina ligada
seria possível montar um mapa igual da central de monitoramento apenas com o sinal de máquina ligada.
tipo de máquina (ver pelo processador) num primeiro momento, usar seleção manual, depois, ver pelo processador.
alertas de coisas fora do padrão: baidu, por exemplo no perfil, e-mail, tela máquina mudou o hardware e software
mapa geral das escolas ligadas e desligadas.
inventariado de software remover, bloquear, fora do padrão padrão - que nós enviamos associar, desassociar, desinstalar o pacote bloquear o software (desinstalar e não deixar mais)
Editar configurações da máquina (nome, usuário, localização, tipo da máquina)
Funcionalidades básicas - atômicas
- modelagem de dados, o que é um computador, onde está, o que é feito alimentação de dados de inventário, entrada saída, login logout, qto tempo (btracker + mongoDB) POC: buscar inventário de uma library java, ou wmi.
- inventários - características físicas hardware e software - reconhecer o parque de máquinas. Enviar apenas quando houver alteração. na primeira vez manda tudo, amanhã gera de novo, compara com o que tem (hash do pacote) se for idêntico, ignora o upload. - mais importante: HD (espaço em disco, softwares instalados) - processador, placa mãe, memória - para os técnicos monitorarem máquinas defasadas, etc - alertas de tempo de processador, memória, hd (se ficar mais de 80% durante 1h, manda alerta)
- localizações administrativas (endereço, domínio) - maquina com id tal, na sala Y, subscretaria X, da região, nível infinito hierárquico. (verificar gerador e validador de chaves do casella)
- usuários (coresso) - verificar performance (logar na uad) logar no sistema - número de requisições no core sincronizar nas estações - inseguro: banco local em cada máquina, token, openID.
- utilização desses usuários no login/logout (perguntar via api, não teremos servidor nas escolas, se não tiver internet, cada máquina terá um bd local )
relatórios - base dispositivos: utilização dos dispositivos, quantas máquinas com determinado processador, qtd memória, qtas máquinas tem qtos gigas, tamanho do hd, tipo de placa mãe, tipos de dispositivos (netbook, desktop, tablet, chromebook, etc), ligados e desligados (em det. período) uso de software: os do btracker + dados básicos por escola, por software, por data específico. acesso a internet: btracker (apenas título da janela, não mostra url), estudar se é possível buscar a url (sniffer, anti virus, etc) btracker tem diferença aluno/professor (?) quanto tempo aquele usuário perdeu naquele site. filtrar por domínio
licenças: software da mstech e do SO,
---
Updates Reformular o cadastro de updates (dependências - ex. instalar o update 2 se já tiver o 1) sem gerenciamento de dependências (cadastro de update dependente um do outro, pra essa primeira versão, continua como está, pelo número da versão) know-how - ok, já conhecemos as regras
Relatórios Atualizações (updates) o que foi atualizado, o que falta atualizar
Validador de licenças: quantos softwares foram licenciados para aquele cliente, quando instalar no client, ver se ainda existem licenças disponíveis. se não tiver, alerta o usuário e não deixa instalar.
05/01 - 9h
Wizard de instalação maq. laboratório - vefificar se tem algo no banco, se já foi configurada antes. acelerador - fazer separado do wizard se tiver um servidor, fica no servidor as configurações da máquina referentes a localização, range de ip, se tiver servidor, ele já configuraria, se tiver broadcast, validaria, e se não, busca no datacenter. localização, tipo, patrimônio, nome da máquina, numa máquina a gente configuraria, e nas outras, verifica esta instalação, ou fica num servidor de cache (segundo momento) - máquina mestra que vai servir como espelho pras outras, no momento de dar manutenção, pra definir localidade, updates (segundo momento) Tendo travas no wizard e no configurador, de não sair da tela a não ser se estiver tudo ok. a ideia é configurar pela web as máquinas tb. diminuir os passos de 2 pra 1, criar grupos individualmente e manualmente. Pensar em automação em outro momento.
asp.net core piloto 15 dias + postgres
Relatórios BTracker
De: André Ruz [1] Enviada em: quarta-feira, 28 de dezembro de 2016 11:00 Para: 'Thiago Froes' <thiago.froes@mstech.com.br>; 'Arnaldo Gerner Rosa' <arnaldo.gerner@mstech.com.br> Assunto: RES: Solicitações para os Blues
Nos relatórios que já existem, adicionar/alterar onde for possível:
1 – em todos os relatórios, filtrar por intervalo de data, para pegar o ranking exatamente daquele intervalo de data;
2 – Relatório por escola;
3 – Relatório por aplicação;