12/04/2013

Notícias

e aê ?!

Estou preparando uma série (com 3 ou 4 partes) sobre monitoramento de rede utilizando o Nagios integrado ao Nagvis e MRTG, tudo via protocolo SNMP.


Aguardem!

02/04/2013

Redes: Nagios no Debian/Ubuntu - Parte 2

Continuação do post Redes: Nagios no Debian/Ubuntu - Parte 1 ...

Gerenciando hosts Linux Debian

Para instalar todas as bibliotecas necessárias adicione à sua lista de espelhos o repositório "non-free":

/etc/apt/sources.list

deb http://ftp.br.debian.org/debian squeeze main contrib non-free
deb-src http://ftp.br.debian.org/debian squeeze main contrib non-free

$ apt-get install snmp snmp-mibs-downloader -y

Exemplo de configuração:

/etc/snmp/snmpd.conf

agentAddress udp:161
view   systemonly  included   .1.3.6.1.2.1.1
view   systemonly  included   .1.3.6.1.2.1.25.1
rocommunity public  default    -V systemonly
rouser   authOnlyUser
sysLocation    pbdnd
sysContact     System Administrator <sysadmin@pbdnd.blogspot.com>
sysServices    72
proc  mountdnagios
proc  ntalkd    4
proc  sendmail 10 1
disk       /     10000
disk       /var  5%
includeAllDisks  10%
load   12 10 5
trapsink     localhost public
iquerySecName   internalUser
rouser          internalUser
defaultMonitors          yes
linkUpDownNotifications  yes
master          agentx

Nagios

Exemplo de configuração para o host com as seguintes configurações:

Endereço IP: 10.20.1.200
Nome do host: srv-deb6-web.pbdnd.blogspot.com

/etc/nagios3/conf.d/srv-deb6-web.cfg

define host {
        use                             generic-host
        host_name                       srv-deb6-web.pbdnd.blogspot.com
        alias                           srv-deb6-web
        address                         10.20.1.200
        }

define service{
        use                             generic-service
        host_name                       srv-deb6-web.pbdnd.blogspot.com
        service_description             Espaco em Disco
        check_command                   check_all_disks!20%!10%
        }

define service{
        use                             generic-service
        host_name                       srv-deb6-web.pbdnd.blogspot.com
        service_description             No de usuarios logados
        check_command                   check_users!20!50
        }

define service{
        use                             generic-service
        host_name                       srv-deb6-web.pbdnd.blogspot.com
        service_description             No de processos em execucao
        check_command                   check_procs!250!400
        }

define service{
        use                             generic-service
        host_name                       srv-deb6-web.pbdnd.blogspot.com
        service_description             Carga de Processamento Atual
        check_command                   check_load!5.0!4.0!3.0!10.0!6.0!4.0
        }


01/04/2013

Emlur recolhe 30 animais soltos em vias públicas de João Pessoa


A Autarquia Especial Municipal de Limpeza Urbana (Emlur) realizou durante o mês de março, 30 apreensões de animais que estavam abandonados em vias públicas de João Pessoa. Dentre eles, dez são equinos (cavalos) e 20 são muares (jumentos).
Um levantamento realizado pelo gerente de Apreensões de Animais da Emlur, Odemar Araújo, aponta que desde o início de 2013, já foram recolhidos cerca de 83 animais (adultos e/ou filhotes), entre equinos, bovinos e muares.
Para realizar a remoção dos animais, duas equipes integradas por seis pessoas utilizam um caminhão boiadeiro quando solicitado pela população ou pela Polícia Rodoviária Federal (PRF), para auxiliar as rodovias federais.
Todos os animais recolhidos são encaminhados diretamente ao Centro de Apreensões de Animais, que funciona em uma chácara localizada em Engenho Velho, a 12 quilômetros do Centro da Capital.
Após serem encaminhados à chácara, os animais são imediatamente separados e levados para as baias onde recebem capim e água potável, além de serem tratados por um veterinário designado pelo Centro de Vigilância Ambiental e Zoonoses.
Resgate - Para resgatar os animais, os proprietários devem seguir ao Centro de Apreensões e pagar multa de R$ 10 referente ao muá (jumento), R$ 20 ao equino (cavalo) e R$ 30 ao bovino (vaca).
Doação - Caso os animais não sejam resgatados pelos proprietários, após 30 dias de apreensão eles são doados para pessoas que trabalham com reciclagem, cadastradas previamente pelo Centro de Apreensões.
Contato - O serviço de apreensão de animais funciona 24 horas, incluindo nos finais de semana, em caso de emergência. Quem encontrar qualquer animal de grande porte, solto na cidade, pode entrar em contato com a Emlur, por meio do número 0800 083 24 25 ou ainda pelas redes sociais @pmjpEMLUR @LimpinhoDaSilva.

25/03/2013

VBoxHeadLess - Monitor

Por curiosidade acabei desenrolando alguns comandos e scripts para acompanhar o uso dos recursos do notebook pelas máquinas virtuais do VirtualBox

Comandos:

