Instalando o Smokeping no Ubuntu 14.04.1

tux-ubuntuO Smokeping é um software Livre e Open Source escrito em Perl por Tobi Oetiker, o criador do MRTG e do RRDtool. O Smokeping é uma ferramenta de monitoramento que permite acompanhar a latência de rede.

Por meio da sua interface web, o Smokeping apresenta vários gráficos, que permitem acompanhar o histórico da latência. A medição da latência pode ser realizada utilizando-se vários plugins  diferentes, como por exemplo a medição da latência de servidores web.

Este artigo apresenta um passo a passo para a instalação do Smokeping no Ubuntu Linux 14.04


Passo 1: Atualizando a lista de pacotes

Antes de iniciarmos o processo de instalação de qualquer aplicação é importante garantir que todos os pacotes instalados estão atualizados e que nenhuma dependência está quebrada, o que impediria a instalação de nova pacotes. Os três comandos abaixo podem ser utilizados para este processo.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -f

Passo 2: Instalando a aplicação e suas dependências

Com todos os pacotes atualizados e configurados corretamente, podemos utilizar o comando abaixo para a instalar o smokeping e suas dependências

sudo aptitude install smokeping curl libauthen-radius-perl \
libnet-ldap-perl libnet-dns-perl libio-socket-ssl-perl \
libnet-telnet-perl libsocket6-perl libio-socket-inet6-perl \
apache2

Passo 3: Ajustando o Apache

Para ter acesso aos gráficos do smokeping precisamos de um servidor web, neste caso utilizamos o Apache; para evitar que servidor web exponha informações desnecessárias, trocaremos o arquivo index.html padrão, por um arquivo vazio.

mv /var/www/html/index.html  /var/www/html/index-original.html
touch /var/www/html/index.html

Agora podemos habilitar, no apache,  o modulo mod_cgi e as configurações responsáveis por liberar o acesso aos gráficos gerados pelo smokeping . O mod_cgi será utilizado pelo Smokeping para expor a interface web e seus gráficos

cd /etc/apache2/conf-available
sudo ln -s ../../smokeping/apache2.conf smokeping.conf
sudo a2enconf smokeping
sudo a2enmod cgid
service apache2 restart

Passo 4: Configurando o Smokeping

Terminada as configurações básicas podemos iniciar a configuração do Smokeping e definir como ele deverá monitorar a latência. Os arquivo de configuração do smokeping ficam armazenados no diretório /etc/smokeping/config.d

Passo 4.1:Ajustando o arquivo General

Iniciaremos  ajustando as configurações genéricas, que dizem respeito ao ambiente onde a aplicação está sendo instalada. Execute o comando abaixo para iniciar a configuração:

nano /etc/smokeping/config.d/General

Altere as seguintes linhas:

owner    = Projeto SGS
contact  = projeto-sgs@sgs.br     
mailhost = 127.0.0.1

A variável owner armazena a string utilizada para identificar o responsável pela instalação da ferramenta;  contact armazena o e-mail de contato com o administrador da ferramenta e mailhost é o endereço IP da máquina que possui o serviço de e-mail utilizado para enviar as mensagens de alerta, geralmente podemos deixar esta variável igual à “127.0.0.1

Passo 4.2 :Ajustando o arquivo Alerts

Este arquivo define as contas de e-mail utilizadas para envio e recebimento dos alertas, execute o comando abaixo para iniciar a configuração:

nano /etc/smokeping/config.d/Alerts

Altere as seguintes linhas:

to = endereco_de_email_que_recebera_os_alertas
from = endereco_de_email_que_assinara_os_alertas

A variável to identifica o(s) endereço(s) de e-mail que receberão as mensagens de alerta, já a variável from é utilizada para identificar que a mensagem está sendo enviada pelo smokeping, em alguns casos este podem ser um endereço fictício ou o e-mail do administrador.

Passo 4.3: Ajustando o arquivo Presentation

Neste arquivo especificamos como serão gerados os gráficos do smokeping. Execute o comando abaixo para iniciar a configuração:

nano /etc/smokeping/config.d/Presentation

Altere as seguintes linhas:

+ charts
menu = Resumo
title = Resumo : Gráficos Interessantes
...
...
...
+ overview
width = 600
height = 50
range = 12h

+ detail
width = 600
height = 200
unison_tolerance = 2
#"Last 3 Hours"    3h
#"Last 30 Hours"   30h
#"Last 10 Days"    10d
#"Last 400 Days"   400d

"Ultimas 3  Horas"   3h
"Ultimas 24 Horas"   24h
"Ultimos 7 Dias"     7d
"Ultimos 30 Dias"    30d
"Ultimos 366 Dias"   366d

Na primeira sessão + charts, temos as seguintes configurações:

  • menu = Resumo
  • title = Resumo : Gráficos Interessantes

Estas linhas definem o nome e o título do primeiro item do menu apresentado pelo Smokeping, que é um resumo das principais informações coletadas.

A segunda sessão + overview definimos a largura (width), a altura (height) e a quantidade, em horas (12h), de informações exibidas, por padrão, nos gráficos.

Quando um gráfico é selecionado, uma nova página é aberta. O conteúdo desta nova página é definido segundo as informações da sessão  + detail.

Segundo as configurações anteriores os gráficos apresentados terão 600px de largura e 200px de altura. Serão apresentados cinco gráficos, o primeiro contendo as informações das ultimas 3 horas, o segundo com as informações das ultimas 24 horas, o terceiro com as informações dos últimos 7 dias, o quarto exibe as informações dos últimos 30 dias e finalmente o ultimo as informações dos últimos 366 dias, ou seja, algo aproximadamente à um ano.

 

