Vous êtes sur la page 1sur 39

4468

Monitoramento de Redes com o


Zabbix

www.4linux.com.br
Projetos na sua empresa
com a qualidade dos treinamentos

ence GED - ECM


Business Intelig lx8 BPM Servidor Java EE http://va.mu/Flx3
va.m u/ F http://va.mu/EuiT
http:// http://va.mu/FlyB

Integração Continua PostgreSQL Monitoramento Alta Disponibilidade


http://va.mu/FlyD http://va.mu/EuhV http://va.mu/EukN http://va.mu/FNbL

Virtualização Groupware Yj Backup Infraestrutura Web


http://va.mu/Flxl u/FN http://va.mu/Flxr http://va.mu/Flxi
http://va.m

Auditoria e Análise Segurança Ensino à Distância Implantação garantida


http://va.mu/Flxu http://va.mu/Flxy http://va.mu/Flxc http://va.mu/GcFv
Conteúdo

10 Monitoramento de banco de dados 1


10.1 Introdução aos tipos de monitoramento . . . . . . . . . . . . . . . . . . 1
10.1.1 Mapa de valores . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
10.2 Monitoramento via UserParameter . . . . . . . . . . . . . . . . . . . . . 4
10.2.1 PostgreSQL Linux . . . . . . . . . . . . . . . . . . . . . . . . . . 4
10.2.2 MySQL Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
10.2.3 Oracle Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
10.2.4 SQL Server Windows . . . . . . . . . . . . . . . . . . . . . . . . 24
10.3 Monitorar via ODBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
10.3.1 Configuração do driver ODBC para PostgreSQL . . . . . . . . . 29
10.3.2 Configuração de itens via ODBC no Zabbix . . . . . . . . . . . . 31

i
Capítulo 10

Monitoramento de banco de dados

10.1 Introdução aos tipos de monitoramento


Para coletar informações de banco de dados e tabelas no Zabbix, contamos com 4
métodos neste tipo de monitoramento. Acompanhe a descrição de cada uma de-
las:

Método 1: Monitoramento via UserParameter

Neste tipo de coleta utilizamos comandos ou scripts para se comunicar com o banco
de dados, e assim executar consultas SQL armazenando seu resultado em keys
personalizadas.

Exemplo do UserParameter:

1 UserParameter = mysql .4 linux [*] , mysql - uzabbix - ppassword -N -e "


select @@$1 "

Exemplo da Key:

1 mysql .4 linux [ query_cache_limit ]

Método 2: Monitoramento via Zabbix Agent sem UserParameter

Um exemplo para este tipo de coleta é a utilização da key perf_counter para coletar

1
4Linux - www.4linux.com.br

informações em ambientes Windows. Em um cenário de banco de dados podemos


coletar informações de um SQL Server para Windows.

Exemplo da Key:

1 perf_counter [\ SQLServer : General Statistics \ User Connections ]

Método 3: Monitoramento via ODBC

Neste tipo de coleta um driver ODBC Linux é configurado para se comunicar com o
banco. A partir dessa comunicação o Zabbix consegue coletar informações da base
de dados, através de itens do tipo "Database Monitor".

Exemplo do driver para MySQL:

/etc/odbcinst.ini

1 [ mysql ]
2 Description = ODBC for MySQL
3 Driver = / usr / lib / i386 - linux - gnu / odbc / libmyodbc . so

/etc/odbc.ini

1 [ maildb ]
2 Description = Webmail Database
3 Driver = mysql
4 Server = 192.168.150.52
5 User = roundcube
6 Password = 4 linux
7 Port = 3306
8 Database = roundcubemail

Exemplo da Key:

Monitoramento de Redes com o Zabbix 2


4Linux - www.4linux.com.br

1 db . odbc . select [ db - monitor , maildb ]

Método 4: Monitoramento via programas externos

Um exemplo para este tipo de coleta é a utilização do DBforBIX, é um daemon


projetado para trabalhar em conjunto com Zabbix, afim de fornecer monitoramento
de várias base de dados. No link abaixo é possível encontrar mais informações sobre
o projeto.

http://www.smartmarmot.com/wiki/index.php/DBforBIX

Na infra da empresa Dexter Courier contamos com 4 diferentes tipos de banco de


dados espalhados pela unidades Matriz e Filias. Nossa meta é monitorar os dados
de cada servidor utilizando diferentes alternativas de monitoramento.

Acompanhe na tabela abaixo o plano de monitoramento:

Tabela 10.1: Lista de DBMS da empresa Dexter


Servidor Sistema DBMS
DB Server Matriz Linux PostgreSQL
DB MySQL Filial SP Linux MySQL
DB Oracle Filial RJ Linux Oracle
AD Server Filial RJ Windows SQL Server 2008

