{"id":502,"date":"2016-08-14T23:05:33","date_gmt":"2016-08-15T02:05:33","guid":{"rendered":"http:\/\/wordpress.jpcorp.eti.br\/?p=502"},"modified":"2021-12-26T12:31:16","modified_gmt":"2021-12-26T15:31:16","slug":"zabbix-monitorando-via-odbc-mariadbmysql-e-oracle","status":"publish","type":"post","link":"https:\/\/wordpress.jpcorp.eti.br\/?p=502","title":{"rendered":"Zabbix &#8211; Monitorando via ODBC MariaDB|Mysql e Oracle"},"content":{"rendered":"<p style=\"text-align: justify;\">Uma das fun\u00e7\u00f5es que o Zabbix possu\u00ed e o <a href=\"https:\/\/www.zabbix.com\/documentation\/3.0\/manual\/config\/items\/itemtypes\/odbc_checks\">ODBC Monitoring<\/a> que como o pr\u00f3prio nome diz \u00e9 extrair informa\u00e7\u00f5es de um banco de dados via ODBC. Bora fazer funcionar com MariaDB e Oracle.<\/p>\n<h3>Zabbix<\/h3>\n<p style=\"text-align: justify;\">Primeiramente devemos preparar o ambiente para suportar conex\u00f5es ODBC, abaixo os pacotes:<\/p>\n<pre class=\"lang:sh decode:true\">[root@zabbix ~]# yum -y install unixodbc unixodbc-dev\r\n[root@zabbix ~]# odbcinst --help\r\nunixODBC 2.3.1\r\n[root@zabbix ~]# isql --help\r\nunixODBC 2.3.1<\/pre>\n<p>Descri\u00e7\u00e3o da chave no Zabbix:<\/p>\n<blockquote><p>db.odbc.select[&lt;unique short description&gt;,&lt;dsn&gt;]<\/p>\n<p>db.odbc.select[descricao_item,nome_setado_no_odbc_ini]<\/p><\/blockquote>\n<h3>MariaDB|MySQL<\/h3>\n<p style=\"text-align: justify;\">Para rolar o ODBC em MariaDB|MySQL devemos instalar o conector para ele:<\/p>\n<pre class=\"lang:sh decode:true\">[root@zabbix ~]# yum -y install mysql-connector-odbc<\/pre>\n<p style=\"text-align: justify;\">Ap\u00f3s instala\u00e7\u00e3o temos o arquivo de configura\u00e7\u00e3o \"\/etc\/odbcinst.ini\" ele possu\u00ed as configura\u00e7\u00f5es de bibliotecas para os drivers ODBCs, no caso o MariaDB|MySQL ele j\u00e1 cria sozinho essas entradas, portanto confirme no final do arquivos e temos o comando \"odbcinst\" que mostra os arquivos de configura\u00e7\u00e3o:<\/p>\n<pre class=\"lang:sh decode:true\">[root@zabbix ~]# odbcinst -j\r\nunixODBC 2.3.1\r\nDRIVERS............: \/etc\/odbcinst.ini\r\nSYSTEM DATA SOURCES: \/etc\/odbc.ini\r\nFILE DATA SOURCES..: \/etc\/ODBCDataSources\r\nUSER DATA SOURCES..: \/root\/.odbc.ini\r\nSQLULEN Size.......: 8\r\nSQLLEN Size........: 8\r\nSQLSETPOSIROW Size.: 8<\/pre>\n<pre class=\"lang:sh decode:true\">[root@zabbix ~]# cat \/etc\/odbcinst.ini\r\n\r\n# Driver from the mysql-connector-odbc package\r\n# Setup from the unixODBC package\r\n[MySQL]\r\nDescription     = ODBC for MySQL\r\nDriver          = \/usr\/lib\/libmyodbc5.so\r\nSetup           = \/usr\/lib\/libodbcmyS.so\r\nDriver64        = \/usr\/lib64\/libmyodbc5.so\r\nSetup64         = \/usr\/lib64\/libodbcmyS.so\r\nFileUsage       = 1<\/pre>\n<p style=\"text-align: justify;\">O outro arquivo importante \u00e9 o \"\/etc\/odbc.ini\" pois nele configuramos qual o banco de dados que iremos consultar e qual o driver que ser\u00e1 utilizado, e o Zabbix utiliza este arquivo para efetuar seu trabalho, ent\u00e3o se atente a ele, vamos criar o \"zabbixserver\" com as informa\u00e7\u00f5es para conex\u00e3o ao banco de dados do nosso Servidor Zabbix:<\/p>\n<pre class=\"lang:sh decode:true\">[root@zabbix ~]# vi \/etc\/odbc.ini\r\n\r\n[zabbixserver]\r\nDescription     = MySql\r\nDriver          = mysql\r\nServer          = 127.0.0.1\r\nUser            = zabbix\r\nPassword        = 123@123\r\nDatabase        = zabbix<\/pre>\n<p style=\"text-align: justify;\">E para o teste utilizamos o \"isql\" chamando o \"zabbixserver\" que foi o nome setado dentro dos colchetes acima, e j\u00e1 pra come\u00e7ar a fixar este nome \u00e9 o setado no campo \"&lt;dsn&gt;\" dentro da chave do item no Zabbix:<\/p>\n<pre class=\"lang:sh decode:true\">[root@zabbix ~]# isql -v zabbixserver\r\n+---------------------------------------+\r\n| Connected!                            |\r\n|                                       |\r\n| sql-statement                         |\r\n| help [tablename]                      |\r\n| quit                                  |\r\n|                                       |\r\n+---------------------------------------+\r\nSQL&gt; SELECT VERSION();\r\n+---------------+\r\n| VERSION()     |\r\n+---------------+\r\n| 5.5.50-MariaDB|\r\n+---------------+\r\nSQLRowCount returns 1\r\n1 rows fetched\r\nSQL&gt;<\/pre>\n<p style=\"text-align: justify;\">E abaixo um item criado em nosso Zabbix:<\/p>\n<h3><a href=\"http:\/\/wordpress.jpcorp.eti.br\/?attachment_id=570\" rel=\"attachment wp-att-570\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-570\" src=\"http:\/\/wordpress.jpcorp.eti.br\/wp-content\/uploads\/2016\/08\/odbc-mariadb-1.png\" alt=\"odbc-mariadb\" width=\"764\" height=\"572\" srcset=\"https:\/\/wordpress.jpcorp.eti.br\/wp-content\/uploads\/2016\/08\/odbc-mariadb-1.png 764w, https:\/\/wordpress.jpcorp.eti.br\/wp-content\/uploads\/2016\/08\/odbc-mariadb-1-300x225.png 300w, https:\/\/wordpress.jpcorp.eti.br\/wp-content\/uploads\/2016\/08\/odbc-mariadb-1-644x482.png 644w\" sizes=\"auto, (max-width: 764px) 100vw, 764px\" \/><\/a>Oracle<\/h3>\n<p style=\"text-align: justify;\">Para o Oracle funcionar precisamos instalar o ODBC para ele e efetuar algumas configura\u00e7\u00f5es para carregar as vari\u00e1veis, e configurar o tnsnames.ora conforme seu banco de dados:<\/p>\n<pre class=\"lang:sh decode:true\">[root@zabbix ~]# wget http:\/\/download.oracle.com\/otn\/linux\/instantclient\/121020\/oracle-instantclient12.1-odbc-12.1.0.2.0-1.x86_64.rpm\r\n[root@zabbix ~]# rpm -ivh oracle-instantclient12.1-odbc-12.1.0.2.0-1.x86_64.rpm\r\n[root@zabbix ~]# ll \/usr\/lib\/oracle\/12.1\/client64\/lib\/libsqora.so.12.1\r\n[root@zabbix ~]# export ORACLE_HOME=\/usr\/lib\/oracle\/12.1\/client64\r\n[root@zabbix ~]# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME\/lib\r\n[root@zabbix ~]# mkdir \/etc\/zabbix\/odbc\r\n[root@zabbix ~]# vim \/etc\/zabbix\/odbc\/tnsnames.ora\r\n[root@zabbix ~]# export TNS_ADMIN=\/etc\/zabbix\/odbc<\/pre>\n<p>Criarmos a entrada para o driver em \"\/etc\/odbcinst.ini\", se atente que o Oracle dentro dos colchetes \u00e9 o apontamento do driver:<\/p>\n<pre class=\"lang:sh decode:true \">[root@zabbix ~]# vi \/etc\/odbcinst.ini\r\n\r\n[Oracle]\r\nDescription     = Oracle ODBC\r\nDriver          = \/usr\/lib\/oracle\/12.1\/client64\/lib\/libsqora.so.12.1\r\nFileUsage       = 1\r\nDriver Logging  = 7<\/pre>\n<p>E agora criamos as configura\u00e7\u00f5es com nosso banco de dados Oracle, lembrando que ele busca no TNS_ADMIN que possui o \"tnsnames\":<\/p>\n<pre class=\"lang:sh decode:true\">[root@zabbix ~]# vi \/etc\/odbc.ini\r\n\r\n[odbcoracle]\r\nDescription     = Oracle\r\nDriver          = Oracle\r\nServerName      = ERP\r\nUserID          = UZABBIX\r\nPassword        = UZABBIX<\/pre>\n<p>Efetuando o teste:<\/p>\n<pre class=\"lang:sh decode:true \">[root@zabbix ~]# isql odbcoracle\r\n+---------------------------------------+\r\n| Connected!                            |\r\n|                                       |\r\n| sql-statement                         |\r\n| help [tablename]                      |\r\n| quit                                  |\r\n|                                       |\r\n+---------------------------------------+\r\nSQL&gt; select banner from v$version where rownum=1;\r\n+---------------------------------------------------------------------------------+\r\n| BANNER                                                                          |\r\n+---------------------------------------------------------------------------------+\r\n| Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production    |\r\n+---------------------------------------------------------------------------------+\r\nSQLRowCount returns -1\r\n1 rows fetched\r\nSQL&gt;<\/pre>\n<p>Um detalhe importante do ODBC Oracle que para o Servidor Zabbix consiga rodar ele e carregar as vari\u00e1veis necess\u00e1rias que efetuamos o export precisamos carrega-la no pr\u00f3prio servi\u00e7o, abaixo para sabermos qual \u00e9 o arquivo correto a setar essas vari\u00e1veis e adicionando nele:<\/p>\n<pre class=\"lang:sh decode:true \">[root@zabbix ~]# grep EnvironmentFile \/usr\/lib\/systemd\/system\/zabbix-server.service\r\nEnvironmentFile=-\/etc\/sysconfig\/zabbix-server<\/pre>\n<pre class=\"lang:sh decode:true \">[root@zabbix ~]# vi \/etc\/sysconfig\/zabbix-server\r\n\r\nORACLE_HOME=\/usr\/lib\/oracle\/12.1\/client64\r\nLD_LIBRARY_PATH=\/usr\/lib\/oracle\/12.1\/client64\/lib\r\nTNS_ADMIN=\/etc\/zabbix\/odbc\r\nexport ORACLE_HOME\r\nexport LD_LIBRARY_PATH\r\nexport TNS_ADMIN\r\n\r\n[root@zabbix ~]# systemctl restart zabbix-server\r\n[root@zabbix ~]# strings -a \/proc\/PID_PROCESSO_ZABBIX_SERVER\/environ\r\nLANG=pt_BR.UTF-8\r\nPATH=\/usr\/local\/sbin:\/usr\/local\/bin:\/usr\/sbin:\/usr\/bin\r\nCONFFILE=\/etc\/zabbix\/zabbix_server.conf\r\nORACLE_HOME=\/usr\/lib\/oracle\/12.1\/client64\r\nLD_LIBRARY_PATH=\/usr\/lib\/oracle\/12.1\/client64\/lib\r\nTNS_ADMIN=\/etc\/zabbix\/odbc<\/pre>\n<p>Criando o item no Zabbix:<\/p>\n<p><a href=\"http:\/\/wordpress.jpcorp.eti.br\/?attachment_id=574\" rel=\"attachment wp-att-574\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-574\" src=\"http:\/\/wordpress.jpcorp.eti.br\/wp-content\/uploads\/2016\/08\/odbc-oracle.png\" alt=\"odbc-oracle\" width=\"781\" height=\"572\" srcset=\"https:\/\/wordpress.jpcorp.eti.br\/wp-content\/uploads\/2016\/08\/odbc-oracle.png 781w, https:\/\/wordpress.jpcorp.eti.br\/wp-content\/uploads\/2016\/08\/odbc-oracle-300x220.png 300w, https:\/\/wordpress.jpcorp.eti.br\/wp-content\/uploads\/2016\/08\/odbc-oracle-768x562.png 768w, https:\/\/wordpress.jpcorp.eti.br\/wp-content\/uploads\/2016\/08\/odbc-oracle-644x472.png 644w\" sizes=\"auto, (max-width: 781px) 100vw, 781px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Uma das fun\u00e7\u00f5es que o Zabbix possu\u00ed e o ODBC Monitoring que como o pr\u00f3prio nome diz \u00e9 extrair informa\u00e7\u00f5es de um banco de dados via ODBC. Bora fazer funcionar com MariaDB e Oracle. Zabbix Primeiramente devemos preparar o ambiente para suportar conex\u00f5es ODBC, abaixo os pacotes: [root@zabbix ~]# yum -y install unixodbc unixodbc-dev [root@zabbix&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20,6,48],"tags":[9,46,29,41],"class_list":["post-502","post","type-post","status-publish","format-standard","hentry","category-banco-de-dados","category-linux","category-zabbix","tag-linux","tag-mariadb","tag-oracle","tag-zabbix"],"_links":{"self":[{"href":"https:\/\/wordpress.jpcorp.eti.br\/index.php?rest_route=\/wp\/v2\/posts\/502","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.jpcorp.eti.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.jpcorp.eti.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.jpcorp.eti.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.jpcorp.eti.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=502"}],"version-history":[{"count":12,"href":"https:\/\/wordpress.jpcorp.eti.br\/index.php?rest_route=\/wp\/v2\/posts\/502\/revisions"}],"predecessor-version":[{"id":580,"href":"https:\/\/wordpress.jpcorp.eti.br\/index.php?rest_route=\/wp\/v2\/posts\/502\/revisions\/580"}],"wp:attachment":[{"href":"https:\/\/wordpress.jpcorp.eti.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=502"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.jpcorp.eti.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=502"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.jpcorp.eti.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=502"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}