Passo 4.4: Ajustando o arquivo Probes

Este arquivo, assim como o anterior, não é tão simples, nele especificamos os Probes, ou simplesmente, os comandos utilizados pelo smokeping para obter as informações sobre a latência da rede. Execute o comando abaixo para iniciar a configuração:

nano /etc/smokeping/config.d/Probes

Adicione as seguintes linhas:

##
# Baseados no fping
##
+ FPing
binary = /usr/bin/fping

++ FPingNormal
offset = 0%

++ FPingLarge
packetsize = 5000
offset = 50%

# === -----------------------------------------------------------------------
# Permite medir a latencia de servidores de nome, neste caso sao enviados
# apenas 5 pacotes ping, em vez de 20 (default), a cada 3 minutos
# === -----------------------------------------------------------------------
+ DNS
binary = /usr/bin/dig
lookup = view.lncc.br
pings = 5
step = 180

# === -----------------------------------------------------------------------
# Permite medir a latencia de servidores web
# === -----------------------------------------------------------------------
+ EchoPingHttp
pings = 5
#url = /test-url
# === -----------------------------------------------------------------------
# Outros EchoPing
#       o interessante destes probes é que permitem o teste de portas
#       que geralmente estao associadas a servicos especificos
# === -----------------------------------------------------------------------
# + EchoPing       
# uses TCP or UDP echo (port 7)
# + EchoPingDiscard  # uses TCP or UDP discard (port 9)
# + EchoPingChargen  # uses TCP chargen (port 19)
+ EchoPingSmtp       # SMTP (25/tcp) for mail servers
+ EchoPingHttps      # HTTPS (443/tcp) for web servers
#+ EchoPingHttp       # HTTP (80/tcp) for web servers and caches
+ EchoPingIcp        # ICP (3130/udp) for caches
                     # these need at least echoping 6 with the corresponding plugins
+ EchoPingDNS        # DNS (53/udp or tcp) servers
+ EchoPingLDAP       # LDAP (389/tcp) servers
+ EchoPingWhois      # Whois (43/tcp) servers
# === -----------------------------------------------------------------------
#
# === -----------------------------------------------------------------------
+ Curl
# probe-specific variables
binary = /usr/bin/curl
step = 60
# a default for this target-specific variable
urlformat = http://%host/

Dentre os probes especificados anteriormente, podemos identificar alguns:

  • FPingNormal:  será o probe utilizado, por padrão, para determinar a latência dos hosts
  • FPingLarge: é a versão modificada o probe padrão, que envia pacote um pouco maiores
  • EchoPingHttp: probe utilizado para medir a latência do serviço HTTP
  • EchoPingSmtp: probe utilizado para medir a latência do serviço SMTP
  • EchoPingHttps: probe utilizado para medir a latência do serviço HTTPS
  • EchoPingDNS: probe utilizado para medir a latência do serviço de DNS

 

Passo 4.5: Ajustando o arquivo Targets

Neste arquivo definimos  quais hosts desejamos monitorar e gerar os gráficos de Latência. Execute o comando abaixo para iniciar a configuração:

nano /etc/smokeping/config.d/Targets

Altere/Altere as seguintes linhas:

#probe = FPing
probe = FPingNormal

title = Gráficos de Latência da Rede
remark =</pre>
<h2> Projeto - SGS</h2>
<h3>Latência de rede medidas a partir</h3>
<h3>do laboratório do projeto SGS</h3>
<h4>E-mail: projeto-SGS@sgs.br</h4>
<pre>

Neste primeiro trecho do arquivo definimos qual será o probe padrão (probe = FPingNormal), assim como as informações apresentadas na tela de abertura do smokeping

Finalmente, podemos adicionar alguns hosts para serem monitorados e a sua latência medida.

## === ------------------------------------------
## === ------------------------------------------
#  Sites Externos - Google
## === ------------------------------------------
## === ------------------------------------------
+ google
menu = Sites Externos - Google
title = Sites Externos - Google

++ Google_BR
menu = www.google.com.br
title = www.google.com.br
remark= Site do Google
host = www.google.com.br

++ Google
menu = www.google.com
title = www.google.com
remark= Site do Google
host = www.google.com

++ dns-a-google
menu = google-public-dns-a.google.com
title = google-public-dns-a.google.com
remark= Google - DNS Publico
host = 8.8.8.8

++ dns-b-google
menu = google-public-dns-b.google.com
title = google-public-dns-b.google.com
remark= Google - DNS Publico
host = 8.8.4.4

Neste exemplo, adicionados um novo menu denominado “google” e três hosts:

  • Google_BR: medindo a latência entre o servidor com o smokeping instalado e o host www.google.com.br
  • Google: medindo a latência do host www.google.com
  • dns-a-google:  medindo a latência do host 8.8.8.8 (google-public-dns-a.google.com)
  • dns-b-google:  medindo a latência do host 8.8.4.4 (google-public-dns-b.google.com)

A partir de ponto, basta utilizar os exemplo acima, para criar novos itens no menu do Smokeping e adicionar os hosts a serem monitorados.

Depois que inserimos as informações sobre as hosts que devem ser  monitoradas  (Targets), devemos reiniciar o daemon do smokeping


service smokeping restart

Ao ser reiniciado o smokeping, ele começa a gerar o gráficos para os novos Targets.  E com isto finalizamos o processo de instalação e configuração básica do smokeping

 

鯉 : 2015/07/09

鯉 : 2015/10/19