10.1.1 Mapa de valores


Antes de importar os templates para banco de dados personalizados pela 4Linux,
antes é preciso criar o Mapa de Valores 4Linux Default MAP com os seguintes
valores:

0 -> OK

1 -> Falha

3 Monitoramento de Redes com o Zabbix


4Linux - www.4linux.com.br

Figura 10.1: Mapa de valores para banco de dados

O próximo passo importar o template personalizado da 4linux: 10 - Templates 4Li-


nux Databases.xml

Figura 10.2: Templates para banco de dados da 4Linux

10.2 Monitoramento via UserParameter

10.2.1 PostgreSQL Linux


Para a implementação do monitoramento no servidor DB Server Matriz vamos seguir
o seguinte roteiro de implementação:

• Configurar o PostgreSQL para permitir consultas do Zabbix.

• Criar o diretório scritps e os scripts de consulta ao PostgreSQL.

• Configurar User Parameters no Agente Zabbix (Host que contem o DBMS).

Monitoramento de Redes com o Zabbix 4


4Linux - www.4linux.com.br

• Testar a coleta via script e zabbix_get.

• Adicionar template 4Linux DB – PostgreSQL ao host monitorado.

• Acompanhar a coleta dos itens no Front-end.

EXECUTE NA MÁQUINA DB Server:

1 - Configure o acesso ao banco zabbixdb no localhost para o usuário zabbix

1 root@db - server :~ # vim / etc / postgresql /9.3/ main / pg_hba . conf


2
3 ....
4 host zabbixdb zabbix 127.0.0.1/32 md5

2 - Reinicie o serviço do Postgres para aplicar as configurações.

1 root@db - server :~ # service postgresql restart

3 - O próximo passo é criar os diretório scripts e zabbix com o arquivo de autenti-


cação do usuário zabbix

1 root@db - server :~ # mkdir / etc / zabbix / zabbix_agentd . d / scripts


2 root@db - server :~ # chown zabbix . / etc / zabbix / zabbix_agentd . d / scripts
-R
3
4 root@db - server :~ # mkdir / var / lib / zabbix
5 root@db - server :~ # echo " localhost :5432: zabbixdb : zabbix :4 linux " > /
var / lib / zabbix /. pgpass
6
7 root@db - server :~ # chown zabbix . / etc / zabbix / zabbix_agentd . d / scripts
-R
8 root@db - server :~ # chmod 0400 / var / lib / zabbix /. pgpass

4 - Em seguida precisamos criar 4 scripts para realizar os selects no banco:

5 Monitoramento de Redes com o Zabbix


4Linux - www.4linux.com.br

• pgsql_ping.sh: Testa a conectividade com o servidor Postgres.

• pgsql_conn.sh: Coleta informações referente ao servidor Postgres.

• pgsql_detect_database.sh: Executa a varredura a procura de banco de dados


no Postgres.

• pgsql_database.sh: Coleta informações referente a cada banco que o script


de varredura encontrar.

Os scritps estão disponíveis nas máquinas virtuais do curso e no ambiente


EAD.

5 - Feito a criação dos scripts, crie o arquivo para definir as keys personalizadas para
o monitoramento do PostgreSQL.

1 root@db - server :~ # vim / etc / zabbix / zabbix_agentd . d /


userparameters_postgresql . conf
2
3 UserParameter =4 linux . pgsql . ping ,/ etc / zabbix / zabbix_agentd . d / scripts /
pgsql_ping . sh
4
5 UserParameter =4 linux . pgsql . conn [*] ,/ etc / zabbix / zabbix_agentd . d /
scripts / pgsql_conn . sh $1
6
7 UserParameter =4 linux . pgsql . discovery ,/ etc / zabbix / zabbix_agentd . d /
scripts / pgsql_detect_database . sh
8
9 UserParameter =4 linux . pgsql . database [*] ,/ etc / zabbix / zabbix_agentd . d /
scripts / pgsql_database . sh $1 $2

6 - Antes de configurar o template, teste a coleta via script e zabbix_get

1 root@db - server :~ # / etc / zabbix / zabbix_agentd . d / scripts / pgsql_conn . sh


max

Monitoramento de Redes com o Zabbix 6


4Linux - www.4linux.com.br

2 100

EXECUTE NA MÁQUINA ZABBIX SERVER:

1 root@zabbix - server :~ # zabbix_get -s 192.168.100.100 -k 4 linux . pgsql .


conn [ max ]
2 100

7 - Para finalizar adicione o template 4Linux DB – PostgreSQL ao host DB Server


Matriz.

Figura 10.3: Adicionando host ao template 4Linux DB - Postgres

7 Monitoramento de Redes com o Zabbix


4Linux - www.4linux.com.br

