SLASS - SLA Simple System

Projetado hospedado por
SourceForge.net Logo

Sumário

Informações gerais
O que é o SLASS?
O que o SLASS faz?
O que o SLASS não faz?
Quem desenvolve o SLASS?
O que o SLASS usa para funcionar?
Futuro
Download
Contato
Instalação
Requisitos
Preparando o Banco de Dados MySQL
Como deve ser o formato do ticket
Copiando os arquivos
Configurando o poller
Usando o SLASS
Logando-se pela primeira vez
Eventos Abertos
Eventos Fechados
Motivos
Nodos
Contatos
Relatórios
Glossário

Informações gerais

O que é o SLASS?

O SLASS é uma ferramenta para gerenciamento de acordos de níveis de serviço.

O que o SLASS faz?

O SLASS foi criado para suprir uma necessidade que existia no controle de informações sobre as métricas de níveis de serviço. Mesmo ele sendo chamado de SLA Simple System, ele não pode ser considerado um sistema de controle de SLA completo pois ele não faz as medições das métricas existentes nos acordos. O SLASS apenas controla as informações. Para fazer o monitoramento é necessesário uma outra ferramenta, como por exemplo Nagios, mon etc. Essas ferramentas devem ser capaz de fornecer um ticket com informações para o SLASS.

O SLASS tem um script que verifica a existência de um ticket criado pela ferramenta de monitoramento, esse script é chamado de poller. Quando o poller é executado, geralmente a partir do crontab do sistema, esse faz o cadastramento com todas as informações existentes no ticket (hora do evento, IP do host, tipo de evento). Após o cadastramento é possível gerenciar os tickets pela interface web do sistema, aonde eles podem ser editados, removidos, justificados, duplicados. Ainda existe a possibilidade de se criar um ticket pela interface do sistema.

A interface web faz o relacionamento das informações de todos os tickets para encontrar suas contra-partes e indicar um evento que ocorreu. Por exemplo, caso seja registrado um ticket de queda de um nodo, até que o ticket de retorno do mesmo nodo seja cadastrado, o evento é considerado um evento órfão (O mesmo vale para o caso do ticket de retorno ser cadastrado primeiro). Quando o ticket de retorno é cadastrado o evento passa a ser considerado um evento aberto. Quando é registrada uma ocorrência para o evento, ele passa a ser considerado um evento fechado.

Com essas informações o SLASS pode gerar os relatórios para acompanhar os níveis de acordo de serviço.

O que o SLASS não faz?

O SLASS não monitora nodos. Ele apenas gerencia os tickets de cada nodo que é monitorado por uma ferramenta externa.

Quem desenvolve o SLASS?

O SLASS foi criado a partir de uma idéia dentro do PoP-PR para o controle mais simples dos eventos dos clientes. O software todo foi projetado por Pedro Torres, Christian Lyra e Paulo Ruthes. O desenvolvimento do SLASS é feito por Paulo Ruthes em PHP.

O que o SLASS usa para funcionar?

O SLASS depende apenas de um servidor web com PHP e um banco de dados MySQL para funcionar além da ferramenta externa de monitoramento para geração dos tickets. Internamente, o SLASS faz uso de mais três projetos em PHP: ADODB1, Smarty2 e PHPMailer3.

Futuro

O SLASS ainda está em desenvolvimento, apesar de ser considerado estável. Ainda podem existir bugs ou recursos faltando. Dentre as principais funcionalidades que ainda faltam no SLASS estão:

Download

A última versão do SLASS pode ser encontrada na página do projeto

Contato

Para contato sobre bugs, informações e outras dúvidas sobre o código do SLASS
Paulo Vinícius Vitto Ruthes - paulo (EM) pop-pr.rnp.br
Para informações adicionais sobre o SLASS
PoP-PR - info (EM) pop-pr.rnp.br

Instalação

Requisitos

O SLASS necessita de um servidor web com suporte à PHP e um servidor de banco de dados MySQL. No caso do servidor web é recomendado o uso do servidor Apache, tanto na versão 1.x ou 2.x
Ainda é necessário uma ferramenta externa de monitoramento de nodos que possa gerar tickets para o poller do SLASS.

Preparando o Banco de Dados MySQL

Para utilizar o SLASS é necessário que exista uma Banco de Dados com acesso total para o SLASS. Acesse o BD MySQL como o usuário principal (normalmente root) e crie uma base de dados qualquer, por exemplo bd_slass:

mysql> CREATE DATABASE bd_slass;

Após criada a base de dados, dê acesso irrestrito à um usuário que será utilizado pelo SLASS, por exemplo slass_user:

mysql> GRANT ALL on bd_slass.* TO 'slass_user'@'localhost' IDENTIFIED by 'SENHA';

Preste atenção na parte de SENHA, ela será a senha de acesso ao BD. Existe um problema entre versões mais recentes do MySQL e do PHP (versões 4.1.x e 5.x respectivamente) em que o acesso não pode ser feito. Isso se deve ao fato do cliente para MySQL do PHP estarem desatualizados — isso acontece em Sistemas Debian GNU/Linux atualmente. A solução é alterar a senha para o estilo antigo do MySQL:

