O SLASS é uma ferramenta para gerenciamento de acordos de níveis de serviço.
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 SLASS não monitora nodos. Ele apenas gerencia os tickets de cada nodo que é monitorado por uma ferramenta externa.
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 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.
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:
A última versão do SLASS pode ser encontrada na página do projeto
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
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.
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.
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
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.
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.
Assim que você entrar no sistema você verá a tela de login:
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.
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.
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:
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 :-)
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.
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.
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.
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.
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.
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.
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.
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
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.
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.