Figura 10.4: Dados coletados do servidor Postgres

Monitoramento de Redes com o Zabbix 8


4Linux - www.4linux.com.br

Figura 10.5: Dados coletados de cada banco de dados encontrado

10.2.2 MySQL Linux


Para a implementação do monitoramento no servidor DB MySQL Filial SP vamos
seguir o seguinte roteiro de implementação:

• Criar o diretório scritps e os scripts de consulta ao MySQL.

• Configurar User Parameters no Agente Zabbix (Host que contem o DBMS).

• Testar a coleta via script e zabbix_get.

• Adicionar template 4Linux DB – MySQL Linux ao host monitorado.

9 Monitoramento de Redes com o Zabbix


4Linux - www.4linux.com.br

• Acompanhar a coleta dos itens no Front-end.

EXECUTE NA MÁQUINA DB MYSQL FILIAL SP:

1 - Crie os diretórios scripts e zabbix e defina as permissões de acesso.

1 root@db - mysql :~ # mkdir / etc / zabbix / zabbix_agentd . d / scripts


2 root@db - mysql :~ # chown zabbix . / etc / zabbix / zabbix_agentd . d / scripts -
R
3
4 root@db - mysql :~ # mkdir / var / lib / zabbix
5 root@db - mysql :~ # chown zabbix . / etc / zabbix / zabbix_agentd . d / scripts -
R

2 - Em seguida precisamos criar 2 scripts para realizar os selects no banco:

• mysql_detect_database.sh: Executa a varredura a procura de banco de da-


dos no MySQL.

• mysql_db_status.sh: Coleta informações referente a cada banco que o script


de varredura encontrar.

Os scritps estão disponíveis nas máquinas virtuais do curso e no ambiente


EAD.

3 - Feito a criação dos scripts, crie o arquivo para definir as keys personalizadas para
o monitoramento do MySQL.

1 root@db - mysql :~ # vim / etc / zabbix / zabbix_agentd . d /


userparameters_mysql . conf
2
3 UserParameter =4 linux . mysql [*] , echo " SHOW GLOBAL STATUS WHERE
Variable_name = ’ $1 ’; " | HOME =/ var / lib / zabbix mysql -N | awk ’{
print $$2 } ’
4

Monitoramento de Redes com o Zabbix 10


4Linux - www.4linux.com.br

5 UserParameter =4 linux . mysql . like [*] , echo " SHOW GLOBAL VARIABLES LIKE
’$1 ’; " | HOME =/ var / lib / zabbix mysql -N | awk ’{ print $$2 } ’
6
7 UserParameter =4 linux . mysql . ping , HOME =/ var / lib / zabbix mysqladmin ping
| grep -c alive
8
9 UserParameter =4 linux . mysql . version , mysql -V
10
11 UserParameter =4 linux . mysql . db . status [*] ,/ etc / zabbix / zabbix_agentd . d /
scripts / mysql_db_status . sh $1 $2
12
13 UserParameter =4 linux . mysql . discovery ,/ etc / zabbix / zabbix_agentd . d /
scripts / mysql_detect_database . sh

4 - Antes de configurar o template, teste a coleta via script e zabbix_get

1 root@db - mysql :~ # / etc / zabbix / zabbix_agentd . d / scripts / mysql_db_status


. sh roundcubemail total_table
2 14

EXECUTE NA MÁQUINA FIREWALL FILIAL SP:

1 root@fw - filialsp :~ # zabbix_get -s 192.168.150.52 -k 4 linux . mysql . db .


status [ roundcubemail , total_table ]
2 14

5 - Para finalizar adicione o template 4Linux DB – MySQL Linux ao host DB MySQL


Filial SP.

11 Monitoramento de Redes com o Zabbix


4Linux - www.4linux.com.br

Figura 10.6: Adicionando host ao template 4Linux DB - MySQL Linux

Monitoramento de Redes com o Zabbix 12


4Linux - www.4linux.com.br

Figura 10.7: Dados coletados do servidor MySQL

13 Monitoramento de Redes com o Zabbix


4Linux - www.4linux.com.br

Figura 10.8: Dados coletados de cada banco de dados encontrado

10.2.3 Oracle Linux


Para a implementação do monitoramento no servidor DB Oracle Filial RJ vamos
seguir o seguinte roteiro de implementação:

• Criar o diretório scritps e os scripts de consulta ao Oracle.

• Configurar User Parameters no Agente Zabbix (Host que contem o DBMS).

• Testar a coleta via script e zabbix_get.

• Criar/Adicionar template 4Linux DB – Oracle Linux ao host monitorado.

• Acompanhar a coleta dos itens no Front-end.

EXECUTE NA MÁQUINA DB ORACLE FILIAL RJ:

