Arquivo da tag: Backup

Backup do GLPI e Abertura de Chamado com API

Resumo do script:

Este script desenvolvido pela Servicedesk Brasil faz o backup do banco de dados e aplicação do GLPI e em seguida já abre um chamado com o resultado do script + informações que podem ser importante em uma tarefa de verificação da execução deste backup.

Pense nas possibilidades que trabalhar com APIs podem ser trazidas para a operação:

  • Conceito de variáveis para qualquer integração em Shell
  • Select via BD
  • Search dentro da API (script)
    • Dependendo do valor, abrir um chamado
  • Faz select em outro banco e abre chamado no GLPI
  • Dados de formulário e abrir chamado dentro do GLPI
  • Trigger do Zabbix e joga para dentro de um chamado de GLPI

Vamos ao que interessa:

Para quem tiver interesse, o Danilo Santos explicou tim-tim por tim-tim cada passo para fazer o script ser executado.

O acesso ao script para download você tem no nosso repositório do Github

O vídeo você encontra no meu canal ou no da Servicedesk Brasil. Aproveita e já se inscreve nos dois!

Você gostaria de ajudar o blog de alguma forma?

Configurar a URL da API

Liberar os hosts e conexões com permissão a conectar na API

Nome para a conexãoEntidades Filhas SimAtivo SimRegistrar log de conexões

  • Histórico: vai para o banco de logs – Menos acessos, cresce o banco de dados de logs
  • Logs: Gerar arquivo de log – Muito acesso, cresce o arquivo de log

Configurar e Habilitar a API

Configurar > Geral > API

  • Habilitar a API Rest = Sim
  • Habilitar login com credenciais = Sim
  • Habilitar que se faça login com token externo = Sim
  • Se você tiver entidades filhas, marque a caixinha Entidades Filhas = Sim para que você consiga executar a API não só na Entidade Raíz mas também nas filhas

Configurar Cliente de API

Por segurança a API do GLPI precisa ser habilitada e também devemos definir quais serão os hosts que terão acesso à esta API. Este é o princípio do menor privilégio.

  • Se você for usar a API apenas na rede interna, libere apenas para a rede interna.
  • Se apenas um host criará sessões na API, libere apenas para o endereço deste host.
  • Exemplos de Endereços de Cliente de API:
    • Toda rede interna 10.1.1.0 – 10.1.1.254
    • Qualquer rede (ZONA DE PERIGO) 0.0.0.0 – 0.0.0.0
      • Lembre-se que qualquer equipamento conectado e com acesso ao seu servidor pode ter acesso à API e a amarração de token e credenciais deve ser ainda mais ajustada.
    • Apenas um IP 10.1.1.254 – 10.1.1.254
    • Apenas Localhost 127.0.0.1 – 127.0.0.1
  • Na primeira configuração do Cliente da API você deve usar o re-gerar no token da aplicação para que a ferramenta crie um token para ser usado no script depois

Configurada a API e o cliente de API, que para este caso será o próprio localhost o executor do backup, partimos para a configuração do perfil e usuário para o serviço de backup.

Criação de perfil e usuário de Serviço específico para o Backup

Outra boa prática é você gerar um perfil ESPECÍFICO para um usuário reservado para realização de Backups. Desta maneira você não corre dois riscos:

  1. O script para de funcionar porque alguém mexeu num usuário que é usado para mais de uma finalidade e talvez nem todos saibam todas estas finalidades
  2. Você tem certeza de quais são os acessos e permissões que o usuário tem dentro do GLPI.

Criando um perfil para o backup

  • Em Administração > Perfis, crie um novo perfil.
  • Dê um nome para este perfil e selecione a Interface padrão como a Interface do perfil.
  • Navegue em cada módulo e desmarque TODAS AS CAIXINHAS de permissões que este usuário não precisará acessar.
  • Para este exemplo, o usuário precisa APENAS de acesso à CRIAÇÃO DE CHAMADOS. Portanto
    • Aba Assistência > Chamados > Criar
  • Os demais acessos podem e devem ficar desativados por segurança

Criando um usuário

  • Em Administração > Usuários, crie um novo usuário.
  • Atribua o perfil criado anteriormente na Entidade desejada. Neste exemplo deixarei na Raiz com acesso Recursivo

