Monitoramento SQL Server
Escrito por HIT
Instalação do Driver ODBC do Linux na máquina de Proxy
Validar se os pacotes do unixODBC estão instalados:
yum install unixODBC yum install unixODBC-devel
Instalar FreeTDS
yum install epel-release yum check-update yum install freetds freetds-devel
Confirmar o caminho que o driver FreeTDS foi instalado:
find / -name libtdsodbc.so.0
Com o caminho completo do driver, fazer a configuração deste driver no unixODBC:
vim /etc/odbcinst.ini
Adicionar a entrada e colocar o diretório do driver:
[FreeTDS] Driver = /usr/local/freetds/lib/libtdsodbc.so.0?
Configurar as fonts de dados para cada instância de SQL Server que deverá ser monitorada
vim /etc/odbc.ini
Adicionar a entrada:
[NOME_DO_BANCO] Driver = FreeTDS Server = IP_DO_SERVIDOR Database = master Port = 1433 TDS_Version = 8.0
Criação de usuário de monitoramento no SQLServer
Download do script para criação do usuário de monitoramento:
Para validar se as configurações estão funcionando, rodar o seguinte comando no console do Zabbix Proxy (onde o usuário/senha utilizados para o monitoramento são monitoramento/ mOnit0r4menTo):
isql v banco monitoramento mOnit0r4menTo
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
Se abrir o prompt conforme o exemplo anterior, o teste deu certo!
Ajustes e correções do unixODBC
Caso no ambiente não exista os arquivos da versão 2 do Driver ODBC (arquivos libodbcinst.so.2 e libodbcinst.so.2.0.0), é necessário forçar a instalação de um pacote unixODBC mais novo, o qual possua a versão 2 do Driver ODBC.
Para isso, faça o download do pacote no formato RPM (caso seja 64bits):
wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/swida/RedHat_RHEL-5/x86_64/ unixODBC-2.2.14-15.2.x86_64.rpm
Caso o Sistema Operacional seja 32bits, faça o seguinte download:
wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/swida/RedHat_RHEL-5/i386/ unixODBC-2.2.14-15.2.i386.rpm
Para fazer a instalação execute o seguinte commando (64bits):
rpm -ivh --replacepkgs --replacefiles unixODBC-2.2.14-15.2.x86_64.rpm
Caso o Sistema Operacional seja 32bits, fazer a instalação do seguinte pacote (32bits):
rpm -ivh --replacepkgs --replacefiles unixODBC-2.2.14-15.2.i386.rpm
Caso esteja instalado o pacote unixODBC versão 2.2.xx, é necessário fazer uma mudança em um arquivo de link para apontar um arquivo de biblioteca mais atualizado.
Para verificar a versão do unixODBC execute o seguinte comando:
odbcinst j
unixODBC 2.2.11
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
Caso seja a versão 2.2.xx, é necessário fazer o seguinte procedimento:
cd /usr/lib64 ls lib*odbcinst* -lahs
0 lrwxrwxrwx 1 root root 20 Jun 25 14:12 libodbcinst.so.1 -> libodbcinst.so.1.0.0
84K -rwxr-xr-x 1 root root 77K Jun 6 2007 libodbcinst.so.1.0.0
0 lrwxrwxrwx 1 root root 20 Jun 25 14:12 libodbcinst.so.2 -> libodbcinst.so.2.0.0
84K -rwxr-xr-x 1 root root 77K Jun 6 2007 libodbcinst.so.2.0.0
O link que deverá ser modificado para apontar para a biblioteca mais nova está sublinhado:
mv libodbcinst.so.1 libodbcinst.so.1.ORIGINAL ln -s libodbcinst.so.2.0.0 libodbcinst.so.1 ls lib*odbcinst* -lahs
0 lrwxrwxrwx 1 root root 20 Jun 25 14:12 libodbcinst.so.1.ORIGINAL -> libodbcinst.so.1.0.0
0 lrwxrwxrwx 1 root root 20 Jun 25 14:12 libodbcinst.so.1 -> libodbcinst.so.2.0.0
84K -rwxr-xr-x 1 root root 77K Jun 6 2007 libodbcinst.so.1.0.0
0 lrwxrwxrwx 1 root root 20 Jun 25 14:12 libodbcinst.so.2 -> libodbcinst.so.2.0.0
84K -rwxr-xr-x 1 root root 77K Jun 6 2007 libodbcinst.so.2.0.0
Aplicar o Template no Host
Crie o seguinte template para os clientes:
Databases standalone, instâncias single, sem ser em cluster:
Template_SQLServer_Padrao_<Cliente>: associado ao Template_SQLServer_Padrao
Depois de criado a template, crie as seguintes macros em cada host (que correspondem a instâncias de banco de dados) que será monitorado:
{$SQLSERVER_DSN} = <DSN criado no arquivo /etc/odbc.ini> {$SQL_USER} = <usuário de monitoramento, normalmente monitor>
{$SQL_PASSWORD} = <senha do usuário de monitoramento, normalmente mOnit0r4menTo>