1 - Crie o diretório scripts e defina as permissões de acesso.

1 root@db - oracle :~ # mkdir / etc / zabbix / zabbix_agentd . d / scripts


2 root@db - oracle :~ # chown zabbix . / etc / zabbix / zabbix_agentd . d / scripts
-R

Monitoramento de Redes com o Zabbix 14


4Linux - www.4linux.com.br

2 - Em seguida precisamos criar os scripts para realizar os selects no banco.

Os scritps estão disponíveis nas máquinas virtuais do curso e no ambiente


EAD.

3 - Feito a criação dos scripts, crie o arquivo para definir as keys personalizadas para
o monitoramento do Oracle.

1 root@db - oracle :~ # vim / etc / zabbix / zabbix_agentd . d /


userparameters_oracle . conf
2
3 # Discovery Instance
4 UserParameter =4 linux . oracle . discovery . instance [*] ,/ etc / zabbix /
zabbix_agentd . d / scripts / find_instance . sh
5
6 # Discovery Tablespace
7 UserParameter =4 linux . oracle . discovery . tablespace [*] ,/ etc / zabbix /
zabbix_agentd . d / scripts / find_tablespace . sh
8
9 # Discovery Files ALERT LOG
10 UserParameter =4 linux . oracle . discovery . alert_log [*] ,/ etc / zabbix /
zabbix_agentd . d / scripts / find_alert_log . sh
11
12 # Ocupacao da Tablespace
13 UserParameter =4 linux . oracle . tablespace . used [*] ,/ etc / zabbix /
zabbix_agentd . d / scripts / tablespace_used . sh $1 $2
14
15 # Listener - TNS
16 UserParameter =4 linux . oracle . lsnrctl . status [*] ,/ etc / zabbix /
zabbix_agentd . d / scripts / lsnrctl_status . sh $1 $2
17
18 # Status da Instance
19 UserParameter =4 linux . oracle . instance . status [*] ,/ etc / zabbix /
zabbix_agentd . d / scripts / check_instance_status . sh $1

15 Monitoramento de Redes com o Zabbix


4Linux - www.4linux.com.br

20
21 # Percent of Process
22 UserParameter =4 linux . oracle . instance . percent . process [*] ,/ etc / zabbix /
zabbix_agentd . d / scripts / percent_process . sh $1
23
24 # Percent of Session
25 UserParameter =4 linux . oracle . instance . percent . session [*] ,/ etc / zabbix /
zabbix_agentd . d / scripts / percent_session . sh $1
26
27 # Packet Loss PING - $1 = Count , $2 = Interface , $3 = IP ADDRESS
28 UserParameter =4 linux . oracle . ping . loss [*] ,/ etc / zabbix / zabbix_agentd . d
/ scripts / ping_loss . sh $1 $2 $3
29
30 # Check do Lock por INSTANCE
31 UserParameter =4 linux . oracle . check . lock [*] ,/ etc / zabbix / zabbix_agentd .
d/ scripts / check_lock . sh $1
32
33 # Check dos Jobs por INSTANCE
34 UserParameter =4 linux . oracle . check . jobs [*] ,/ etc / zabbix / zabbix_agentd .
d/ scripts / check_jobs . sh $1
35
36 # Check dos Jobs por SCHEDULER
37 UserParameter =4 linux . oracle . scheduler . jobs [*] ,/ etc / zabbix /
zabbix_agentd . d / scripts / check_scheduler_jobs . sh $1
38
39 # Controle de arquivo I / O em espera
40 UserParameter =4 linux . oracle . waits_controfileio ,/ etc / zabbix /
zabbix_agentd . d / scripts / waits_controfileio . sh
41
42 # Leitura direct path em espera
43 UserParameter =4 linux . oracle . waits_directpath_read ,/ etc / zabbix /
zabbix_agentd . d / scripts / waits_directpath_read . sh
44
45 # Arquivos I / O em espera
46 UserParameter =4 linux . oracle . waits_file_io . sh ,/ etc / zabbix /
zabbix_agentd . d / scripts / waits_file_io . sh
47

Monitoramento de Redes com o Zabbix 16


4Linux - www.4linux.com.br