mysql> SET password FOR 'slass_user'@'localhost' = OLD_PASSWORD('SENHA');

Após tudo isso, não esqueça de recarregar os privilégios do Banco de Dados:

mysql> flush privileges;

Nesse momento você já tem uma base de dados bd_slass cujo acesso é irrestrito para o usuário slass_user com a senha SENHA. Agora basta apenas carregar toda a estrutura da base do SLASS que está em install/slass-structure.sql:

usuario@maquina:~/slass/install$ mysql -u slass-user -p bd_slass < sql-structure.sql

Digite a senha quando for pedido e assim que acabar você ganhará acesso à shell novamente. O seu banco de dados estrá pronto, e por padrão é criado um usuário Admin com a senha admin que você deve alterar a senha assim que logar no sistema.
Observação: Todos os passos feitos até agora, podem ser executados de outras maneiras em especial por esse ser um método mais próximo de UNIX. Um exemplo de outro método seria utilizando o phpMyAdmin.

Como deve ser o formato do ticket

O formato do ticket para o SLASS é como segue:
Nome do arquivo: deve ser um identificador único, pois dentro do Banco de Dados é esse nome que servirá de chave para que não exista outro ticket ocasionando um erro — nós sugerimos o uso do PID do processo que monitorava o host concatenado com o timestamp da máquina no momento da geração do ticket, também conhecido como time since Epoch.
Conteúdo do arquivo:

1:      IP                      => IP do host monitorado
2:      TIMESTAMP               => TIMESTAMP no estilo EPOCH
3:      TIPO_DE_EVENTO          => 1 para QUEDA e 2 para RETORNO
4:      NOME_DO_ARQUIVO

Exemplo:
nome do arquivo: 9001106435441

192.168.0.1
1106435931
2
9001106435441

Copiando os arquivos

Antes de copiar os arquivos para seu servidor web, você deve alterar as configurações de acesso ao BD manualmente editanto os arquivos /inc/common.php e /slassspool.php:
common.php - procure as seguintes linhas e altere de acordo:

// valores do bd -- MUDE MANUALMENTE
$db = array(
        'host' => '',
        'user' => '',
        'pass' => '',
        'db' => ''
        );

slassspool.php - procure as seguintes linhas e altere de acordo:

<?
$m_host    = "";
$m_user    = "";
$m_pass    = "";
$m_dbase   = "";

A configuração padrão dos cookies para controle de usuários logados assume que o SLASS será acessado por http://seudominio.tdl/slass/. Caso você utiliza outro diretório, você deve alterar as configurações dos cookies - para isso é fornecido um script shell que faz a troca em todos os arquivos necessários:

maquina:/var/www/slass# ./troca.cookie.sh estatisticas

Aonde estatisticas é seu diretório do SLASS. Infelizmente esse script só funciona em sistemas UNIX. Se alguém quiser fazer um método para outros sistemas operacionais, só enviar :-)

Após tudo isso, o SLASS está pronto para ser enviado ao servidor web e acessado pela primeira vez.

Configurando o poller

Agora que o SLASS já está instalado, temos de alimentá-lo com tickets, e para isso o poller deve ser configurado adequadamente. Você já configurou-o para ter acesso correto à base de dados, agora deve configurar aonde estarão os tickets para eles serem analisados.
Criando os diretórios: Antes de mais nada você deve criar um diretório aonde serão armazenados os tickets e seus subdiretórios, por exemplo, /var/slass/:

maquina:/var# mkdir slass
maquina:/var# mkdir slass/incoming
maquina:/var# mkdir slass/inserted
maquina:/var# mkdir slass/error

Com isso, você já terá aonde salvar seus tickets, basta apenas configurar o slassspool.php de acordo:

//diretorio base do spool
$s_dir    = "/var/slass";

IMPORTANTE: não coloque a barra (/) final na configuração do diretório base do SLASS no slassspool.php.

Agora, basta apenas adicionar ao CRON (ou qualquer que seja seu gerenciador para executar tarefas em horários pré-definidos) para executar o poller a cada 5 minutos:

*/5 * * * * /var/slass/slassspool.php >> /tmp/spoolog

O /tmp/spoolog é apenas um local aonde as mensagens do poller serão guardados.

Usando o SLASS

Logando-se a primeira vez

Assim que você entrar no sistema você verá a tela de login:

Login
Clique para ampliar

Após logado, você terá a seguinte tela, aonde você visualizará (quando houverem) os últimos 5 eventos abertos do SLASS e também terá acesso a todas as opções do SLASS - essa opções são disponíveis em todos os momentos do sistema.


Clique para ampliar

No menu à esquerda você pode criar os Nodos (hosts monitorados), Motivos para as Ocorrências e Contatos que são associados a um ou mais nodos. Seguindo iremos tratar cada uma das entradas do menu á esquerda.

Eventos Abertos

Nessa área você poderá fechar eventos - individualmente ou em um grupo de 2 ou mais, inserir eventos abertos e filtrar a lista de eventos que estão abertos para facilitar a visualização. Para inserir um evento aberto, basta clicar no link inserir evento aberto que aparece logo abaixo da caixa de pesquisa e a seguinte tela irá aparecer:


