Você está na página 1de 20

SAGE

Sistema Aberto de Gerenciamento de Energia

Conversor de Protocolo

Av. Horácio Macedo, 354 - Cidade Universitária


CEP 21941-911 Rio de Janeiro – RJ

Julho de 2009

A informação contida neste documento é de propriedade do CEPEL, tendo se originado de trabalho desenvolvido nesta
empresa para consulta e referência dos usuários do sistema SAGE, e não poderá ser reproduzida ou utilizada para
quaisquer outros fins sem autorização prévia e expressa do CEPEL. Este documento baseia-se em informação disponível
na data de sua publicação. Embora sejam feitos esforços para torná-lo preciso, este não se propõe a cobrir todos os
detalhes ou particularidades apresentadas pelo sistema. O CEPEL não se responsabiliza por notificar os usuários deste
documento de possíveis alterações feitas posteriormente.

i
Conteúdo

INTRODUÇÃO................................................................................. 1

CONVERSOR DE PROTOCOLOS SNMP............................................ 3

MAPEAMENTO DE OPERAÇÕES ..................................................... 5


AQUISIÇÃO ANALÓGICA ........................................................................ 5
AQUISIÇÃO DIGITAL ............................................................................. 6
CONTROLE ......................................................................................... 6
PONTOS CALCULADOS................................................................... 7

FILTRO .......................................................................................... 9

TABELAS...................................................................................... 11
LSC ................................................................................................... 11
CNF ................................................................................................... 11
PAS ................................................................................................... 11
PAF ................................................................................................... 11
PDF ................................................................................................... 13
PDS ................................................................................................... 13
CGF ................................................................................................... 13
CGS................................................................................................... 13
NV1 ................................................................................................... 13
NV2 ................................................................................................... 13
CXU................................................................................................... 13
UTR ................................................................................................... 14
TAC ................................................................................................... 14
ENU................................................................................................... 14
GERAÇÃO AUTOMÁTICA DE BASE FONTE ................................... 15
PROCEDIMENTO ................................................................................ 15

i
SAGE
Sistema Aberto de Gerenciamento de Energia
- Conteúdo

ii
Conversor de Protocolo
Julho - 2009
Introdução

O conversor de protocolo SNMP e o transportador de protocolo SNMP


permitem ao SAGE realizar monitoramento da infra-estrutura de rede e
computacional de um sistema SAGE.

Ao habilitar o conversor de protocolos SNMP em um sistema SAGE, o


SAGE passa a ter capacidade de aquisição de dados disponibilizados em
equipamentos gerenciáveis como estações SAGE, roteadores, switches,
firewall, terminal servers.

1
SAGE
Sistema Aberto de Gerenciamento de Energia
- Introdução

2
Conversor de Protocolo
Julho - 2009
Conversor de Protocolos SNMP
Dentre as mensagens básicas definidas para o protocolo SNMP, três
tipos de mensagens, GET, SET e GETNEXT, são utilizadas no SAGE.

O agente é a entidade definida para atender um serviço de gerência via


SNMP.

O agente responde a mensagens GET e SET (e também GETNEXT)


referentes a objetos de gerência. Estes objetos são referenciados por
estruturas-padrão denominadas MIBs.

Por exemplo, como parte de uma MIB (MIB-II) está definido o objeto
SysUpTime que corresponde ao tempo de atividade de gerência de um
equipamento. A este objeto é atribuída uma referência .1.3.6.1.2.1.1.3
que é um equivalente numérico a posição de referência em uma árvore
de objetos.

Para obter informação sobre o SysUpTime, o gerente, que é a entidade


que faz requisições ao agente SNMP, emite mensagem GET com a
referência .1.3.6.1.2.1.1.3. Em resposta, o agente SNMP retornará
mensagem SNMP com valor corrente de SysUpTime.

No SAGE o conversor SNMP e o transportador SNMP assumem a função


de gerência. O conversor coleta na base de dados do SAGE informações
a serem gerenciadas via SNMP e mantém máquinas de estado pra
aquisição e controle. Ao definir mensagens de aquisição e de controle
as informações necessárias são passadas ao transportador de protocolo
SNMP. O transportador gera a mensagem SNMP e a transmite ao
agente. Ao receber respostas de requisições SNMP o transportador as
encaminha ao conversor que cuida de atualizar sua máquina de estados
e passar informações ao SAC.