48 # Travas em espera
49 UserParameter =4 linux . oracle . waits_latch ,/ etc / zabbix / zabbix_agentd . d /
scripts / waits_latch . sh
50
51 # Logwrite em espera
52 UserParameter =4 linux . oracle . waits_logwrite ,/ etc / zabbix / zabbix_agentd
.d/ scripts / waits_logwrite . sh
53
54 # Leitura de multibloco em espera
55 UserParameter =4 linux . oracle . waits_multiblock_read ,/ etc / zabbix /
zabbix_agentd . d / scripts / waits_multiblock_read . sh
56
57 # Outros componentes em espera
58 UserParameter =4 linux . oracle . waits_other ,/ etc / zabbix / zabbix_agentd . d /
scripts / waits_other . sh
59
60 # Leitura de bloco ú nico em espera
61 UserParameter =4 linux . oracle . waits_singleblock_read ,/ etc / zabbix /
zabbix_agentd . d / scripts / waits_singleblock_read . sh
62
63 # SQLNET em espera
64 UserParameter =4 linux . oracle . waits_sqlnet [*] ,/ etc / zabbix /
zabbix_agentd . d / scripts / waits_sqlnet . sh
65
66 # Quantidade de usu á rios conectados
67 UserParameter =4 linux . oracle . userconn ,/ etc / zabbix / zabbix_agentd . d /
scripts / userconn . sh
68
69 # Nú mero m á ximo de processos
70 UserParameter =4 linux . oracle . maxprocs ,/ etc / zabbix / zabbix_agentd . d /
scripts / maxprocs . sh
71
72 # Nú mero maximo de sess õ es
73 UserParameter =4 linux . oracle . maxsession ,/ etc / zabbix / zabbix_agentd . d /
scripts / maxsession . sh
74
75 # Travas perdidas

17 Monitoramento de Redes com o Zabbix


4Linux - www.4linux.com.br

76 UserParameter =4 linux . oracle . miss_latch ,/ etc / zabbix / zabbix_agentd . d /


scripts / miss_latch . sh
77
78 # Meta agregada de PGA
79 UserParameter =4 linux . oracle . pga_aggregate_target ,/ etc / zabbix /
zabbix_agentd . d / scripts / pga_aggregate_target . sh
80
81 # PGA
82 UserParameter =4 linux . oracle . pga ,/ etc / zabbix / zabbix_agentd . d / scripts /
pga . sh
83
84 # Arquivo de dados PHI / O lido
85 UserParameter =4 linux . oracle . phio_datafile_reads ,/ etc / zabbix /
zabbix_agentd . d / scripts / phio_datafile_reads . sh
86
87 # Arquivo de dados PHI / O escrito
88 UserParameter =4 linux . oracle . phio_datafile_writes ,/ etc / zabbix /
zabbix_agentd . d / scripts / phio_datafile_writes . sh
89
90 # Arquivo de dados PHI / O refeito
91 UserParameter =4 linux . oracle . phio_redo_writes ,/ etc / zabbix /
zabbix_agentd . d / scripts / phio_redo_writes . sh
92
93 # Taxa de acertos Pin - BODY
94 UserParameter =4 linux . oracle . pinhitratio_body ,/ etc / zabbix /
zabbix_agentd . d / scripts / pinhitratio_body . sh
95
96 # Taxa de acertos Pin - SQLAREA
97 UserParameter =4 linux . oracle . pinhitratio_sqlarea ,/ etc / zabbix /
zabbix_agentd . d / scripts / pinhitratio_sqlarea . sh
98
99 # Taxa de acertos Pin - TABLE PROCEDURE
100 UserParameter =4 linux . oracle . pinhitratio_table_proc ,/ etc / zabbix /
zabbix_agentd . d / scripts / pinhitratio_table - proc . sh
101
102 # DICT POOL CACHE

Monitoramento de Redes com o Zabbix 18


4Linux - www.4linux.com.br

103 UserParameter =4 linux . oracle . pool_dict_cache ,/ etc / zabbix /


zabbix_agentd . d / scripts / pool_dict_cache . sh
104
105 # Mem ó ria Dispon í vel no Pool
106 UserParameter =4 linux . oracle . pool_free_mem ,/ etc / zabbix / zabbix_agentd .
d/ scripts / pool_free_mem . sh
107
108 # POOL LIB CACHE
109 UserParameter =4 linux . oracle . pool_lib_cache ,/ etc / zabbix / zabbix_agentd
.d/ scripts / pool_lib_cache . sh
110
111 # POOL MISC
112 UserParameter =4 linux . oracle . pool_misc ,/ etc / zabbix / zabbix_agentd . d /
scripts / pool_misc . sh
113
114 # POOL SQLAREA
115 UserParameter =4 linux . oracle . pool_sql_area ,/ etc / zabbix / zabbix_agentd .
d/ scripts / pool_sql_area . sh
116
117 # Nú mero de processos
118 UserParameter =4 linux . oracle . procnum ,/ etc / zabbix / zabbix_agentd . d /
scripts / procnum . sh
119
120 # Sess ão Ativa
121 UserParameter =4 linux . oracle . session_active ,/ etc / zabbix / zabbix_agentd
.d/ scripts / session_active . sh
122
123 # Sess ão Inativa
124 UserParameter =4 linux . oracle . session_inactive ,/ etc / zabbix /
zabbix_agentd . d / scripts / session_inactive . sh
125
126 # Sess õ es
127 UserParameter =4 linux . oracle . session ,/ etc / zabbix / zabbix_agentd . d /
scripts / session . sh
128
129 # Sess ão do Sistema

