Monit.

Monitorando Servidores SAP (CCMS) com ZABBIX

Escrito por Douglas Baiocco. Publicado em Nagios/ZABBIX.

Após mais de 8 anos usando Nagios, resolvi mudar. Utilizava uma versão pré-fabricada do Nagios, o FAN (FULLY AUTOMATED NAGIOS) que vinha com o Nagios, Centreon e Nagvis em um pacote do CENTOS prontinho para uso. Mas o projeto foi descontinuado, o Centreon virou uma ferramenta de monitoramento completa concorrente do Nagios e PAGA.

O FAN funcionava muito bem, mas por ser um projeto de 2011, precisava atualizar algumas coisas. Foi quando me deparei com o ZABBIX. Sempre ouvi falar dele, mas confesso que tinha preconceito, afinal, o Nagios foi um dos pioneiros e na época, era muito conhecido. Comecei a dar uma chance para a ferramenta neste ano. Aproveitei a quarentena para atualizar nosso servidor e usar o ZABBIX.

Grata foi a surpresa. Instalei um Debian, coloquei o Zabbix pra funcionar e me surpreendi com a facilidade. É claro que, para quem vem de outro software, tudo é novidade. Demorei pra encontrar as coisas e acostumar com o layout. Mas isso já está quase superado. Estou trocando oficialmente a nossa solução.

Desde então, tenho utilizado o ZABBIX para monitorar toda nossa infraestrutura. Nossos servidores On-Premise, serviços Cloud e equipamentos. A nossa ferramenta precisava de uma coisa indispensável: monitoramento de soluções SAP ABAP.

Vamos a uma pausa por aqui: já ouvi muita gente dizendo: “usa o SOLMAN pra monitorar o SAP”.

Minha opinião é a de que o SOLMAN faz muita coisa, mas monitorar um sistema SAP da mesma forma que uma ferramenta de monitoramento não é muito o forte dele. Além do mais, a configuração é difícil, é limitado e está preso no ecossistema da SAP. Ponto.

Voltando ao que interessa, com o ZABBIX consegui usar de alguns artifícios para monitorar os ambientes SAP do jeito que eu queria. Eu usei um plugin do NAGIOS para conseguir o acesso aos ambientes SAP e configurei o ZABBIX para interpretar os resultados.

Ainda não está elegante, mas funciona muito bem.

Versões dos programas

O primeiro passo, é claro, é ter o ZABBIX funcionando. Estou usando a versão 5.0 em um DEBIAN 10 (BUSTER).

Plugin do SAP

O plugin do Nagios é o mesmo deste artigo:

http://ajudadigital.com.br/index.php/nagios/128-nagios-monitorando-sap-com-nagios

Vou replicar aqui o que deve ser feito para que o plugin funcione:

Copie o plugin descompactado na pasta /opt com a ferramenta de sua preferência (eu utilizo o winscp)Após isso, no terminal do seu Linux, entre na pasta:#cd /opt/

Entre na pasta do plugin:

#cd nagios-sap-ccms/

Entre na pasta src:

#cd /src/

Utilize o comando MAKE para criar os arquivos

#make

Copie as bibliotecas geradas para os destinos corretos com os seguintes comandos:

#cp sap_moni.so /usr/lib/

#cp sap_moni.so /usr/lib64/

#cp librfccm.so /usr/lib/

#cp librfccm.so /usr/lib64/

Crie uma pasta para os arquivos de configuração:

#mkdir /etc/sapmon

Copie os arquivos de configuração para a pasta criada

#cp /opt/nagios-sap-ccms/config/* /etc/sapmon/

 

A partir deste ponto, as coisas mudam para o ZABBIX. Vamos copiar o arquivo de checagem para a pasta de script externos, localizada em meu caso em:

/usr/lib/zabbix/externalscripts

 

#cp /opt/nagios-sap-ccms/src/check_sap /usr/lib/zabbix/externalscripts

Vamos duplicar 10 vezes o script na pasta, depois eu explico o motivo:

#cd /usr/lib/zabbix/externalscripts

#for f in check_sap{1..10}; do cp check_sap $f; done

 

E vamos deixá-los executáveis:

#chmod +x *

 

Configurando o PLUGIN DO SAP

Para testarmos se os comandos estão funcionando, iremos configurar o plugin. Edite o arquivo login.cfg com o comando:

