Leandro Moreira TI | Ensino e Treinamento em TI - Aplicando Patch no Zabbix para Correção de erro de consulta ODBC no Oracle
  • E-mail This email address is being protected from spambots. You need JavaScript enabled to view it.

 

Passo a passo executado no vídeo

Aplicar patch ODBC no ZAbbix e Compilar o novo pacotehttp://www.leandromoreirati.com.br/administrator/index.php?option=com_docman&view=doclink&e_name=jform_articletext&tmpl=component

O erro foi relatado no suporte do Zabbix, linka abaixo:

https://support.zabbix.com/browse/ZBX-11213

1) instalar dependenicas necesárias para compilação do pacote

- Vamos editar o source list, incluindo um repositório do ubunto para que possamos inmstalar o java, dependência necessária para compilação do zabbix-java-gateway

vi /etc/apt/sources.list

# Repo java
deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main

Importando a chave do repositório
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886

aptitude update

aptitude install -y dpkg-dev libsnmp-dev libpopt-dev libncurses5-dev libssl-dev debhelper chrpath libgdbm-dev autotools-dev libmysqlclient-dev libpq-dev libcurl4-openssl-dev unixodbc-dev java-sdk libxml2-dev openjdk-8-jdk libsqlite3-dev libldap2-dev libiksemel-dev libopenipmi-dev libssh2-1-dev quilt pkg-config oracle-java8-installer

2) Baixando os fontes do zabbix

# apt-get source zabbix

3) Realizando Download do patch

https://support.zabbix.com/secure/attachment/44984/ZBX-11213.patch

4) Aplicando o patch e comitando as alaterações

Antes de aplicar vamos fazer um backup do arquivo e verificar se os arquivos são idênticos (esse passo é facultativo é apenas para fazermos uma comparação antes  e depis da aplicação do patch)

# cp -rpvf odbc.c /root

diff /root/odbc.c odbc.c (se ele voltar diretamente para o shell é por que não identificou difrenças entre os arquivos)

cd /root/zabbix-3.0.5/src/libs/zbxdbhigh

patch odbc.c /root/ZBX-11213.patch

root@debian:~/zabbix-3.0.5/src/libs/zbxdbhigh# patch odbc.c /root/ZBX-11213.patch
patching file odbc.c

A mensagem "patching file odbc.c" for exibita o patch foi aplicado com sucesso.

diff /root/odbc.c odbc.c (podemos ver abaixo que os arquivos j[á não são mais idênticos)

root@debian:~/zabbix-3.0.5/src/libs/zbxdbhigh# diff /root/odbc.c odbc.c
302,313d301
<       pdbh->data_len = (SQLLEN *)zbx_malloc(pdbh->data_len, sizeof(SQLLEN) * pdbh->col_num);
<
<       for (i = 0; i < pdbh->col_num; i++)
<       {
<               if (0 != CALLODBC(SQLColAttribute(pdbh->hstmt, (SQLUSMALLINT)(i + 1), SQL_DESC_OCTET_LENGTH, NULL, 0,
<                               NULL, &pdbh->data_len[i]), rc, SQL_HANDLE_STMT, pdbh->hstmt,
<                               "Cannot execute ODBC query"))
<               {
<                       goto end;
<               }
<       }
<
314a303,306
>       memset(pdbh->row_data, 0, sizeof(char *) * (size_t)pdbh->col_num);
>
>       pdbh->data_len = zbx_malloc(pdbh->data_len, sizeof(SQLLEN) * (size_t)pdbh->col_num);
>       memset(pdbh->data_len, 0, sizeof(SQLLEN) * (size_t)pdbh->col_num);
318c310
<               pdbh->row_data[i] = zbx_malloc(NULL, pdbh->data_len[i]);
---
>               pdbh->row_data[i] = zbx_malloc(pdbh->row_data[i], MAX_STRING_LEN);
320c312
<                               pdbh->data_len[i], &pdbh->data_len[i]), rc, SQL_HANDLE_STMT, pdbh->hstmt,
---
>                               MAX_STRING_LEN, &pdbh->data_len[i]), rc, SQL_HANDLE_STMT, pdbh->hstmt,

5) Comitando as alterações no pacote

cd /root/zabbix-3.0.5 (local onde baixou o fonte do zabbix)
# dpkg-source --commit

root@debian:~/zabbix-3.0.5# dpkg-source --commit
dpkg-source: info: using options from zabbix-3.0.5/debian/source/options: --extend-diff-ignore=\.(bat|exe)$
dpkg-source: info: local changes detected, the modified files are:
 zabbix-3.0.5/src/libs/zbxdbhigh/odbc.c
Enter the desired patch name: Zbx-odbc

Sair sem salvar o arquivo

6) Compilando o novo pacotes

# dpkg-buildpackage
 
7) Comcluída a compilação vamos parar o zabbix-server remover o pacote instalado, apenas o zabbix-server e instala-lo novamente.

# systemctl stop zabbix-server

# cp -rpvf /etc/zabbix/zabbix-server.conf /root

# aptitude purge zabbix-server-pgsql

Instalando as dependencias do zabbix-server

# aptitude install fping snmp

Instalano o zabbix-server

# dpkg -i zabbix-server-<version>.deb

8) Retornar o backup do zabbix-sevrer.conf, iniciar o server e testar o monitoramento de oracle.

cat /root/zabbix-server.conf > /etc/zabbix/zabbix-server.conf

# systemct start zabbix-sevrer

Outros Artigos relacionados:

Monitoramento de Banco de dados Oracle Via ODBC

Monitoramento de Banco de dados Oracle via ODBC no Zabbix - Variáveis de ambiente

Gostou desse vídeo? Curta, compartilhe com seus amigos, assine minha lista de email

facebook YouTube icon full color news

 

 
Share

Está precisando de ajuda em TI? Temos informações valiosas para você, solicite uma consultoria.É Grátis

Parceiros

microsoft logo homecard    
       

Sobre Nós

perfil

 

 Leandro Moreira TI

Em nosso portal de treinamentos em TI temos cursos focados nas melhores práticas do mercado, de curta duração que irão destacar seu currículo. Estes treinamentos são voltados para a prática, de forma a criar situações do dia-a-dia para melhor enfatizar os conteúdos ministrados.

Saiba Mais