Monitorando Servidores SAP (CCMS) com 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:
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:
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:
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:
Veja o item criado:
E aqui o detalhe do item:
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:
O TRIGGER está definido desta forma:
E, em mais detalhes:
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.