Monit.

MONITORANDO SERVIDORES SAP (CCMS) COM ZABBIX parte 2 – monitorando BUFFERS

Escrito por Douglas Baiocco. Publicado em Nagios/ZABBIX.

Neste artigo, iremos continuar o processo de monitoramento do SAP através do ZABBIX, mas nos exemplos, iremos monitorar itens que retornam mais de uma linha.

Para ver a primeira parte, siga o link abaixo:

http://ajudadigital.com.br/index.php/windows/171-monitorando-servidores-sap-ccms-com-zabbix

No artigo passado, instalamos o plugin para acessar a CCMS e fizemos o teste com um valor chamado ResponseTime. Neste artigo, iremos pegar valores dos BUFFERs. Vejam um exemplo de dados de BUFFERs no SAP ECC acessando a transação st02:

image001

Monitorar isso pode ser um belo indicador da saúde do seu ambiente, pois estouro de BUFFERS podem ocasionar lentidão e erros no SAP.

Mas qual o motivo de termos um tópico em separado para isso? O maior problema neste cenário está relacionado com o retorno do valor pelo script da CCMS. Veja como ele retorna o valor do item responsetime na linha de comando:


image002

 

Para os BUFFERS, vamos usar como exemplo o PROGRAM BUFFER. Para acessá-lo, vou configurar da seguinte maneira o arquivo agent.cfg, no diretório sapmon:


image003

[TEMPLATE_buffers_program]

DESCRIPTION="BUFFER PROGRAM"

MONI_SET_NAME=SAP CCMS Monitor Templates

MONI_NAME="Buffers"

PATTERN_0="*Program*"

 

Quando eu faço o teste na linha de comando, veja o resultado:
image004

Note que são exibidas várias linhas, cada uma delas com um parâmetro que deveria ser monitorado. Lembrando que os valores que nos interessam são:

DirectoryUsed – espaço ocupado do buffer

SpaceUsed – quantidade de objetos do buffer utilizados

HitRatio – taxa de acerto do buffer

Swap – quantidade de trocas realizadas no buffer

 

O problema está em tratar esses valores dentro do ZABBIX. Eu testei de algumas formas (usando um script para tratar e receber um JSON, por exemplo) mas não obtive sucesso. Então, para não ficar criando script em linha de comando e manter tudo no ZABBIX, fiz uma “solução de contorno”. Criei uma cópia do script de checagem do NAGIOS. Com isso, posso chamar várias vezes o script (mudando o nome dentro do ITEM) e ter os valores que eu quero. Não é o mais elegante nem o mais rápido, mas funcionou.

Veja abaixo como ficaram os ITENS dentro do template:


image005

Note que cada item tem um check_sap com um numero. Dessa maneira, eu consigo monitorar vários itens do BUFFER dentro de um mesmo template. Infelizmente são feitas 4 chamadas ao servidor para extrair os valores. Nem tudo são flores.

 

E esse é o detalhe de um dos itens:
image006

 

Veja que, como no artigo anterior, o segredo está no PREPROCESSING:
image007

 

Fazendo dessa forma, qualquer valor que retorne da CCMS com mais de uma linha pode ser monitorado. É claro que se encontrar um jeito mais inteligente de fazer isso, compartilharei aqui. E se você tiver um jeito melhor, pode me contar também. Eu mantenho os créditos.

Vou disponibilizar o XML do template para facilitar a vida no link abaixo

TEMPLATE

 

EDIT 1

Graças a dica do sr. Rodolfo Ribeiro, podemos mudar a forma de monitoramento dos buffers. No meu exemplo estou copiando várias vezes o check_sap, mas podemos apenas criar diversas instancias no agent.cfg. Desta forma ficaria assim o agent.cfg:

[TEMPLATE_buffers_program_directory]

DESCRIPTION="BUFFER PROGRAM"

MONI_SET_NAME=SAP CCMS Monitor Templates

MONI_NAME="Buffers"

PATTERN_0="*Program*"

 

[TEMPLATE_buffers_program_space]

DESCRIPTION="BUFFER PROGRAM"

MONI_SET_NAME=SAP CCMS Monitor Templates

MONI_NAME="Buffers"

PATTERN_0="*Program*"

 

[TEMPLATE_buffers_program_hitratio]

DESCRIPTION="BUFFER PROGRAM"

MONI_SET_NAME=SAP CCMS Monitor Templates

MONI_NAME="Buffers"

PATTERN_0="*Program*"

 

[TEMPLATE_buffers_program_swap]

DESCRIPTION="BUFFER PROGRAM"

MONI_SET_NAME=SAP CCMS Monitor Templates

MONI_NAME="Buffers"

PATTERN_0="*Program*"

 

No ZABBIX eu precisaria apenas colocar cada item com o respectivo valor do arquivo, sem ficar mudando o check_sap, conforme a imagem:

zabbix2

 

E no preprocessing fazer o mesmo dos exemplos acima: 

zabbix3

 

O check_sap continuará trazendo tudo, mas agora ficou mais elegante.