19 Monitoramento de Redes com o Zabbix


4Linux - www.4linux.com.br

130 UserParameter =4 linux . oracle . session_system ,/ etc / zabbix / zabbix_agentd


.d/ scripts / session_system . sh
131
132 # SGA - Cache de buffers
133 UserParameter =4 linux . oracle . sga_buffer_cache ,/ etc / zabbix /
zabbix_agentd . d / scripts / sga_buffer_cache . sh
134
135 # SGA - Fixo
136 UserParameter =4 linux . oracle . sga_fixed ,/ etc / zabbix / zabbix_agentd . d /
scripts / sga_fixed . sh
137
138 # SGA - Pool de Java
139 UserParameter =4 linux . oracle . sga_java_pool ,/ etc / zabbix / zabbix_agentd .
d/ scripts / sga_java_pool . sh
140
141 # SGA - Largura do Pool
142 UserParameter =4 linux . oracle . sga_large_pool ,/ etc / zabbix / zabbix_agentd
.d/ scripts / sga_large_pool . sh
143
144 # SGA - Log de buffers
145 UserParameter =4 linux . oracle . sga_log_buffer ,/ etc / zabbix / zabbix_agentd
.d/ scripts / sga_log_buffer . sh
146
147 # SGA - Pool compartilhado
148 UserParameter =4 linux . oracle . sga_shared_pool ,/ etc / zabbix /
zabbix_agentd . d / scripts / sga_shared_pool . sh
149
150 # Taxa de acertos - BODY
151 UserParameter =4 linux . oracle . hitratio_body ,/ etc / zabbix / zabbix_agentd .
d/ scripts / hitratio_body . sh
152
153 # Taxa de acertos - SQLAREA
154 UserParameter =4 linux . oracle . hitratio_sqlarea ,/ etc / zabbix /
zabbix_agentd . d / scripts / hitratio_sqlarea . sh
155
156 # Taxa de acertos - TABLE PROCEDURE

Monitoramento de Redes com o Zabbix 20


4Linux - www.4linux.com.br

157 UserParameter =4 linux . oracle . hitratio_table_proc ,/ etc / zabbix /


zabbix_agentd . d / scripts / hitratio_table_proc . sh
158
159 # Altera ç ã o no bloco LI / O
160 UserParameter =4 linux . oracle . lio_block_changes ,/ etc / zabbix /
zabbix_agentd . d / scripts / lio_block_changes . sh
161
162 # Leitura consistente LI / O
163 UserParameter =4 linux . oracle . lio_consistent_read ,/ etc / zabbix /
zabbix_agentd . d / scripts / lio_consistent_read . sh
164
165 # Leitura atual LI / O
166 UserParameter =4 linux . oracle . lio_current_read ,/ etc / zabbix /
zabbix_agentd . d / scripts / lio_current_read . sh
167
168 # DB Block Gets
169 UserParameter =4 linux . oracle . dbblockgets ,/ etc / zabbix / zabbix_agentd . d /
scripts / dbblockgets . sh
170
171 # DB Consistent Gets
172 UserParameter =4 linux . oracle . dbconsistentgets ,/ etc / zabbix /
zabbix_agentd . d / scripts / dbconsistentgets . sh

4 - Antes de configurar o template, teste a coleta via script e zabbix_get

1 root@db - oracle :~ # / etc / zabbix / zabbix_agentd . d / scripts / maxprocs . sh


2 100

EXECUTE NA MÁQUINA FIREWAL FILIAL RJ:

1 root@fw - filialrj :~ # zabbix_get -s 192.168.200.3 -k 4 linux . oracle .


maxprocs
2 100

21 Monitoramento de Redes com o Zabbix


4Linux - www.4linux.com.br

5 - Para finalizar adicione o template 4Linux DB – Oracle Linux ao host DB Oracle


Filial RJ.

Figura 10.9: Adicionando host ao template 4Linux DB - Oracle Linux

Monitoramento de Redes com o Zabbix 22


4Linux - www.4linux.com.br

Figura 10.10: Dados coletados do servidor Oracle

23 Monitoramento de Redes com o Zabbix


4Linux - www.4linux.com.br

Figura 10.11: Dados coletados de cada instancia de dados encontrada

10.2.4 SQL Server Windows


Para a implementação do monitoramento no servidor AD Server Filial RJ vamos
seguir o seguinte roteiro de implementação:

• Criar o diretório Scritps e os scripts de consulta ao SQL Server.