Você vai precisar criar uma Regra de Negócio, Grupo, Categoria e buscar as IDs destes itens para alimentar o script posteriormente.O script:

  • Liga com Grupo via Regra de Negócio
  • Insere origem da Requisição
  • Insere o Tipo de chamado definido na API
  • Insere um título definido via script Título – Texto + Data e Hora
  • Descrição
    • Ele executa comandos do Linux para descrever o que foi salvo, tamanho salvo e etc.

Estruturação do Backup no Linux

  • Crie uma estrutura de pasta para armazenar o seu script de backup
  • Neste exemplo vamos usar a seguinte estrutura:
    • Pasta /backup
      • Dentro desta pasta, duas outras chamadas, app e sql
      • Na app vamos salvar a Aplicação do GLPI
      • Na sql vamos salvar o MySQLdo GLPI

Definindo os diretórios do GLPI via downstream.php

Documentação oficial sobre o downstream e dicas de segurança

  • Por padrão a configuração dos diretórios do GLPI, ou seja, o caminho que o GLPI vai usar para encontrar os diretórios, pode ser verificada ou alterada no arquivo glpi/inc/downstream.php.
    • Estes caminhos podem ser alterados para quando você precisa colocar a aplicação ou seus anexos em uma storage, por exemplo, e retirar a pasta files de dentro da pasta do servidor de aplicação.
  • Para o exemplo, vamos abrir o arquivo e verificar onde estão definidos os caminhos da pasta de anexos e de logs para fazer o backup destas também.
  • Veja que os arquivos de anexos está em /var/lib/files
  • Os logs em /var/log/glpi

Entendendo o script de Backup

Acesse o script no nosso github.

  • Faça o download do script e salve no seu servidor do GLPI
  • Configure os acessos da API dentro do script
#!/bin/bash
#Backup + Chamado no GLPi via API
#Autor = Servicedesk Brasil | Danilo Santos, Danilo Motta
#Versao = 2.1 - Data atualizacao = 05-MAI-21
#API GLPI Acessos

GLPI_URL_API='https://travessia.glpibrasil.com.br'
GLPI_APP_TOKEN='GZU5W7PEadpt9arPgFXt8LGsYiC7GnSsuOkxNHY5';
GLPI_USER_TOKEN='3AU4DS1s1Dcjy09Y5EkSktc2mm3tqiwSimuJHfPf';
GLPI_ID_ENTIDADE=0;						#ID da entidade de abertura do chamado
GLPI_ID_CATEGORIA=148;						#ID da categoria
GLPI_ID_TIPO=2;							#Tipo de chamado [1=Incidente, 2=Requisição]
GLPI_ID_ORIGEM_REQUISICAO=8;					#Origem da requisição, é de onde veio o chamado(Exemplo '1' é o Helpdesk)
  • GLPI_URL_API que é a URL da API que definimos lá no primeiro passo Configurar > Geral > API;
  • GLPI_APP_TOKEN que é o token da aplicação que liberamos na configuração da API Configurar > Geral > API;
  • GLPI_USER_TOKEN que é o token de segurança do usuário que criamos para o usuário de serviço para o backup Configurar > Administração > Usuários > Usuário do backup > API Token;
  • GLPI_ID_ENTIDADE aqui vamos usar a Raiz, então vai ser 0 mas pode ser a entidade que você precisar;
  • GLPI_ID_CATEGORIA Buscar a ID da categoria criada para este tipo de chamado;
  • GLPI_ID_TIPO Aqui será Incidente, se fosse Requisição seria, 1;
  • GLPI_ID_ORIGEM_REQUISICAO é de onde este chamado está vindo. Exemplo ID = 1 é Helpdesk.

Definidos os parâmetros de acesso à API, vamos para a parte de definição dos diretórios a serem salvos e para onde vão os arquivos

BACKUP_DIR_SQL='/backup/glpi/sql';				#Diretorio de destino Backup SQL 
BACKUP_DIR_APP='/backup/glpi/app';				#Diretorio de destino Backup Aplicacao
BACKUP_DIR_FILE='/backup/glpi/app';				#Diretorio de destino Backup Files/Anexos
BACKUP_DIR_LOG='/backup/glpi/app';				#Diretorio de destino Backup Logs
LOGFILE='/var/log/glpi/backup.log';				#Saida do LOG