3
SAGE
Sistema Aberto de Gerenciamento de Energia
- Conversor de Protocolos SNMP

4
Conversor de Protocolo
Julho - 2009
Mapeamento de Operações
Para fazer a aquisição de dados via SNMP faz-se necessário um
entendimento das entidades que atuam no sistema para tal
funcionalidade. A terminologia utilizada em documentos que descrevem
o padrão SNMP é gerente e agente. Em cada equipamento que é
monitorado deve haver pelo menos uma instância de agente SNMP. No
caso de mais de um agente instanciado por equipamento, um agente
seria o responsável por atender o serviço SNMP enquanto outros
ficariam de reserva para eventual falha no agente atuante. Portanto,
pode-se por exemplo definir dois agentes em um mesmo equipamento
para controle de failover. O agente SNMP exerce a função típica de uma
UTR como é normalmente definido no SAGE.

Aquisição Analógica

Na operação de aquisição analógica, dados são coletados por


endereçamento via MIB por mensagens GET.

Quanto à precisão dos dados coletados, dados analógicos coletados


podem ser armazenados em sua forma instantânea, em média calculado
por múltiplas janelas de tempo e também por média móvel com
ponderação exponencial. Quanto ao tipo de grandeza, os dados podem
ser armazenados em forma absoluta ou relativa. Por exemplo, o tempo
de operação de sistema é uma grandeza absoluta. Um exemplo
diferente é o tempo de consumo de CPU por processos do usuário em
um dado intervalo. Este dado vem pela diferença entre o valor coletado
no final e no início do intervalo. Para casos de valor de taxa então,
apenas a diferença não é suficiente, mas também é necessário calcular
a taxa pela razão entre a diferença de valores coletados e o tempo no
intervalo de medidas.

É importante ressaltar que o valor armazenado pelo conversor de


protocolo segue os dois conceitos de precisão e de “relatividade”. Uma
taxa pode ser calculada em média móvel ponderada exponencialmente.
Ou pode-se ter a média de diferenças em diferentes janelas de tempo.

Tipicamente qualquer ponto em aquisição tem valores de média


calculados. O normal é ter o valor instantâneo disponível no ponto e os
valores por diferença de tempo disponíveis por filtros.

Para o caso específico de percentual de consumo de CPU, há ainda o


cálculo de percentual que utiliza como parcelas o tempo consumido por
processos do usuário, o tempo consumido por processos de sistema, o

5
SAGE
Sistema Aberto de Gerenciamento de Energia
- Mapeamento de Operações

tempo não-consumido (tempo ocioso) e tempo consumido por processos


com baixa prioridade (nice).

Aquisição Digital

Na operação de aquisição digital, dados são também coletados por


endereçamento via MIB por mensagens GET, mas “digitalizados” para o
SAGE. No momento, este processo de digitalização é simplesmente
atribuir valor 1 (um) a qualquer valor maior do que zero e 0 (zero) caso
contrário.

Controle

Para operações de controle também se utiliza o endereçamento via MIB,


mas deve utilizar necessariamente um objeto OID que permita escrita
(read-write), pois o tipo de mensagem SNMP utilizado é SET. No
momento, dentre os tipos de controle definidos na base SAGE, o tipo de
controle utilizado é RTSC.

6
Conversor de Protocolo
Julho - 2009
Pontos Calculados
Para obter cálculo de consumo de CPU, é necessário definir na base um
ponto de cálculo cujo valor é determinado através de cálculo no SAGE.

No exemplo abaixo, o ponto é definido como pertencente a uma TAC de


cálculos e o cálculo definido é CPU (atributo para TCL).

Exemplo:

PAS

BNDMO = 0
ID = CALCCPU
LIE = -500
LSE = 500
OCR = OCR_PAS01
TAC = CALC
TCL = CPU
TIPO = OUTROS
DPE = 2
LIA = -300
LIU = -400
LSA = 300
LSU = 400
TERM = A_REA
NOME = Percentual de Consumo de CPU

Também é necessário para alguns casos, como capacidade de unidades