• Configurar User Parameters no Agente Zabbix (Host que contem o DBMS).

• Testar a coleta via script e zabbix_get.

• Criar/Adicionar template 4Linux DB – SQL Server Windows ao host monito-


rado.

• Acompanhar a coleta dos itens no Front-end.

EXECUTE NA MÁQUINA AD SERVER FILIAL RJ:

1 - Crie o diretório Zabbix e os subdiretórios Scripts e TEMP

Monitoramento de Redes com o Zabbix 24


4Linux - www.4linux.com.br

1 C :\ Zabbix
2
3 C :\ Zabbix \ Scripts
4
5 C :\ Zabbix \ TEMP

2 - Em seguida precisamos criar os scripts para realizar os selects no banco.

Os scritps estão disponíveis nas máquinas virtuais do curso e no ambiente


EAD.

3 - Feito a criação dos scripts, crie o arquivo para definir as keys personalizadas para
o monitoramento do SQL Server.

1 C :\ Program Files \ Zabbix Agent \ userparameters_sqlserver . conf


2
3 # Descoberta de databases por Instancias
4 UserParameter =4 linux . discovery . databases , C :\ Zabbix \ Scripts \
find_database . bat
5
6 # Processos bloqueados por databases
7 UserParameter =4 linux . sqlserver . processos . bloqueados [*] , C :\ Zabbix \
Scripts \ processos_bloqueados . bat $1 $2
8
9 # Checar o status do Banco
10 UserParameter =4 linux . sqlserver . status . db [*] , sqlcmd -S $1 -h " -1 " -Q "
set nocount on select state_desc from sys . databases where name =
’$2 ’"
11
12 # Checagem do LogFile
13 UserParameter =4 linux . sqlserver . check . logfiles [*] , C :\ Zabbix \ Scripts \
check_logfiles . bat $1 $2 $3
14
15 # Checagem de Datafile

25 Monitoramento de Redes com o Zabbix


4Linux - www.4linux.com.br

16 UserParameter =4 linux . sqlserver . check . datafiles [*] , C :\ Zabbix \ Scripts \


check_datafiles . bat $1 $2 $3
17
18 # Checagem de Jobs com Problema .
19 UserParameter =4 linux . sqlserver . check . jobs [*] , C :\ Zabbix \ Scripts \
check_jobs . bat $1

4 - Antes de configurar o template, teste a coleta via script e zabbix_get

EXECUTE NA MÁQUINA AD SERVER FILIAL RJ:

1 C :\ Users \ Administrator > C :\ Zabbix \ Scripts \ find_database . bat


2 {" data ": [
3 {" {# DBNAME } " : " master " ," {# INSTANCENAME } " : " ADSERVER " } ,
4 {" {# DBNAME } " : " tempdb " ," {# INSTANCENAME } " : " ADSERVER " } ,
5 {" {# DBNAME } " : " model " ," {# INSTANCENAME } " : " ADSERVER " } ,
6 {" {# DBNAME } " : " msdb " ," {# INSTANCENAME } " : " ADSERVER " } ,
7 {" {# DBNAME } " : " ReportServer " ," {# INSTANCENAME } " : " ADSERVER " } ,
8 {" {# DBNAME } " : " ReportServerTempDB " ," {# INSTANCENAME } " : " ADSERVER " } ,
9 {" {# DBNAME } " : " teste " ," {# INSTANCENAME } " : " ADSERVER " }
10 ]}

EXECUTE NA MÁQUINA FIREWAL FILIAL RJ:

1 root@fw - filialrj :~ # zabbix_get -s 192.168.200.4 -k 4 linux . discovery .


databases
2 {" data ": [
3 {" {# DBNAME } " : " master " ," {# INSTANCENAME } " : " ADSERVER " } ,
4 {" {# DBNAME } " : " tempdb " ," {# INSTANCENAME } " : " ADSERVER " } ,
5 {" {# DBNAME } " : " model " ," {# INSTANCENAME } " : " ADSERVER " } ,
6 {" {# DBNAME } " : " msdb " ," {# INSTANCENAME } " : " ADSERVER " } ,
7 {" {# DBNAME } " : " ReportServer " ," {# INSTANCENAME } " : " ADSERVER " } ,
8 {" {# DBNAME } " : " ReportServerTempDB " ," {# INSTANCENAME } " : " ADSERVER " } ,
9 {" {# DBNAME } " : " teste " ," {# INSTANCENAME } " : " ADSERVER " }
10 ]}

Monitoramento de Redes com o Zabbix 26


4Linux - www.4linux.com.br

5 - Para finalizar adicione o template 4Linux DB – SQL Server Windows ao host


DB Oracle Filial RJ.

