Ocs Inventory é um software ou uma solução para gerenciamento de ativos: computadores e softwares. Ele, por exemplo, irá coletar detalhes como:
- Descrição do Computador: Conforme descrito na guia de identificação da caixa de diálogo de configurações de rede.
- Sistema Operacional: Sistema detalhado, informações do usuário, empresa cadastrada, proprietário registrado, produto registrado (ID)
- Programas: Informações conforme descrito em “Adicionar/Remover Programas” no Painel de Controle: nome, Editor, versão, idioma, nome da instalação, arquitetura (32 ou 64), lista de hotfix.
- Discos e Partições: Letras do disco lógico, tipo (USB, HDD, CD-ROM, rede, RAM…), sistema de arquivos (FAT, FAT32, NTFS…), tamanho total em MB, espaço livre em MB.
- Monitor: Fabricante, resolução, descrição, tipo, número de série.
Veja mais em: O que é Ocs Inventory?
Indiquei no título desse post que a instalação irá ser realizada no Linux. Sim, isso porque não há servidor Ocs Disponível para Windows. Mas os agentes(falaremos adiante) estão disponíveis para uma infinidade de dispositivos.
Esse artigo é baseado na documentação da página oficial do ocsinventory. Se quiser ver a versão em inglês acesse: ocsinventory-ng.org.
Para iniciarmos, saiba que o servidor OCS é composto por 4 componentes principais. Mas, geralmente, são todos instalados em um único servidor. Listo abaixo esses 4 componentes, mas não se preocupe se não entender de cara:
- banco de dados, que armazena informações de inventário. Sim, instalaremos um banco de dados. Escolhi o MariaDB. O servidor de banco de dados atualmente só pode ser MySQL 5.5 ou MariaDB com mecanismo InnoDB ativo.
- Servidor de comunicação, que lida com comunicações HTTP entre o servidor de banco de dados e os agentes. O servidor de comunicação precisa do Apache Web Server 2.2.X / 2.4.X e é escrito em PERL como um módulo Apache.
- Console de administração(ou Administration console), que permite aos administradores consultar o servidor de banco de dados usando seu navegador favorito. O console de administração é escrito em PHP 7 (ou superior) e é executado no Apache Web Server 2.2.X /2.4.X. O console de administração requer suporte a ZIP e GD ativado em PHP para usar a implantação do pacote.
- Servidor de implantação(ou Deployment server), que armazena todas as configurações de implantação de pacotes (requer HTTPS!). O servidor de implantação precisa de qualquer servidor Web com SSL ativado.
PERL é foi escolhido pela Instituição responsável pelo Ocs Inventory por questão de desempenho. Os scripts PERL são compilados quando o Apache é iniciado, e não a cada solicitação. Isso é melhor em termos de performance. O servidor de comunicação pode requerer alguns módulos PERL adicionais, de acordo com sua distribuição.
A página oficial do ocsinventory cita:
Esses 4 componentes podem ser hospedados em um único computador ou em computadores diferentes para permitir o balanceamento de carga. Acima de 10.000 computadores inventariados, recomendamos o uso de pelo menos 2 servidores físicos, um servidor de banco de dados de hospedagem + servidor de comunicação e outro servidor de réplica de banco de dados + servidor de administração + servidor de implantação.
Observações antes de Instalarmos o Servidor OCS Inventory
Obs.: o site ocsinvenroty-ng possui um pacote RPM para RedHat Linux e derivados. As instruções podem ser encontradas aqui: Instalar com RPM. Mas iremos instalar compilando já que trabalhar com pacotes pode nos prender ao mantenedor.
Usaremos o Debian em nosso laboratório mas funcionaria da mesma forma para qualquer distro, já quer compilaremos.
Programas Usados pelo Servidor OCS Inventory
Teremos, mais adiante, de instalar programas e pacotes para o bom funcionamento do OCS. Aqui apenas listo quais pacotes e bibliotecas usadas pelo OCS.
Podemos ver abaixo que iremos precisar de apache, PHP, PERL e o Make. Também de alguns módulos relativos a cada pacote. O site do OCS recomenda usar MariaDB como banco de dados.
- Apache versão 2.2 ou superior.
- Mod_perl versão 1.29 ou superior.
- PHP 7 ou superior, com suporte a ZIP e GD ativado.
- php_curl
- php_mbstring
- php_soap
- php_xml
- PERL 5.6 ou superior.
- Módulo Perl XML::Simple versão 2.12 ou superior.
- Módulo Perl Compress::Zlib versão 1.33 ou superior.
- Perl módulo DBI versão 1.40 ou superior.
- Módulo Perl DBD::Mysql versão 2.9004 ou superior.
- Módulo Perl Apache::DBI versão 0.93 ou superior.
- Módulo Perl Net::IP versão 1.21 ou superior.
- Módulo Perl SOAP::Lite versão 0.66 ou superior (opcional)
- Módulo Perl Mojolicious::Lite
- Módulo Perl Plack::Handler
- Módulo Perl Arquivo::Zip
- Módulo Perl YAML
- Módulo Perl XML::Entidades
- Interruptor do módulo Perl
- MySQL ou MariaDB versão 4.1.0 ou superior com mecanismo InnoDB ativo. A versão do Mysql superior a 5.5 não é suportada, mas pode funcionar.
- utilitário Make. Pode ser o GNU make.
O OCS Inventory verificará todos esses componentes e será interrompido se algum estiver faltando.
Instalando e Configurando o Banco de Dados MariaBD
EM DEBIAN, UBUNTU E DERIVADOS
Execute: apt install mariadb-server -y
root@debian11VM:~# apt install mariadb-server -y
EM REDHAT, CENTOS E DERIVADOS
Talvez seja necessário instalar o repositório epel-release. Execute dnf install epel-release
Execute: apt install mariadb-server -y
[root@oracle86 ~]# dnf install mariadb-server -y
INICIALIZE O BANCO DE DADOS
#1 iniciei o mariadb com systemctl start mariadb.service
[root@oracle86 ~]# systemctl start mariadb.service
#2 execute esse comando para iniciarmos o banco de dados: mysql_secure_installation
[root@oracle86 ~]# mysql_secure_installation
Resposta ás solicitações:
- Set root password? [Y/n] está perguntando se deseja criar uma senha para o usuário root do mariadb. Digitar y ou teclar Enter são a mesma coisa. Eu teclei Enter e criei uma senha
- Remove anonymous users? [Y/n] pergunta se desejamos remover o usuário anonymous(anônimo). Teclei Y para sim.
- Disallow root login remotely? [Y/n] deseja desabilitar o acesso remoto ao banco? em meu caso, apenas teclei Enter para confirmar que sim.
- Remove test database and access to it? [Y/n] quer remover o banco de dados de teste? Aqui teclei Enter para remover
- Reload privilege tables now? [Y/n] apenas teclei Enter para recarregar as tabelas
CRIE UM BANCO, USUÁRIO E SENHA
Veja também: MySQL para Iniciantes: Como criar usuário e conceder privilégios
#1 Agora crie o banco de dados. Chamarei de ocsweb. Abra o terminal e execute: [root@oracle86 ~]# mysql -u root -p -e “create database ocsweb;”
[root@oracle86 ~]# mysql -u root -p -e "create database ocsweb;"
liste os bancos existentes e veja o nosso recém criado.
[root@oracle86 ~]# mysql -u root -p -e "show databases;" Enter password: +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | ocsweb | | performance_schema | +--------------------+
#2 agora, vamos criar um usuário chamado ocs, ou outro nome que queira.no lugar de ‘minhasenha’ coloque uma senha. mysql -u root -p -e “CREATE USER ‘ocs’@’localhost’ IDENTIFIED BY ‘minhasenha’;”
[root@oracle86 ~]# mysql -u root -p -e "CREATE USER 'ocs'@'localhost' IDENTIFIED BY 'minhasenha';"
#3 conceda permissão(privilégio) para o usuário ocs em todas as tabelas que criaremos dentro do banco ocsweb.
#4 conceda permissão(privilégio) para o usuário ocs em todas as tabelas que criaremos dentro do banco ocsweb. mysql -u root -p -e “GRANT ALL PRIVILEGES ON ocsweb.* TO ‘ocs’@’localhost’;”
[root@oracle86 ~]# mysql -u root -p -e "GRANT ALL PRIVILEGES ON ocsweb.* TO 'ocs'@'localhost';"
#5 aplique as alterações configurações
[root@oracle86 ~]# mysql -u root -p -e "FLUSH PRIVILEGES;"
Pronto, lembre do nome do banco, do usuário e senha; iremos usá-los mais adiante.
Instalando o Servidor Web Apache
EM DEBIAN, UBUNTU E DERIVADOS
Execute a instalação do Apache
root@debian11VM:~# apt install apache2 -y
EM REDHAT, CENTOS E DERIVADOS
Execute:
[root@oracle86 ~]# dnf install httpd -y
Instalando PHP, PERL e Demais Módulos Requeridos
EM DEBIAN, UBUNTU E DERIVADOS
root@debian11VM:~# apt install libxml-simple-perl libdbi-perl libdbd-mysql-perl libapache-dbi-perl libnet-ip-perl libsoap-lite-perl libarchive-zip-perl make build-essential -y
e
root@debian11VM:~# cpan install XML::Entities
e também o pgp-gd
root@debian11VM:~# apt install pgp-gd
EM REDHAT, CENTOS E DERIVADOS
[root@oracle86 ~]# dnf install php-pecl-zip -y
[root@oracle86 ~]# dnf install perl-XML-Simple perl-Compress-Zlib perl-DBI perl-DBD-MySQL perl-Net-IP perl-SOAP-Lite perl-Archive-Zip perl-Mojolicious perl-Plack perl-XML-Entities perl-Switch -y
Alguns instalações do Fedora também requer:
[root@oracle86 ~]# dnf install php-common -y
Instale também o php-gd
[root@oracle86 ~]# dnf install php-gd -y
Baixando e Instalando o Servidor OCS
Baixe a versão mais recente do tarball do servidor OCSNG_UNIX_SERVER. Se você entrar no site do OCS terá que fazer um cadastro para ter o link de download enviado para seu email. Não acho isso legal e como já tenho o link em meu email disponibilizo aqui neste post: Links para Download do OCS Inventory
O link acima pode não conter a msis recente versão. Sempre compare com a versão do site: ocs-inventoty. Nessa data em que digito, a versão mais recente é a 2.11.1
#1 irei criar uma pasta chamada download e acesar ela
[root@oracle86 ~]# mkdir download
[root@oracle86 ~]# cd download/
#2 Abra o terminal e faça o download do ocs server usando wget. Execute wget https://github.com/OCSInventory-NG/OCSInventory-ocsreports/releases/download/2.11.1/OCSNG_UNIX_SERVER-2.11.1.tar.gz
[root@oracle86 download]# wget https://github.com/OCSInventory-NG/OCSInventory-ocsreports/releases/download/2.11.1/OCSNG_UNIX_SERVER-2.11.1.tar.gz
#3 extraia o conteúdo do arquivo tar.gz
[root@oracle86 download]# tar xf OCSNG_UNIX_SERVER-2.11.1.tar.gz
#4 acesse a pasta extraída e execute o instalador setup.sh
Execute cd OCSNG_UNIX_SERVER-2.11.1
[root@oracle86 download]# cd OCSNG_UNIX_SERVER-2.11.1/
Execute sh setup.sh
[root@oracle86 OCSNG_UNIX_SERVER-2.11.1]# sh setup.sh
#5 irá aparecer um monte de perguntas em inglês. Tecle Enter em todas. mas se quiser detalhes veja abaixo.
Mas uma vez, pode só ir teclando Enter, mas fique de olho se erros serão gerados. E, ao final, se aparecer algum erro em algum módulo faltante, tecle y para que o setup.sh instale ele para você. Atenção: a resposta padrão ás vezes será N, terá que ir teclando y para prosseguir.
- Do you wish to continue ([y]/n)? Tecle Enter. Está perguntando se desejamos continuar, pois se já tiver o OCS instalado terá que ver os arquivos existentes. Temos um artigo sobre: Atualizando o Servidor OCS.
- Which host is running database server [localhost] ? Tecle Enter. está tudo no mesmo(localhost) servidor
- On which port is running database server [3306] ? Tecle Enter. a porta padrão não foi alterada.
- Where is Apache daemon binary [/usr/sbin/httpd] ? Só tecle enter. está perguntando onde está localizado o executável(daemon) do apache. Ou, se quiser confirmar, execute which httpd
- Where is Apache main configuration file [/etc/httpd/conf/httpd.conf] ? Tecle Enter. esse é o arquivo de configuração do apache
- Which user account is running Apache web server [apache] ? Só tecle enter. o usuário apache o usuário para o servidor web no Redhat e derivados. No Debian e Ubuntu iria aparecer www-data.
- Which user group is running Apache web server [apache] ? Só tecle enter. O grupo também é apache
- Where is Apache Include configuration directory [/etc/httpd/conf.d] ? Só tecle enter. esse caminho é o caminho do arquivo de configuração do apache no Redhat e derivados. Mudaria no Debian.
- Where is PERL interpreter binary [/usr/bin/perl] ? Só tecle enter. aqui pergunta se o programa perl está nesse caminho /usr/bin/perl
- Do you wish to setup Communication server on this computer ([y]/n)? Só tecle enter. está perguntando se realmente deseja configurar o servidor de comunicação OCS em seu pc. Bom…… ):
- Where to put Communication server log directory [/var/log/ocsinventory-server] ? Só tecle enter. vamos deixar o arquivo de log sendo esse mesmo.
- Where to put Communication server plugins configuration files [/etc/ocsinventory-server/plugins] ? Só tecle enter. vamos deixar o diretório de plugins do ocs sendo esse mesmo.
- Where to put Communication server plugins Perl modules files [/etc/ocsinventory-server/perl] ? Só tecle enter. vamos deixar o diretório de plugins do perl sendo esse mesmo.
- ….. Só tecle enter.
Outras perguntas aparecerão, basta ir digitando Y e teclando Enter.
#6 Reinicie o apache
No Debian e derivados:
[root@oracle86 download]# systemctl restart apche2
No Redhat e derivados
[root@oracle86 ~]# systemctl restart httpd
Configurando o servidor de gerenciamento
Abra um navegador em um computador e acesse o ip do seu servidor ocs da seguinte forma:
http://seu-ip-/ocsreports
Por exemplo, se meu ip é 192.168.50.1 então acessarei assim:
http://192.168.50.1/ocsreports
A janela abaixo irá aparecer. Preencha os campos com os dados do banco de dados que criamos acima
- MySQL login: ocs
- MySQL password: a senha do banco
- Name of Database: ocsweb
- MySQL HostName: localhost
Você será levado para a tela de login
O usuário e senha são admin admin
A próxima etapa é instalar o agente nos dispositivos para que o OCS colete informações e faça o inventário.
Outros ajustes também veremos em outros artigos, como configurar o OCS para ter segurança criptografada e outros pequenos ajustes.
Cara, fiz tudo exatamente como está aí 3x, mas sigo tendo o erro “Error 404 ” e fala que essa Url (Meu webserver/ocsreports) não existe.
Alguma luz do que pode ser
Olá,
– veja se o apache está iniciado: sudo systemctl start apache2
– veja se não há bloqueio de portas no firewall
– se for CentOS ou similares, tente ver se o o Selinux não está bloqueando