3° SNMP (Simple Network Management Protocol)
Se você não sabe o que é o SNMP, leia mais sobre ele em:
Usaremos uma versão mais antiga do "Net-snmp", o nome dela é "Ucd-snmp".
O site oficial do Net-snmp é o:
Vamos baixar agora o Ucd-snmp, podemos encontrá-lo em:
Escolha o ucd-snmp-4.2.7.tar.gz.
Agora vamos descompactá-lo. Digite:
# tar zxfv ucd-snmp-4.2.7.tar.gz
Agora entre no diretório do ucd-snmp descompactado. Digite:
# cd ucd-snmp-4.2.7
Compilando e instalando
Digite:
# ./configure --prefix=/usr/local/snmp
A configuração irá parar com as seguintes linhas:
You are about to be prompted with a series of questions. Answer them carefully, as they determine how the SNMP agent and related applications are to function.
After the configure script finishes, you can browse the newly
created config.h file for further - less important - parameters to modify. Be careful if you re-run configure though, since config.h will be overwritten.
-Press return to continue-
Aperte "ENTER"
checking Default version of SNMP to use...
*** Default SNMP Version:
Starting with Ucd-SNMP 4.2.7, you can choose the default version of the SNMP protocol to use when no version is given explicitly on the command line, or via an 'snmp.conf' file. In the past this was set to SNMPv1, but you can use this to switch to SNMPv3 if desired. SNMPv3 will provide a more secure management environment (and thus you're encouraged to switch to SNMPv3), but may break existing scripts that rely on the old behaviour. (Though such scripts will probably need to be changed to use the '-c' community flag anyway, as the SNMPv1 command line usage has changed as well.).
At this prompt you can select "1", "2" (for SNMPv2c), or "3" as the default version for the command tools (snmpget, ...) to use. This can always be overridden at runtime using the -v flag to the tools, or by using the "defVersion" token in your snmp.conf file.
Providing the --with-default-snmp-version="x" parameter to ./configure will avoid this prompt.
Default version of SNMP to use (3):
Digite: "3" sem as aspas e depois aperte ENTER
setting Default version of SNMP to use to... 3
checking System Contact Information...
*** System Contact Information:
Describes who should be contacted about the host the agent is running on. This information is available in the MIB-II tree. This can also be over-ridden using the "syscontact" syntax in the agent's configuration files.
Providing the --with-sys-contact="contact" parameter to ./configure will avoid this prompt.
System Contact Information (root@):
Digite agora o seu e-mail, exemplo: meunome@hotmail.com
setting System Contact Information to... meunome@hotmail.com
checking System Location...
*** System Location:
Describes the location of the system. This information is available in the MIB-II tree. this can also be over-ridden using the "syslocation" syntax in the agent's configuration files.
Providing the --with-sys-location="location" parameter to ./configure will avoid this prompt.
System Location (Unknown):
Digite agora "localhost" sem as aspas.
Checking Location to write logfile... localhost
*** Logfile location:
Enter the default location for the snmpd agent to dump information & errors to. If not defined (enter the keyword "none" at the prompt below) the agent will use stdout and stderr instead.
(Note: This value can be over-ridden using command line options.)
Providing the --with-logfile="path" parameter to ./configure will avoid this prompt.
Location to write logfile (/var/log/snmpd.log):
Aqui é o caminho de onde será gravado os logs.
Digite "/usr/local/snmp-config/snmpd.log" sem as aspas.
*** snmpd persistent storage location:
Enter a directory for the SNMP library to store persistent data in the form of a configuration file. This default location is different than the old default location (which was for ucd-snmp). If you stay with the new path, I'll ask you in a second if you wish to copy your files over to the new location (once only). If you pick some other path than the default, you'll have to copy them yourself.
There is nothing wrong with picking the old path (/var/ucd-snmp) if you'd rather.
Providing the --with-persistent-directory="path" parameter to ./configure will avoid this prompt.
Location to write persistent information (/var/net-snmp):
Aqui será gravado as bibliotecas do SNMP digite:
/usr/local/snmp-config
Agora digite:
# make
E por último digite:
# make install
Agora que temos o ucd-snmp instalado vamos criar um arquivo de configuração para ele
chamado
snmpd.conf, esse arquivo será criado em "/usr/local/snmp/share/snmp".
Digite:
# vim /usr/local/snmp/share/snmp/snmpd.conf
E insira no arquivo o seguinte conteúdo:
com2sec local 127.0.0.1/32 public
com2sec local 10.10.10.0/24 public
#########################################################
group MyROGroup v1 local
group MyROGroup v2c local
group MyROGroup usm local
#########################################################
view all included .1 80
########################################################
access MyROGroup "" any noauth exact all none none
########################################################
syslocation localhost.localdomain
syscontact Meunome <meunome@hotmail.com>
## No lugar de Meunome coloque o seu nome.
## No lugar de meunome@hotmail.com coloque o seu e-mail.
Pronto, criamos o arquivo de configuração do ucd-snmp, note que você precisa alterar as seguintes linhas. No lugar de Meunome coloque o seu nome. No lugar de meunome@hotmail.com coloque o seu e-mail.
As demais linhas não precisam ser alteradas, não é necessário.
Para iniciar o snmp você precisa digitar:
# /usr/local/snmp/sbin/snmpd
Vamos agora para a última etapa.
4° MRTG (Multi Router Traffic Grapher)
A configuração do MRTG é um pouco mais complicada mas não se preocupem. Instalamos o ucd-snmp primeiro pois sem ele os gráficos feitos pelo MRTG ficariam vazios pois o ucd-snmp fornece informações para o MRTG e o MRTG transforma em gráficos.
Se você não sabe o que é o MRTG leia mais sobre ele em:
O site oficial do MRTG é o:
Antes de mais nada precisamos instalar a "biblioteca GD" (GD library).
Podemos fazer o download da "biblioteca GD" em:
Agora descompacte o arquivo:
# tar zxfv gd-2.0.35.tar.gz
Agora entre no diretório do MRTG descompactado.
Digite:
# cd gd-2.0.35
Compilando e instalando
Digite:
# ./configure --prefix=/usr/local/gd
Agora digite:
# make
E por último digite:
# make install
Pronto! Instalamos a biblioteca GD.
Vamos agora para o MRTG novamente.
Precisamos baixar os fontes do MRTG, podemos fazer isto em:
Selecione o mrtg-2.11.1.tar.gz.
Agora descompacte o arquivo:
# tar zxfv mrtg-2.11.1.tar.gz
Agora entre no diretório do MRTG descompactado.
Digite:
# cd mrtg-2.11.1
Compilando e instalando
Digite:
# ./configure --prefix=/usr/local/mrtg-2 \
--with-gd=/usr/local/gd \
--with-gd-lib=/usr/local/gd/lib \
--with-gd-inc=/usr/local/gd/include
Agora digite:
# make
E por último digite:
# make install
Criaremos agora um pasta para o MRTG dentro da pasta dos arquivos html do apache, que
no nosso caso é o "/usr/local/apache2/htdocs" sem as aspas.
Digite:
# mkdir /usr/local/apache2/htdocs/mrtg
Agora vamos fazer um arquivo chamado "traffic.cfg" e para isso usaremos a ferramenta "cfgmaker" mas, lembre-se que para executar o "cfgmaker" o ucd-snmp precisa estar rodando.
Digite:
# /usr/local/mrtg-2/bin/cfgmaker \
--output=/usr/local/mrtg-2/traffic.cfg \
--global "WorkDir: /usr/local/apache2/htdocs/mrtg" \
--ifdesc=ip \
--ifref=descr \
--global "Options[_]: bits,growright" \
public@127.0.0.1
Agora precisamos fazer os seguintes arquivos "cpu.cfg", "swap.cfg", "ping.cfg" e "mem.cfg". Mãos a obra, vamos criá-los.
Digite:
# vim /usr/local/mrtg-2/cpu.cfg
Agora insira essas linhas no conteúdo do arquivo criado:
WorkDir: /usr/local/apache2/htdocs/mrtg
LoadMIBs: /usr/local/snmp/share/snmp/mibs/UCD-SNMP-MIB.txt
Target[localhost.cpu]:ssCpuRawUser.0&ssCpuRawUser.0:public@127.0.0.1 + ssCpuRawSystem.0&ssCpuRawSystem.0:public@127.0.0.1 + ssCpuRawNice.0&ssCpuRawNice.0:public@127.0.0.1
RouterUptime[localhost.cpu]: public@127.0.0.1
MaxBytes[localhost.cpu]: 100
Title[localhost.cpu]: CPU Load
PageTop[localhost.cpu]: <H1>Active CPU Load %</H1>
Unscaled[localhost.cpu]: ymwd
ShortLegend[localhost.cpu]: %
YLegend[localhost.cpu]: CPU Utilization
Legend1[localhost.cpu]: Active CPU in % (Load)
Legend2[localhost.cpu]:
Legend3[localhost.cpu]:
Legend4[localhost.cpu]:
LegendI[localhost.cpu]: Active
LegendO[localhost.cpu]:
Options[localhost.cpu]: growright,nopercent
Salve o arquivo e saia.
Agora digite:
# vim /usr/local/mrtg-2/swap.cfg
Agora insira essas linhas no conteúdo do arquivo criado:
LoadMIBs: /usr/local/snmp/share/snmp/mibs/UCD-SNMP-MIB.txt
Target[localhost.swap]: memAvailSwap.0&memAvailSwap.0:public@localhost
PageTop[localhost.swap]: <H1>Swap Memory</H1>
WorkDir: /usr/local/apache2/htdocs/mrtg
Options[localhost.swap]: nopercent,growright,gauge,noinfo
Title[localhost.swap]: Free Memory
MaxBytes[localhost.swap]: 1000000
kMG[localhost.swap]: k,M,G,T,P,X
YLegend[localhost.swap]: bytes
ShortLegend[localhost.swap]: bytes
LegendI[localhost.swap]: Free Memory:
LegendO[localhost.swap]:
Legend1[localhost.swap]: Swap memory avail, in bytes
Salve o arquivo e saia.
Agora digite:
# vim /usr/local/mrtg-2/ping.cfg
Agora insira essas linhas no conteúdo do arquivo criado:
WorkDir: /usr/local/apache2/htdocs/mrtg
Title[localhost.ping]: Round Trip Time
PageTop[localhost.ping]: <H1>Round Trip Time</H1>
Target[localhost.ping]: `/usr/local/mrtg-2/ping.sh`
MaxBytes[localhost.ping]: 2000
Options[localhost.ping]: growright,unknaszero,nopercent,gauge
LegendI[localhost.ping]: Pkt loss %
LegendO[localhost.ping]: Avg RTT
YLegend[localhost.ping]: RTT (ms)
Salve o arquivo e saia.
Agora digite:
# vim /usr/local/mrtg-2/mem.cfg
Agora insira essas linhas no conteúdo do arquivo criado:
LoadMIBs: /usr/local/snmp/share/snmp/mibs/HOST-RESOURCES-MIB.txt
Target[localhost.mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.6.0:public@localhost
PageTop[localhost.mem]: <H1>Free Memory</H1>
WorkDir: /usr/local/apache2/htdocs/mrtg
Options[localhost.mem]: nopercent,growright,gauge,noinfo
Title[localhost.mem]: Free Memory
MaxBytes[localhost.mem]: 1000000
kMG[localhost.mem]: k,M,G,T,P,X
YLegend[localhost.mem]: bytes
ShortLegend[localhost.mem]: bytes
LegendI[localhost.mem]: Free Memory:
LegendO[localhost.mem]:
Legend1[localhost.mem]: Free memory, not including swap, in bytes
Salve o arquivo e saia.
Agora digite:
# /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/cpu.cfg
Pressione "ENTER" e digite novamente:
# /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/cpu.cfg
Pressione "ENTER" e digite novamente:
# /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/cpu.cfg
Temos que fazer 3 vezes mesmo, ignore os "WARNINGS".
Agora digite:
# /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/swap.cfg
Pressione "ENTER" e digite novamente:
# /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/swap.cfg
Pressione "ENTER" e digite novamente:
# /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/swap.cfg
Temos que fazer 3 vezes este também, ignore os "WARNINGS".
Agora digite:
# /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/ping.cfg
Pressione "ENTER" e digite novamente:
# /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/ping.cfg
Pressione "ENTER" e digite novamente:
# /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/ping.cfg
Temos que fazer 3 vezes este também, ignore os "WARNINGS".
Agora digite:
# /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/mem.cfg
Pressione "ENTER" e digite novamente:
# /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/mem.cfg
Pressione "ENTER" e digite novamente:
# /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/mem.cfg
Temos que fazer 3 vezes este também, ignore os "WARNINGS".
O MRTG criará vários arquivos dentro do diretório "/usr/local/apache2/htdocs/mrtg".
Estamos quase no final, precisamos criar agora o "index", ou seja, o site onde você verá os gráficos, para isso usaremos a ferramenta
indexmaker.
Digite:
# /usr/local/mrtg-2/bin/indexmaker --output=/usr/local/apache2/htdocs/mrtg/index-mrtg.html \
--title="Power Under Control" \
--sort=name \
--enumerate \
/usr/local/mrtg-2/traffic.cfg \
/usr/local/mrtg-2/cpu.cfg \
/usr/local/mrtg-2/mem.cfg \
/usr/local/mrtg-2/swap.cfg \
/usr/local/mrtg-2/ping.cfg
Pronto! Temos a nossa index-mrtg.html.
Para acessá-la abra o seu browser e digite:
http://localhost/index-mrtg.html
ou
http://localhost.localdomain/index-mrtg.html
ou
http://127.0.0.1/index-mrtg.html
Mas não para por aí!
Precisamos fazer agora um arquivo de configuração para o MRTG. Usaremos novamente a ferramenta "cfgmaker". Digite:
# /usr/local/mrtg-2/bin/cfgmaker \
--global "WorkDir: /usr/local/apache2/htdocs/mrtg" \
--global "Options[_]: growright,bits" \
--ifref=ip \
public@127.0.0.1 > /usr/local/mrtg-2/mrtg.cfg
Pronto! Estamos quase lá.
Precisamos fazer com que os gráficos se atualizem a cada 5 minutos e não se esqueça que os gráficos somente são atualizados se o ucd-snmp estiver rodando. Se você se esqueceu de como se inicia o ucd-snmp, no nosso caso é o seguinte comando:
# /usr/local/snmp/sbin/snmpd
Mãos a obra.
Digite:
# crontab -e
E adicione no conteúdo desse arquivo as seguintes linhas:
*/5 * * * * /usr/local/mrtg-2-apache2/bin/mrtg /usr/local/mrtg-2-apache2/mrtg.cfg
*/5 * * * * /usr/local/mrtg-2-apache2/bin/mrtg /usr/local/mrtg-2-apache2/traffic.cfg
*/5 * * * * /usr/local/mrtg-2-apache2/bin/mrtg /usr/local/mrtg-2-apache2/mem.cfg
*/5 * * * * /usr/local/mrtg-2-apache2/bin/mrtg /usr/local/mrtg-2-apache2/cpu.cfg
*/5 * * * * /usr/local/mrtg-2-apache2/bin/mrtg /usr/local/mrtg-2-apache2/swap.cfg
*/5 * * * * /usr/local/mrtg-2-apache2/bin/mrtg /usr/local/mrtg-2-apache2/ping.cfg
Salve o arquivo e saia.
Explicando:
- A 1ª linha executa o MRTG a cada 5 minutos, ou seja, você não precisará iniciar o MRTG.
- A 2ª linha atualiza o gráfico "traffic" a cada 5 minutos.
- A 3ª linha atualiza o gráfico "mem" (memória) a cada 5 minutos.
- A 4ª linha atualiza o gráfico "cpu" a cada 5 minutos.
- A 5ª linha atualiza o gráfico "swap" a cada 5 minutos.
- A 6ª linha atualiza o gráfico "ping" a cada 5 minutos.
Volto a lembrar que os gráficos somente serão atualizados se o ucd-snmp estiver rodando.
Se por acaso você estiver vendo a sua "index-mrtg.html" e notar que o gráfico "ping" não se atualizou não se preocupe, ele demora um pouco mais que os outros para se atualizar.
Vamos agora para a última alteração.
Você notou que ao abrir a sua "index-mrtg.html", no inferior da página tem algumas figuras que não estão aparecendo?
Vamos arrumar isto!
Temos que copiar todas as figuras do diretório images que fica dentro da pasta que extraímos do mrtg, entre nesse diretório.
Digite:
# cd mrtg-2.11.1/images
Agora vamos copiar todo o conteúdo do diretório images para o diretório dos arquivos html do mrtg.
Digite:
# cp * /usr/local/apache2/htdocs/mrtg
Pronto! Problema resolvido.
Agora sempre que você iniciar o seu computador você pode iniciar o APACHE e o ucd-snmp que o MRTG vai se iniciar e atualizar os gráficos sozinhos.
Considerações finais
UFA!
Pois bem.
Chegamos ao fim do tutorial, muito obrigado a todos, desculpem por qualquer erro de digitação, espero ter sido útil e comentários são muito bem vindos. =D
Qualquer dúvida ou erro comentem.
BY EDUARDO