Simple Network Management Protocol (SNMP)
O protocolo SNMP (do inglês Simple Network Management Protocol - Protocolo Simples de Gerência de Rede) é um protocolo de gerência típica de redes TCP/IP, da camada de aplicação, que facilita o intercâmbio de informação entre os dispositivos de rede, como placas e comutadores (em inglês: switches). O SNMP possibilita aos administradores de rede gerenciar o desempenho da rede, encontrar e resolver seus eventuais problemas, e fornecer informações para o planejamento de sua expansão, dentre outras.
No BrazilFw existe a possibilidade de estar implementando este protocolo, usando o ADD-ON snmpd.tgz.
Instalação padrao (mt - cd mnt - wget - umt - backup - reboot)
As opções estão no arquivo /usr/snmp/snmpd.conf
Nome da comunidade de leitura:
rocommunity public
Nome da comunidade de gravação e ip ou rede permitido para gravar informações via snmp:
rwcommunity private 10.0.0.0/23 (aconselho a trocar o nome dessa comunidade)
Local onde esta o roteador
syslocation Casa do Chapeu/UF
Email do administrador do roteador
syscontact seuemail@dominio.com.br
Funcionamento.
Existe varias formas de capturar as informações do SNMP, usando programas clientes, como o MRTG.
Cada item a ser capturado existe um MIB ou OID, analogicamente falando seria como o DNS é para o IP.
Exemplo de Estrutura de um OID
.1.3.6.1.4.868.2.4.1.2.1.1.1.3.3562.3
(1).org(3).dod(6).internet(1).private(4).transition(868).products(2).chassis(4).card(1).slotCps(2)¬.-cpsSlotSummary(1).cpsModuleTable(1).cpsModuleEntry(1).cpsModuleModel(3).3562.3
OIDs que funcionam no linux (alguns não estão funcionando no brfw)
CPU Statistics
Load
1 minute Load: .1.3.6.1.4.1.2021.10.1.3.1
5 minute Load: .1.3.6.1.4.1.2021.10.1.3.2
15 minute Load: .1.3.6.1.4.1.2021.10.1.3.3
CPU
percentage of user CPU time: .1.3.6.1.4.1.2021.11.9.0
raw user cpu time: .1.3.6.1.4.1.2021.11.50.0
percentages of system CPU time: .1.3.6.1.4.1.2021.11.10.0
raw system cpu time: .1.3.6.1.4.1.2021.11.52.0
percentages of idle CPU time: .1.3.6.1.4.1.2021.11.11.0
raw idle cpu time: .1.3.6.1.4.1.2021.11.53.0
raw nice cpu time: .1.3.6.1.4.1.2021.11.51.0
Memory Statistics
Total Swap Size: .1.3.6.1.4.1.2021.4.3.0
Available Swap Space: .1.3.6.1.4.1.2021.4.4.0
Total RAM in machine: .1.3.6.1.4.1.2021.4.5.0
Total RAM used: .1.3.6.1.4.1.2021.4.6.0
Total RAM Free: .1.3.6.1.4.1.2021.4.11.0
Total RAM Shared: .1.3.6.1.4.1.2021.4.13.0
Total RAM Buffered: .1.3.6.1.4.1.2021.4.14.0
Total Cached Memory: .1.3.6.1.4.1.2021.4.15.0
Disk Statistics
Path where the disk is mounted: .1.3.6.1.4.1.2021.9.1.2.1
Path of the device for the partition: .1.3.6.1.4.1.2021.9.1.3.1
Total size of the disk/partion (kBytes): .1.3.6.1.4.1.2021.9.1.6.1
Available space on the disk: .1.3.6.1.4.1.2021.9.1.7.1
Used space on the disk: .1.3.6.1.4.1.2021.9.1.8.1
Percentage of space used on disk: .1.3.6.1.4.1.2021.9.1.9.1
Percentage of inodes used on disk: .1.3.6.1.4.1.2021.9.1.10.1
System Uptime: .1.3.6.1.2.1.1.3.0
System Name: .1.3.6.1.2.1.1.1.0
Voce pode utilizar um programa que esta no site do MRTG chamado MRTG CFG FILE CREATOR para poder ver todas as OID que o BRFW aceita, e por sua vez, criar de acordo com o que vc quizer monitorar
Configuração do arquivo do MRTG
Trafego Interface LAN (no meu caso a interface lan esta com o NUMERO 6) este numero vc pode ver no programa mencionado acima)
Target[router-brfw-lan]: 6:public@10.0.1.250:
SetEnv[router-brfw-lan]: MRTG_INT_IP="10.0.1.250" MRTG_INT_DESCR="eth0"
MaxBytes[router-brfw-lan]: 750000
Factor[router-brfw-lan]: 8
Title[router-brfw-lan]: Trafego BRFW LAN
PageTop[router-brfw-lan]: <H1>Trafego BRFW LAN</H1>
Observe o TARGET desta conf: 6 = numero da placa : public = comunudade @ ip do roteador :
Trafego da Interface WAN e WAN2
Target[router-brfw-wan1]: 7:public@10.0.1.250:
SetEnv[router-brfw-wan1]: MRTG_INT_IP="200.210.104.230" MRTG_INT_DESCR="eth1"
MaxBytes[router-brfw-wan1]: 500000
Factor[router-brfw-wan1]: 8
Title[router-brfw-wan1]: Trafego BRFW WAN 1 (EBT)
PageTop[router-brfw-wan1]: <H1>Trafego BRFW WAN 1 (EBT)</H1>
Target[router-brfw-wan2]: 8:public@10.0.1.250:
SetEnv[router-brfw-wan2]: MRTG_INT_IP="189.19.25.6" MRTG_INT_DESCR="eth1"
MaxBytes[router-brfw-wan2]: 500000
Factor[router-brfw-wan2]: 8
Title[router-brfw-wan2]: Trafego BRFW WAN 2 (ADSL)
PageTop[router-brfw-wan2]: <H1>Trafego BRFW WAN 2 (ADSL)</H1>
Uso de memoria e CPU (Observe as IOD, o "&" seria duas informacoes distintas, para gerar o mesmo grafico)
YLegend[router-brfw.cpu]: BRFW CPU
WithPeak[router-brfw.cpu]: ymw
Options[router-brfw.cpu]: growright,gauge
Target[router-brfw.cpu]: 1.3.6.1.4.1.2021.10.1.5.1&1.3.6.1.4.1.2021.10.1.5.2:public@10.0.1.250
MaxBytes[router-brfw.cpu]: 100
Title[router-brfw.cpu]: BRFW CPU
ShortLegend[router-brfw.cpu]:
Legend1[router-brfw.cpu]: CPU no ultimo min
Legend2[router-brfw.cpu]: CPU nos ultimos 5 min
LegendI[router-brfw.cpu]: 1 Min:
LegendO[router-brfw.cpu]: 5 Min:
PageTop[router-brfw.cpu]: <H1>BRFW CPU</H1>
YLegend[router-brfw.memoryUsed]: BRFW Uso da Memória
WithPeak[router-brfw.memoryUsed]: ymw
Options[router-brfw.memoryUsed]: growright,gauge
Target[router-brfw.memoryUsed]: .1.3.6.1.2.1.25.2.3.1.6.1&.1.3.6.1.2.1.25.2.3.1.6.2:public@10.0.1.250 * 100 / .1.3.6.1.2.1.25.2.3.1.5.1&.1.3.6.1.2.1.25.2.3.1.5.2:public@10.0.1.250
MaxBytes[router-brfw.memoryUsed]: 100
AbsMax[router-brfw.memoryUsed]: 100
Title[router-brfw.memoryUsed]: BRFW Uso da Memória
ShortLegend[router-brfw.memoryUsed]: %
Legend1[router-brfw.memoryUsed]: Virtual no ultimo minuto
Legend2[router-brfw.memoryUsed]: Fisica no no ultimo minuto
LegendI[router-brfw.memoryUsed]: Virtual
LegendO[router-brfw.memoryUsed]: Fisica
PageTop[router-brfw.memoryUsed]: <H1>BRFW Uso da Memória</H1>
voce pode realizar contas com as OID
ex.
somando os links wan1 e wan2
7:public@10.0.1.250 + 8:public@10.0.1.250
SQUID + SNMP
O squid nescessita de uma compilação especial para aceitar o SNMP, e ele tem um servidor proprio com as MIB/OID proprias:
A implementação do SNMP do Squid eh um recurso bastante interessante. Com a MIB (Base de dados de informações) fornecida pela implementação é possível monitorar uma serie de caracteristicas do Squid, como por exemplo estatisticas de consultas e armazenamento no cache, uso de memória, uso de processador, quantidade de bytes de entrada e saida do proxy entre outras coisas nao menos interessantes.
todas as mibs/oid disponiveis no squid
http://www.oidview.com/mibs/3495/SQUID-MIB.html
Testando se esta tudo OK
baixe http://sourceforge.net/project/download ... .win32.exe
Usando uma maquina em windows instale o dito cujo e execute via DOS
snmpget -v 2c -c public 10.0.1.250 .1.3.6.1.2.1.1.3.0
Onde -c é a comunidade e ip
e o .1.3.6.1.2.1.1.3.0 é a OID do system uptime
Resultado tem que ser isso (é claro que com o uptime do seu brfw)
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (5760300) 16:00:03.00
O System name
snmpget -v 2c -c public 10.0.1.250 .1.3.6.1.2.1.1.1.0
SNMPv2-MIB::sysDescr.0 = STRING: Linux router-proxy 2.4.36.2 #5 Wed Apr 9 20:43:15 BRT 2008 i686
Uso da CPU em inteiro (onde 7 = 0.07, 14 = 0.14 e 23 = 0.23)
snmpget -v 2c -c public 10.0.1.250 UCD-SNMP-MIB::laLoadInt.1
UCD-SNMP-MIB::laLoadInt.1 = INTEGER: 7
snmpget -v 2c -c public 10.0.1.250 UCD-SNMP-MIB::laLoadInt.2
UCD-SNMP-MIB::laLoadInt.2 = INTEGER: 14
snmpget -v 2c -c public 10.0.1.250 UCD-SNMP-MIB::laLoadInt.3
UCD-SNMP-MIB::laLoadInt.3 = INTEGER: 23
resumindo, da pra brincar bastante com as MIBS e OIDS
Boa sorte a todos :-)
URLS:
NETSNMP.tgz: http://www.dominioz.com.br/brazilfw/netsnmpd.tgz
MRTG: http://oss.oetiker.ch/mrtg/
RRD: http://oss.oetiker.ch/rrdtool/
RTG CFG File Creator: http://www.claridion.com/downloads/MRTGgui.htm
Resultado do meu roteador (tem bemmm mais coisas la do que so o roteador)
http://mrtg.dominioz.com.br
Meu MRTG.conf (rodando com o RRD) http://www.dominioz.com.br/brazilfw/mrtg.txt