#nano /etc/sapmon/login.cfg

O seguinte conteúdo deve ser adicionado:

[LOGIN_nome_do_servidor]

LOGIN=-d CRB -u user_do_sap -p password -h IP_DO_SAP -s 00 -c 600

Onde temos:

-d BWP

O SID do ambiente

-u user_do_sap

Um usuário que tenha permissão para acesso a CCMS. Cuidado nesse ponto. Atribua um usuário que não possua muitos acessos para que este não tenha plenos poderes dentro do ambiente. Em nosso caso, utilizamos um usuário com o perfil S_A.SYSTEM

-p password

Senha em texto puro do seu usuário

-h IP_DO_SAP

Ip do servidor em que o sap está localizado (APPLICATION SERVER)

-s 00

System Number do application server

-c 600

Mandante do ambiente SAP

Agora precisamos definir quais serão os parâmetros monitorados pelo Nagios. Crie um arquivo com o seguinte comando:

#nano /etc/sapmon/agent.cfg

Ele deve ter esta estrutura:

[TEMPLATE_dialog_response_time]

MONI_SET_NAME="SAP CCMS Monitor Templates"

MONI_NAME="Dialog Overview"

PATTERN_0="*Dialog\ResponseTime*"

Em detalhe:

[TEMPLATE_dialog_response_time]

Nome do serviço chamado pelo plugin. Note a estrutura: é necessário ter esta aparencia, com a palavra TEMPLATE_ antes do nome

MONI_SET_NAME="SAP CCMS Monitor Templates"

MONI_NAME="Dialog Overview"

Nome da chave principal e da secundaria dentro da CCMS no SAP

Veja no print abaixo:

image001

Obs.: Para acessar a CCMS em um ambiente SAP (CRM, ECC, BW, etc) use a transação RZ20.

PATTERN_0="*Dialog\ResponseTime*"

Este é um ponto um pouco mais complicado. Aqui temos um campo de pesquisa para localizar o nó da CCMS. Para preencher estes dados, precisamos acessar a chave que queremos. A tela a seguir será apresentada:

image002

Selecione a chave final (neste caso sqsap023_CRB_00) e clique em Características

Note que a chave possui em seu titulo ...\Dialog\ResponseTime. Note que este final identifica este Nó da CCMS. Portanto no arquivo de configuração, colocamos *Dialog\ResponseTime*

É o suficiente para que seja identificado. Em alguns casos, precisamos ser mais específicos.

Com estes dois arquivos criados, podemos testar o acesso e ver o resultado da consulta. Entre na pasta dos scripts externos do ZABBIX e digite o comando abaixo:

#cd /usr/lib/zabbix/externalscripts

#./check_sap dialog_response_time NOME_DO_SERVIDOR

Veja o resultado:


image003

O retorno do script é o conteúdo da CCMS do SAP.

Configurando o ZABBIX

Agora iremos configurar o ZABBIX. Para tanto, eu criei um Template para cada item monitorado. Isso pode ser mais trabalhoso, mas deixa livre para você colocar o item monitorado em cada servidor que desejar. Veja como defini um dos meus templates:


image004

Veja o item criado:


image005

E aqui o detalhe do item:


image006

O segredo está em usar o PREPROCESSING do Item para recuperar o valor desejado. Como o script retorna um texto, eu uso uma expressão regular para retornar apenas o valor do tempo de resposta. Veja o meu como ficou:


image007

O TRIGGER está definido desta forma:


image008

E, em mais detalhes:


image009

Para facilitar, o XML para você importar este template no ZABBIX está aqui.

Conclusão

Com tudo isso, temos um monitoramento do SAP usando o ZABBIX sem precisar ficar criando SCRIPTs fora da Aplicação. Isso foi uma das características que me chamaram atenção quando comecei a ler sobre esta ferramenta: no Nagios, tudo rola através de scripts (chamados plugins). Estes scripts executam verificações e devolvem para o Nagios os resultados. O Nagios trata os resultados, aciona os eventos e alertas. No ZABBIX, a dependência dos scripts é menor. Boa parte da inteligência dos testes está na ferramenta, evitando ter que ficar trocando entre interface gráfica/linha de comando/programação. Esse foi o ponto que me fez testar o ZABBIX.