Figura 10.12: Adicionando host ao template 4Linux DB - SQL Server Windows

27 Monitoramento de Redes com o Zabbix


4Linux - www.4linux.com.br

Figura 10.13: Dados coletados do servidor SQl Server

Monitoramento de Redes com o Zabbix 28


4Linux - www.4linux.com.br

Figura 10.14: Dados coletados de cada banco de dados encontrado

10.3 Monitorar via ODBC


O monitoramento ODBC corresponde ao tipo de item de Database Monitor no fron-
tend Zabbix. ODBC é uma linguagem de programação middle-ware API para acessar
sistemas de gerenciamento de banco de dados (SGBD). O conceito ODBC foi desen-
volvido pela Microsoft e, mais tarde portado para outras plataformas.

10.3.1 Configuração do driver ODBC para PostgreSQL


Para que o Zabbix consiga conexão direta com a base de dados do Postgres, é
preciso instalar e configurar o driver ODBC no servidor Zabbix Server.

29 Monitoramento de Redes com o Zabbix


4Linux - www.4linux.com.br

EXECUTE NA MÁQUINA ZABBIX SERVER:

1 - Para começar instale os pacotes necessários para implementar o ODBC para


Postgres.

1 root@zabbix - server :~ # apt - get install unixodbc unixodbc - dev odbc -


postgresql

2 - Em seguida configure o arquivo /etc/odbcinst.ini para ativar o driver PostgreSQL.


É neste arquivo que definimos onde o unixODBC pode encontrar os arquivos espe-
cíficos para se conectar a servidores de banco de dados PostgreSQL.

1 root@zabbix - server :~ # vim / etc / odbcinst . ini


2 [ PostgreSQL ]
3 Description = ODBC for PostgreSQL
4 Driver = / usr / lib / i386 - linux - gnu / odbc / psqlodbcw . so
5 Setup = / usr / lib / i386 - linux - gnu / odbc / libodbcpsqlS . so
6 FileUsage = 1

3 - O próximo passo é configurar as informações de conexão com nosso banco de


dados PostgreSQL, através do arquivo /etc/odbc.ini.

1 root@zabbix - server :~ # vim / etc / odbc . ini


2 [ zabbixdb ]
3 Description = PostgreSQL Connection
4 Driver = PostgreSQL
5 Database = zabbixdb
6 Servername = 192.168.100.100
7 UserName = zabbix
8 Password = 4 linux
9 Port = 5432
10 Protocol = 9.3
11 ReadOnly = No
12 RowVersioning = No

Monitoramento de Redes com o Zabbix 30


4Linux - www.4linux.com.br

13 ShowSystemTables = No
14 ConnSettings =

4 - Para testar a conexão execute o comando isql seguido do nome da base confi-
gurada no arquivo /etc/odbc.ini

1 root@zabbix - server :~ # isql zabbixdb


2 + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
3 | Connected ! |
4 | |
5 | sql - statement |
6 | help [ tablename ] |
7 | quit |
8 | |
9 + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+
10 SQL > quit

10.3.2 Configuração de itens via ODBC no Zabbix


1 - Para testar a coleta via ODBC, abra a lista de itens do template 4Linux DB –
PostgreSQL e adicione um novo item com as seguintes informações:

• Name: Versão do PostgreSQL - Nome do item para apresentar a versão do


Postgres.

• Type: Database monitor - Tipo de item utilizado para coleta de informações via
ODBC.

• Key: db.odbc.select[4linux.pgsql.monitor,zabbixdb] - Chave padrão db.odbc.select


+ um string criada para Trigger + nome da base configurada no arquivo odbc.ini.
O próximo item criado precisa tem um string diferente para não haver conflito.
Ex.: db.odbc.select[4linux.pgsql.monitor1,zabbixdb]

• User name: {$USER} - Macro que define o nome do usuário configurado no


arquivo odbc.ini.

• Password: {$PASSWORD} - Macro que define a senha configurada no arquivo

31 Monitoramento de Redes com o Zabbix


4Linux - www.4linux.com.br

odbc.ini.

• SQL query: SELECT version (); - Comando utilizado para mostrar a versão do
Postgres.

Figura 10.15: Item criado via Database monitor do Zabbix

2 - Em seguida adicione os macros {$USER} e {$PASSWORD} no template 4Linux


DB – PostgreSQL

Monitoramento de Redes com o Zabbix 32


4Linux - www.4linux.com.br

Figura 10.16: Macros criados para conexão ODBC

3 - Para terminar acesse a aba Monitoring -> Overview, clique no item Versão do
PostgreSQL e na opção Last values

Figura 10.17: Versão do Postgres coletado via ODBC

33 Monitoramento de Redes com o Zabbix

Vous aimerez peut-être aussi