Clique para ampliar

Nesta tela você seleciona quando o nodo caiu e quando ele voltou - com precisão de segundos inclusive, e a qual nodo esse evento pertence. Você pode adicionar à um nodo somente ou para todos. (Uma das possíveis features que faltam no SLASS é a possibilidade de adicionar eventos a mais de um nodo sem ser para todos). Após configurar as opções virá uma tela de confirmação e você será redirecionado para a tela de Eventos Abertos aonde agora há um evento aberto :-)


Clique para ampliar

Para cada evento, você pode preencher o formulário com as informações disponíveis sobre cada evento, e fechá-lo. Existe ainda a possibilidade de editar o Evento ou Removê-lo. A área de edição do evento é semelhante à de inserção de um evento aberto. Quando houver mais de um evento aberto, as opções de remover eventos marcados e fechar eventos marcados aparecerá e será possível remover ou fechar vários eventos de uma só vez. Basta selecionar a caixa que aparece ao lado do nome e IP do nodo a qual o evento pertence e selecionar uma das opções em massa no fim da página. Quando qualquer número de eventos é fechado, ele deixa de aparecer na lista de Eventos Abertos e ao término da execução do fechamento, o SLASS retorna à página de Eventos Abertos.

Eventos Fechados

A área de Eventos Fechados, serve assim como a de Eventos Abertos para visualizar os eventos mas agora mostrando também a Ocorrência (justificativa) de cada evento.


Clique para ampliar

Assimo como em Eventos Abertos, você pode editar e remover eventos (vários de uma só vez se quiser), porém também pode editar ou remover uma ocorrência. No caso de editar uma ocorrência, o formulário segue o mesmo formato do formulário de fechamento de um evento.
Na lista de eventos, caso o texto Programado esteja em azul, passando o mouse em cima do texto, uma janela com a informação do horário programado irá aparecer.


Clique para ampliar

Assim como em Eventos Abertos é possível adicionar um evento fechado manualmente. A diferença de inserir um evento aberto e fechado é justamente que ao inserir um evento fechado manualmente, você já estará colocando junto a ocorrência daquele evento.


Clique para ampliar

Motivos

Motivos é aonde são adicionados os motivos a serem usados nas ocorrências para eventos. Um motivo vem como motivo padrão: Motivo indeterminado. Para inserir um motivo basta selecionar no menu Inserir motivo e digitar o texto do motivo. A lista de motivos permite que um motivo seja editado ou removido.


Clique para ampliar

Nodos

Um Nodo é um host para o qual um evento é associado. Inicialmente não há nenhum nodo inserido, e assim, como acontecerá sempre que um evento for gerado para um endereço IP desconhecido, o evento é considerado de Nodo Desconhecido. Asssim como em Motivos, não há segredo para a inserção, edição e remoção de nodos.


Clique para ampliar

Contatos

A lista de Contatos é a lista de emails (pessoas) que receberão os relatórios que você gerar e desejar enviar. Ele funciona como uma lista de autorização. Em Inserir contato você dará um nome a esse grupo de pessoas, adicionará todos os emails que receberão e, principalmente, irá adicionar na lista quais relatórios essas pessoas estão autorizadas a receber.


Clique para ampliar

Basta apenas selecionar os nodos na lista da esquerda e movê-los à lista da direita e esse grupo de pessoas estará autorizado a receber relatórios desses nodos.
Em Listar Contatos aparecerão todas as listas de contatos que você criou, juntamente com a lista Sem Lista que é apenas uma lista "fantasma". Como nas outras seções, você pode remover ou editar uma lista nessa seção


Clique para ampliar

Relatórios

A geração de relatórios do SLASS conta com opções diversas cada uma com uma ? que informa qual sua função. Após selecionar o período, quais nodos e as outras opções, basta gerar o relatório e uma página com informações em modo texto será retornada.

Relatório
Clique para ampliar

Aonde Indisponibilidade Ajustada e Disponibilidade Ajustada refletem os valores corrigidos considerando o período que um nodo estava fora do ar mas era programado previamente. Ao lado de cada resultado por nodo, você terá a opção de enviar aquele relatório a quem possa recebê-lo.

Glossário

crontab: ferramenta UNIX-like para agendamento de tarefas
evento: nome dado quando às informações sobre queda e/ou retorno de um nodo no SLASS
evento aberto: um evento com queda e retorno registrados mas que ainda não tem ocorrência registrada
evento fechado: um evento com queda e retorno registrados e também com ocorrência cadastrada
evento órfão: um evento com somente queda ou somente retorno registrado
ocorrência: nome dado à justificativa associada com um evento
script: um programa interpretado — normalmente refere-se à programas em bash
SLA: abreviação para Service Layer Agreement — Acordo de Nível de Serviço
ticket: um arquivo contendo informações sobre a queda ou retorno de um nodo
1 http://adodb.sourceforge.net/
2 http://smarty.php.net/
3 http://phpmailer.sourceforge.net/