de mídia, um cálculo de multiplicação MULT. No caso de obter uma
medida pela MIB HOST-RESOURCES a capacidade disco ou memória
RAM é uma entrada definida, mas a unidade de medida está em outra
entrada na MIB. Um exemplo é a unidade estar definida em 4 Kbytes e
a capacidade 500000. A capacidade total é dada pela multiplicação
destes dois fatores.

7
SAGE
Sistema Aberto de Gerenciamento de Energia
- Pontos Calculados

8
Conversor de Protocolo
Julho - 2009
Filtro
Para obter valores máximos de determinada medida em um dado
intervalo de tempo deve-se utilizar o filtro FIL1. O default é utilizar um
intervalo de tempo de uma hora. Nesse caso o valor retornado no filtro
é o valor máximo medido no ponto em uma janela de tempo de uma
hora.

Outros filtros são definidos para obter médias em janela de tempo. Os


filtros FIL2, FIL3, FIL4, e FIL5 retornam as médias em intervalos de
tempo que por default são de 1 minutos, 10 minutos, 1hora, e 1 dia.

Utiliza-se também filtros para o SAGE retornar os processos de maior


consumo de CPU. O filtro FIL6 retorna o filtro de maior consumo de
memória. Os filtros FIL7 e FIL8 retornam respectivamente os processos
de segundo maior e terceiro maior consumo de memória. A referencia
para os processos deve ser feita pelo campo OBSRV do PAS em questão.
Este artifício pode ser utilizado para obter uma string a partir de um
agente SNMP. Um exemplo é a descrição do sistema (OID
.1.3.6.1.2.1.1.1) na MIB-II. O tipo retornado é DisplayString. Como há
pontos analógicos e digitais, mas não há um “ponto de string”, a solução
aqui é configurar um ponto analógico com tipo de medida T e
referenciar a string no ponto de filtro com filtro FIL6.

Todos estes filtros utilizam apenas o ponto de medida como entrada.


Desta forma, há apenas uma parcela para cada ponto na tabela RFC.

9
SAGE
Sistema Aberto de Gerenciamento de Energia
- Filtro

10
Conversor de Protocolo
Julho - 2009
Tabelas
A seguir são colocadas algumas particularidades em relação a como
definir uma base de dados de forma que o SAGE possa atuar como
gerente SNMP.

LSC
Deve definir para cada LSC atributos TCV e TTP da seguinte forma:

TCV = CNVI
TTP = TSNMP

CNF
Ao definir uma CNF, o atributo CONFIG deve conter as definições
necessárias para acesso a um agente SNMP. Tipicamente deve-se
definir um endereço IP, a porta que responde o serviço SNMP e a string
definida como community.

Também é possível definir mais de um endereço IP e portas de serviço


SNMP para efeitos de redundância.

Exemplo:

CONFIG= VERSAO= 1 HOST= 161.79.56.101


COMMUNITY=public HOSTR= 161.79.56.101

No caso acima é definida uma segunda porta para efeitos de


redundância. Tipicamente esta porta deve estar com o serviço
habilitado através de uma instância reserva de um agente SNMP (UTR
reserva).

PAS
Os pontos lógicos são definidos normalmente. No caso de pontos de
filtro ou de cálculo, pode-se usar um dos filtros ou cálculos tal como
explicado anteriormente.

PAF
Para o atributo ID utiliza-se uma convenção que determina o tipo de
ponto, o OID (Object ID) a que o ponto corresponde e se são
computados médias em diferentes intervalos de tempo.
11
SAGE
Sistema Aberto de Gerenciamento de Energia
- Tabelas

A convenção é ID = nome_tipo_oid. nome indica uma referência. tipo


indica se o ponto a ser medido é um valor instantâneo, ou valor
diferencial, ou de taxa ou ainda por média exponencial. Oid declara a
entrada na MIB que corresponde ao ponto físico em questão.

Uma observação para a definição de oid é que são definidos


descontando-se o prefixo .1.3.6.1 que são comuns a todos os oids de
interesse.

O tipo pode ser um dentre os seguintes:

Valor Instantâneo (tipo I) Definido pelo OID diretamente


Valor Diferencial (tipo D) Normalmente instantâneo
Taxa em Tempo (tipo ED ou ID) Pode ser instantâneo ou exponencial
Media Exponencial (tipo E) Definido por um filtro ou diretamente
Lista (L ou LD) Disponibiliza 3 pontos em ordem
decrescente dada por um parâmetro a
definir no atributo DESC1
Status (Sx) Onde x é um numero inteiro –
disponibiliza um índice de
disponibilidade. O número x indica o
valor a ser considerado como
verdadeiro. Qualquer valor diferente de
x é então considerado falso.
Texto (T) Tipos string (obs: necessário associar a
ponto com filtro FIL6)