Exibe a cada 2 segundos, por ordem de carga de processamento, o pid, processamento, memória e máquina virtual:

$ watch -n 2 -d -t 'ps -C VBoxHeadless --no-headers -o cpuid,pcpu,pmem,cmd | sort -rnk 2'


Exibe a cada 2 segundos, por ordem de consumo do disco (read/write/swap), as máquinas virtuais em execução:

$ watch -n2 -d -t 'sudo ./script/sandbox/vboxdisk.sh | sort -nrk 3'



/script/sandbox/vboxdisk.sh

#!/bin/bash

pgrep VBoxHeadless |
while read vboxpid; do
        echo `ps -o cmd --no-headers $vboxpid | awk '{print $3}'` `grep "read_bytes\|write_bytes" /proc/$vboxpid/io | grep -v can` " swap: " `awk -v name="$n" '/^Swap/{total += $2} END {print total}' /proc/$vboxpid/smaps`
done

Exibe a cada 2 segundos, por ordem de consumo total (2 cores) de processamento, as máquinas virtuais em execução:

$ watch -n 2 -d -t ./script/sandbox/vboxmoncpu.sh


/script/sandbox/vboxmoncpu.sh


#!/bin/bash                                                                     
./script/sandbox/vboxcpu.sh | awk '{print $1 " " $2 " " $3 " " $4}' | sort -k 4 -nr 

/script/sandbox/vboxcpu.sh

ps -C VBoxHeadless -o cpuid,pcpu,pmem,cmd --no-headers | grep "    0" | awk '{sum += $2} END {print "PCPU 0 --- " sum}'
ps -C VBoxHeadless -o cpuid,pcpu,pmem,cmd --no-headers | grep "    1" | awk '{sum += $2} END {print "PCPU 1 --- " sum}'

25/02/2013

Bash one liner - Looking Glass Checker (Brazil)

Alog Datacenter

curl -s --request POST 'http://lg.alog.com.br/cgi-bin/lg.cgi' --data 'query=ping&parameters=ip.address' | grep Pack | sed 's/]*>/\n/g' | sed 's/<[^>]*>//g'
CGIBR

curl -s --request POST 'http://registro.br/cgi-bin/nicbr/trt' --data 'HOST=ip.address' | sed 's/]*>/\n/g' | sed 's/IPv4/\n/g' | sed 's/<[^>]*>//g' | grep -v Registro

CTBC

curl -s --request POST 'http://lg.ctbc.com.br' --data 'ip=4&source=junos-200.225.196.164&comando=ping&destination=ip.address' | sed 's/]*>/\n/g'

curl -s --request POST 'http://lg.ctbc.com.br'--data 'ip=4&source=junos-200.225.199.8&comando=ping&destination=ip.address' | sed 's/]*>/\n/g'

RNP

curl -s --request POST 'http://lg.ceo.rnp.br/lg/' --data 'router=Rio de Janeiro, RJ&query=ping&addr=ip.address' | sed 's/<[^>]*>//g'
curl -s --request POST 'http://lg.ceo.rnp.br/lg/' --data 'router=Minas Gerais, MG&query=ping&addr=ip.address' | sed 's/<[^>]*>//g'
curl -s --request POST 'http://lg.ceo.rnp.br/lg/' --data 'router=Brasilia, DF&query=ping&addr=ip.address' | sed 's/<[^>]*>//g'
curl -s --request POST 'http://lg.ceo.rnp.br/lg/' --data 'router=Sao Paulo, SP&query=ping&addr=ip.address' | sed 's/<[^>]*>//g'

Now you can check your host status from outside your network.

14/02/2013

Bash one-liner - Swap Check

Search for processes using swap.

for i in $(find /proc/ -maxdepth 1 -type d -regex "^/proc/[0-9]+"); do test -f ${i}/smaps && echo "Program: "$(ps -p $(echo $i | cut -d '/' -f 3) -o comm --no-headers) " PID: " $(echo $i | cut -d '/' -f 3) $(grep Swap ${i}/smaps 2> /dev/null | awk '{ print $2 }') ; done

Another one:

awk -v name="$n" '/^Swap/{total += $2} END {print total}' /proc/[0-9]*/smaps

Edit
And so on:

SUM=0 && total=0 && for i in $(sudo find /proc/ -maxdepth 1 -type d -regex "^/proc/[0-9]+"); do test -f ${i}/smaps && export swap=$(sudo awk '/^Swap/{if($2>0) SUM += $2 } END { print SUM}' ${i}/smaps 2> /dev/null) && echo "Programa: "$(ps -p $(echo $i | cut -d '/' -f 3) -o comm --no-headers | cut -d ":" -f 2- | cut -f 2- -d " " ) "PID:" $(echo $i | cut -d '/' -f 3) "Swap: " $swap && if [[ ! -z "$swap" ]]; then let "total += $swap"; fi; done && echo $total

Sources:

http://stackoverflow.com/questions/479953/how-to-find-out-which-processes-are-swapping-in-linux

http://linuxgazette.net/164/misc/lg/2_cent_tip__checking_the_amount_of_swapped_out_memory_owned_by_a_process.html