Acima estão os diretórios PARA ONDE o sistema vai enviar os arquivos de backup

DBCONFIG='/etc/glpi/config_db.php';
DBUSER=`grep "dbuser" $DBCONFIG | cut -d "'" -f 2`;
DBPASS=`grep "dbpassword" $DBCONFIG | cut -d "'" -f 2`;
DBNAME=`grep "dbdefault" $DBCONFIG | cut -d "'" -f 2`;

Nestes parâmetros o sistema vai buscar os dados de acesso ao banco de dados do GLPI
Se você usa o modo de instalação tarball, talvez precise colocar os parâmetros de login e senha do banco no arquivo do script conforme abaixo.

  • Aqui uma dica é usar um usuário com acesso apenas de leitura no banco de dados.
  • Jamais o root.
#DBNAME='glpi';
#DBUSER='glpi';
#DBPASS='[email protected]';

A execução do script você pode acompanhar a partir dos 41:30 no vídeo.

Referências citadas no vídeo:
Thiago Passamani – http://www.thiagopassamani.com.br/blog/script-backup-do-glpi-mysql-e-diretorios-para-linux.html
Allan Lopes – https://github.com/allanlopesprado/Backup-GLPI


Treinamentos GLPI

GLPI Gratuito
GLPI Essencial e Fundamental
GLPI Expert – Torne-se um Especialista em GLPI
GLPI UX + CSC – Melhore a Experiência do Usuário
GLPI BI com Metabase – BI Open Source
GLPI – Pacote Completo Travessia 2020

➤ Site: https://www.arthurschaefer.com.br
➤ Instagram: https://instagram.com/arthurrschaefer
➤ Facebook: https://facebook.com/arthurschaefercombr
➤ LinkedIn: https://br.linkedin.com/in/arthurramosschaefer
➤ Twitter: https://www.twitter.com/arthurrschaefer
➤ Inscreva-se no Canal: https://www.youtube.com/ArthurSchaefer
➤ Canal no Telegram: https://t.me/arthurschaefer
➤ Baviera TI: https://www.bavierati.com.br
➤ Servicedesk Brasil: https://www.servicedeskbrasil.com.br
➤ Conheça a Teclib Cloud: https://www.arthurschaefer.com.br/glpicloud

GLPI — Perdi acesso de super admin do GLPI

Primeiramente, Feliz 2017 para todos os leitores do blog! Que esse ano seja de muitas conquistas para todos nós!

Sabe aquele momento que você está mexendo nas permissões de perfis do GLPI e, sem querer, você tira o acesso do único administrador do sistema? O que fazer? Subir um GLPI do zero? Recuperar Backup?

Talvez sejam boas soluções, mas eu tenho uma melhor. Que tal recuperar aquele acesso através do banco?

Para isso, as únicas informações necessárias são usuário e senha com acesso total ao banco de dados, o nome do usuário administrador, e o nome do perfil que tem permissão de administração do sistema. Se não foi alterado no momento da configuração do sistema, o nome é super-admin.

Você gostaria de ajudar o blog de alguma forma?

Para facilitar estou utilizando o phpmyadmin, mas se você quiser, pode fazer pela console do servidor mesmo. Só acho bastante ruim de visualizar as informações das tabelas.

Veja o vídeo abaixo.

➤ Site: https://www.arthurschaefer.com.br
➤ Instagram: https://instagram.com/arthurrschaefer
➤ Facebook: https://facebook.com/arthurschaefercombr
➤ LinkedIn: https://br.linkedin.com/in/arthurramosschaefer
➤ Twitter: https://www.twitter.com/arthurrschaefer
➤ Inscreva-se no Canal: https://www.youtube.com/ArthurSchaefer
➤ Canal no Telegram: https://t.me/arthurschaefer
➤ Baviera TI: https://www.bavierati.com.br
➤ Servicedesk Brasil: https://www.servicedeskbrasil.com.br
➤ Conheça a Teclib Cloud: https://www.arthurschaefer.com.br/glpicloud