Exemplo: ID = SRV1_I_.2.1.25.1.1.0

Demais atributos de interesse:

KCONV1 - mudança de escala, ou seja, o valor aquisitado será dividido


pelo valor atribuído a KCONV1. Exemplo: HOST_UPTIME fornecido pelo
agente SNMP em centésimos de segundo a converter para valores em
hora requer KCONV1 igual a 360000.

KCONV2 - utilizado para definir parâmetro a de média móvel ponderada


exponencial. Nota: 0 ≤ a ≤ 1, quanto maior o valor de a maior será o
peso dado a medida mais recente.

DESC1 – utilizada para ordenar em ordem decrescente uma lista, onde


os três maiores valores são armazenados. A sintaxe aqui deve ser a:b:c.
O valor de a é a parte fixa do OID (removendo-se .1.3.6.1 da parte
inicial). O valor de b é o complemento para o OID da medida a ser
considerada. E o valor de c é o complemento para o OID do nome
referente a medida armazenada.

Exemplo:

DESC1= .2.1.25:5.1.1.1:4.2.1.2.

Aqui a parte fixa é .1.3.6.1.2.1.25 (referente a MIB HOST-RESOURCES).

Os OIDs .1.3.6.1.2.1.25.5.1.1.1 são OIDs para entradas em tabelas de


processo que retornam consumo de CPU de cada processo.

E o OID .1.3.6.1.25.4.2.1.2 é o OID referente aos comandos


propriamente ditos dos processos cujos valores são armazenados.

12
Conversor de Protocolo
Julho - 2009
Tabelas -

PDF
Os pontos digitais físicos são definidos de forma similar aos pontos
analógicos físicos na tabela PAF. O atributo ID segue o mesmo formato
utilizado para PAF. O atributo KCONV é tipicamente configurado para
NOR.

PDS
Pontos digitais lógicos na tabela PDS são definidos normalmente.

CGF
Utiliza-se a mesmo formato para o atributo ID que é utilizado na tabela
PAF. O tipo de ponto é designado pela letra C.

Exemplo:

ID= SRV1_C_.4.1.2021.100.12.0

CGS
O atributo TRRAC define um intervalo de tempo para um temporizador
de controle. Ao expirar tal temporizador o controle é cancelado.

NV1
São definidas entradas na tabela NV1 específicas para a aquisição
SNMP.

NV2
São definidas entradas na tabela NV2 específicas para a aquisição
SNMP.

Para TN2 configura-se da seguinte forma:

TN2= ASIM para pontos digitais


TN2 = AANL para pontos analógicos
TN2 = ASTP para pontos analógicos que correspondem a uma
tabela
TN2= CSIM para pontos de controle

CXU
Para a tabela CXU é importante observar intervalos de tempo
(definidas nos atributos INTGR para pontos digitais e AQANL
para pontos analógicos) para aquisição de medidas que sejam
compatíveis com cálculo de médias em janelas de tempo e outros
fatores similares.
13
SAGE
Sistema Aberto de Gerenciamento de Energia
- Tabelas

UTR
É definida normalmente com a devida atenção para o campo
RESPT que deve ter um valor para tempo acima do tempo que se
espera para aquisição de dados. Para aquisição de dados em
tabela o tempo necessário é tipicamente maior. É recomendável
neste caso definir uma outra entrada em UTR para este tipo de
ponto ainda que seja referente a um mesmo equipamento de
outra entrada na tabela.

TAC
É definida normalmente. Utiliza-se ASAC para o atributo TPAQS.

ENU
Deve-se observar que o valor de TDESC seja compatível, pois ao
fazer aquisição o valor definido em TDESC é o intervalo de tempo
entre dois pedidos consecutivos de aquisição.

14
Conversor de Protocolo
Julho - 2009
Geração Automática de Base Fonte

Há uma ferramenta que permite automatizar o processo de criação de


