Skip to content

eduardoweiland/jasmine

Repository files navigation

JASMINE

JASMINE is Just Another SNMP Manager for Imaginary NEtworks.

Trabalho de Gerência e Administração de Redes UNISC 2015/2

Implementação

JASMINE é desenvolvido na linguagem PHP utilizando o framework CakePHP 3. A biblioteca utilizada para comunicação com os agentes é a extensão SNMP padrão do PHP, utilizando a API orientada a objetos disponível a partir da versão 5.4 do PHP.

Outras bibliotecas utilizadas no desenvolvimento da aplicação em PHP:

A interface web é desenvolvida utilizando os seguintes componentes e bibliotecas:

Interface

Lista de dispositivos Cadastro de novo dispositivo Detalhes de um dispositivo Tela de monitoramento

Instalação

O JASMINE pode ser instalado e executado de duas formas: manualmente ou utilizando um container Docker.

Manualmente

O JASMINE necessita de um servidor web (recomendado Apache) com suporte a PHP 5.4+ e um banco de dados MySQL. Para Ubuntu, o comando que deve ser utilizado para instalar esse pacotes é:

$ sudo apt-get install apache2 php5 php5-cli php5-intl php5-snmp php5-mysql mysql-server

Se for utilizado o Apache, é necessário que o módulo rewrite seja habilitado para o programa funcionar corretamente. Para habilitá-lo no Ubuntu:

$ sudo a2enmod rewrite

Outra configuração necessária do Apache é permitir que as opções globais sejam sobrescritas pelo programa. Para isso, é necessário editar o arquivo /etc/apache2/sites-available/000-default.conf e adicionar as seguintes linhas dentro das tags <VirtualHost>:

<Directory /var/www/html/jasmine>
    AllowOverride All
</Directory>

Depois dessas configurações serem feitas, é necessário reiniciar o Apache:

$ sudo service apache2 restart

Agora, o primeiro passo da instalação é baixar e descompactar o código-fonte e movê-lo para um diretório acessível pelo servidor web (ex.: /var/www/html/jasmine).

Em seguida, deve-se instalar as dependências (bibliotecas PHP) pelo Composer utilizando os seguintes comandos:

$ cd /var/www/html/jasmine    # deve estar dentro da pasta do código-fonte
$ curl -sS https://getcomposer.org/installer | php
$ php composer.phar install --no-dev --no-interaction

Um banco de dados deve ser criado no MySQL para ser utilizado pelo JASMINE. Para fazer isso no Ubuntu:

$ mysqladmin create jasmine -u root -p

Editar o arquivo config/app.php e configurar a conexão com o banco de dados. Deve ser configurada a conexão default. Exemplo de como ficaria a configuração para o banco de dados local, no banco de dados jasmine com usuário root e senha root:

// ...
'Datasources' => [
    'default' => [
        'className' => 'Cake\Database\Connection',
        'driver' => 'Cake\Database\Driver\Mysql',
        'persistent' => false,
        'host' => 'localhost',
        'port' => '3306',
        'username' => 'root',
        'password' => 'root',
        'database' => 'jasmine',
        // ...
    ]
]

Criar as tabelas no banco de dados utilizando o comando cake migrations:

$ bin/cake migrations migrate

Após esses passos, o JASMINE deve estar instalado e acessível pelo endereço http://localhost/jasmine. Caso algo não funcione (ao acessar a página seja exibida uma tela em branco, por exemplo), pode ser problema de permissões. O servidor web precisa ter permissões de escrita nas pastas tmp e logs dentro do diretório do código-fonte. O comando php composer.phar install deveria ter definidos as permissões para esses diretórios, mas caso seja necessário fazê-lo manualmente:

$ cd /var/www/html/jasmine
$ sudo chown www-data:www-data -R logs tmp
$ sudo chmod ug+rw

Ainda, se for utilizado um sistema operacional com SELinux (ex.: Fedora), esse também pode estar causando o problema. Uma solução rápida (mas não recomendada em ambientes reais -- pesquise no Google para saber como configurar corretamente) para poder testar o JASMINE é:

$ sudo setenforce 0

O último passo necessário é a configuração da cron para atualizar os dados dos dispostivos automaticamente. Isso é feito chamando o comando bin/cake query. A configuração da cron para chamar esse comando a cada 5 minutos, por exemplo, ficaria assim:

*/5 * * * * www-data /var/www/html/jasmine/bin/cake query

Docker

A instalação pelo Docker não foi totalmente testada, então podem ser encontrados alguns problemas no ambiente. O JASMINE, no entanto, está funcionando corretamente com este container, desde que haja um ambiente devidamente configurado para realizar os testes.

$ docker run --name jasmine -d -p 80:80 -p 161:161 eduardoweiland/jasmine-docker

Para mais detalhes, consultar o projeto jasmine-docker.

About

Just Another SNMP Manager for Imaginary Networks - Trabalho de Gerência de Redes - UNISC 2015

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published