pontos na base fonte. Tal procedimento auxilia a tarefa de gerência
pois cria os pontos seguindo um padrão recomendado pelo CEPEL.
Configurações particulares podem ser modificadas a partir da
configuração padrão gerada pela ferramenta, dependendo dos casos
particulares.

Procedimento

Escrever um arquivo de configuração (formato ASCII) que contém as


informações sobre elementos de rede (Estações SAGE, switches,
roteadores etc.) e medidas a serem obtidas de cada um dos elementos
definidos.

Inicialmente, é necessário definir dados globais como o número inicial


para CXU, o ID do gateway SCADA (GSD) a ser referenciado e a TAC de
cálculos a ser referenciada.

Exemplo:

; Declaracao de dados globais

TAC_CALC = CALC_TAC
GSD = GW1
CXU_INICIAL = 4

Neste exemplo, a TAC de cálculos tem seu ID CALC_TAC e o gateway


SCADA é GW1. A CXU_INICIAL é o primeiro valor a ser usado para o
campo ORDEM para as CXU referentes a SNMP. O procedimento
comum aqui seria inspecionar o arquivo cxu.dat da base fonte e notar o
valor máximo para o campo ORDEM. No exemplo, haveria três CXUs
sem relação com SNMP, que ocupariam o espaço de ORDEM entre 1-3.
Portanto, as CXUs referentes a SNMP devem iniciar pelo valor de
ORDEM igual a 4.

Em seguida, define-se informações sobre os elementos e sobre o acesso


SNMP a estes elementos:

[HOST]

ID = srv1
IP_ADDR1 = 161.79.56.101:1027
SNMP_VERSAO = 1
SNMP_COMMUNITY = public

Em seguida define-se medidas a serem obtidas para cada elemento,


utilizando-se a seguinte sintaxe:

TIPO INFO [opções]


15
SAGE
Sistema Aberto de Gerenciamento de Energia
- Geração Automática de Base Fonte

TIPO refere-se a PAS, PDS, ou CGS.


INFO refere-se a uma informação relacionada ao ponto e é um rótulo
associado a um OID em arquivo $BD/../sys/snmp_oids.txt. Um arquivo
inicial para snmp_oids.txt pode ser encontrado em
$SAGE/bin/scripts/genbasesnmp. Por exemplo, HOST_UPTIME refere-
se ao tempo de operação de uma estação (PC, por exemplo) e consta no
arquivo $BD/../sys/snmp_oids.txt associado ao OID .2.1.25.1.1 (Na
verdade .1.3.6.1.2.1.25.1.1, mas o .1.3.6.1 é suprimido). Isto torna o
arquivo de configuração de base mais fácil de ler. O arquivo
$BD/../sys/snmpd_oids.txt é editável por quem configura, de forma
que se pode adicionar novos OIDs e também alterar rótulos existentes.
Por exemplo, HOST_UPTIME pode ser alterado para HUPTIME no caso
de preferência por nome mais curto, já que este rótulo entra no ID do
ponto associado, seja PAS, PDS ou CGS.
Finalmente, opções =

TIPM x KCONV1 y KCONV2 w IND z DIFF v INC k


NOME “str”; comentário: tudo em uma única linha!

onde: x =ED, D, L, LD, I, T, S


y= fator de escala
w = fator p/média exponencial
z = índice em tabela
v = string ou número para
diferenciar o ponto
k = max1h med1min med10min med1h med1d
(podendo receber um ou mais destes valores)
str = campo nome do ponto

Exemplo:

PAS HOST_UPTIME KCONV1 360000 INC max1h med1h

Caso não seja incluído o NOME, a geração automática inclui um nome


construído com base nos parâmetros ID, INFO e opções INC e DIFF.

Um script (gerabasesnmp) gera entradas para tabelas PAS, PAF, PDS,


PDF, CGS, CGF, NV1, NV2, TAC, LSC, ENU, CXU, UTR, CNF, RCA,
RFC.

Estas entradas são colocadas em arquivos localizados em


$BD/dados/snmp. O script faz uma operação do tipo merge entre
arquivos para concatenar entradas da base fonte localizadas em
arquivos no diretório $BD/dados/básico com os arquivos gerados para
gerência SNMP e finalmente colocar os arquivos completos da base
fonte no diretório padrão utilizado pelo SAGE que é $BD/dados.

16
Conversor de Protocolo
Julho - 2009

Você também pode gostar