Monitoramento
de
serviços de bancos de dados
(Oracle, SQL Server)
Eduardo Legatti
Database Administrator
Agenda
• Benefícios do monitoramento remoto
• Visão geral da solução de monitoramento
• Nagios
– Arquivos de configuração
...
Benefícios do monitoramento remoto
• Eliminação de atividades manuais
– Com o monitoramento automatizado, muitas tarefas a...
Visão Geral do Nagios
Nagios é um sistema open-source para monitoração de rede,
servidores e serviços.
• Monitoramento de ...
Visão Geral do Nagios
Arquivos de Configuração
Estrutura Básica
Status dos Hosts
Status dos Hosts
Status dos Hosts
Status dos Hosts
Status dos Serviços
Status dos Serviços
Status dos Serviços
Status dos Serviços
Status dos Serviços
Status dos Serviços
Status dos Serviços
Status dos Serviços
Notificações
Notificações
Google Talk / Hangout
Notificações
SMS
Notificações
Email
Notificações
Nagios Plugins
SQL Server
Plugins - SQL Server
define command{
command_name check_port
command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ -t ...
Plugins - SQL Server
define command {
command_name check_sqlserver
command_line /usr/local/nagios/libexec/check_mssql_heal...
Plugins - SQL Server
define command {
command_name check_sqlserver
command_line /usr/local/nagios/libexec/check_mssql_heal...
Plugins - SQL Server
define command {
command_name check_sqlserver
command_line /usr/local/nagios/libexec/check_mssql_heal...
Monitoramento - SQL Server
Acompanhamento da instância através de monitoramentos específicos em intervalos de tempo
Nagios Plugins
Oracle
Plugins - Oracle
Plugins - Oracle
Independente da quantidade de bancos de dados monitorados, serão apresentados na
coluna “Status Informati...
Plugins - Oracle
Oracle Active Instance
Verifica se o processo SMON da instância está em execução. Realiza uma checagem at...
Plugins - Oracle
Oracle Connectivity
Realiza teste de conectividade em todas as instâncias do servidor em questão.
Diferen...
Plugins - Oracle
Oracle Process Count
Realiza verificação do número de processos de bancos de dados conectados em
todas as...
Plugins - Oracle
Oracle Alert Log File
Monitora erros (ORA-) no arquivo de alerta (alert log file) de cada banco de dados....
Plugins - Oracle
Oracle Checkup General
Monitora aspectos gerais dos bancos de dados.
• TABLESPACE USED 85%~96% (warning) ...
Plugins - Oracle
Oracle Lock General
Monitora LOCKS que estejam ocorrendo no banco de dados. Tem como base de
informação a...
Plugins - Oracle
Oracle Memory General
Monitora e coleta informações dos buffers de memória SGA e PGA verificando possívei...
Plugins - Oracle
Oracle Backup RMAN
Monitora os status dos backups RMAN realizados. O monitoramento é realizado no banco d...
Plugins - Oracle
Oracle Validate RMAN
Monitora os status das validações que são realizadas nos backups RMAN. O monitoramen...
Plugins - Oracle
Oracle Dataguard
Monitora os status dos bancos de dados PRIMARY e PHYSICAL STANDBY.
VERIFICACAO ROLE PRIM...
Monitoramento - Oracle
Acompanhamento da instância através de monitoramentos específicos em intervalos de tempo
Obrigado!
Próximos SlideShares
Carregando em…5
×

Monitoramento de Serviços de Bancos de Dados - Nagios

3.620 visualizações

Publicada em

Monitoramento de serviços de bancos de dados SQL Server e Oracle usando o Nagios

Publicada em: Tecnologia
2 comentários
3 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
3.620
No SlideShare
0
A partir de incorporações
0
Número de incorporações
239
Ações
Compartilhamentos
0
Downloads
89
Comentários
2
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Monitoramento de Serviços de Bancos de Dados - Nagios

  1. 1. Monitoramento de serviços de bancos de dados (Oracle, SQL Server) Eduardo Legatti Database Administrator
  2. 2. Agenda • Benefícios do monitoramento remoto • Visão geral da solução de monitoramento • Nagios – Arquivos de configuração – Estrutura básica – Status dos hosts (máquinas) – Status dos serviços – Notificações – Plugins de banco de dados (SQL Server, Oracle.)
  3. 3. Benefícios do monitoramento remoto • Eliminação de atividades manuais – Com o monitoramento automatizado, muitas tarefas antes realizadas manualmente em atividades de checkup, agora são executadas automaticamente. • Manutenção proativa e detecção precoce – Quando um problema surge, o monitoramento remoto envia um alerta para que se possa tomar medidas imediatas e necessárias para garantir que o problema não resulte em diminuição da produtividade e tempo de inatividade. • Minimização da interrupção dos negócios – Com o monitoramento preventivo através de diferentes graus de alertas é possível detectar problemas que poderiam interromper drasticamente a continuidade dos negócios da organização. • Aplicação das melhores práticas, garantindo uma maior disponibilidade do seu ambiente – O monitoramento remoto pode fornecer às organizações conhecimentos essenciais para a saúde de seus sistemas em geral a apontar aspectos que precisam ser melhorados.
  4. 4. Visão Geral do Nagios Nagios é um sistema open-source para monitoração de rede, servidores e serviços. • Monitoramento de serviços (smtp, pop3, 1433,1521, 3306, etc); • Monitoramento de processos (sqlagent.exe, sqlservr.exe, etc); • Monitoramento de recursos (cpu, memória, load, disco, etc); • Disponível para monitoração em diversas plataformas: Linux, Solaris, Windows, HPUX; • Flexível: Uso de plugins; • Plugins desenvolvidos para MySQL, Oracle, MS SQL Server, MongoDB; • Checagem de serviços paralelizadas; • Notificação de contatos (pager, email, sms, gtalk); • Solução open-source e customizável; • Interface Web. Características
  5. 5. Visão Geral do Nagios
  6. 6. Arquivos de Configuração
  7. 7. Estrutura Básica
  8. 8. Status dos Hosts
  9. 9. Status dos Hosts
  10. 10. Status dos Hosts
  11. 11. Status dos Hosts
  12. 12. Status dos Serviços
  13. 13. Status dos Serviços
  14. 14. Status dos Serviços
  15. 15. Status dos Serviços
  16. 16. Status dos Serviços
  17. 17. Status dos Serviços
  18. 18. Status dos Serviços
  19. 19. Status dos Serviços
  20. 20. Notificações
  21. 21. Notificações Google Talk / Hangout
  22. 22. Notificações SMS
  23. 23. Notificações Email
  24. 24. Notificações
  25. 25. Nagios Plugins SQL Server
  26. 26. Plugins - SQL Server define command{ command_name check_port command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ -t 60 } define service { use generic-db-service {generic-service, generic-sms-db-service} host_name Server01, Server02, Server03 service_description SQL Server Port 1433 check_command check_port!1433 notification_period 12x5 } Commands.cfg Services.cfg Realiza monitoramento da porta (LISTERNER) do SQL Server verificando se a mesma possui conectividade.
  27. 27. Plugins - SQL Server define command { command_name check_sqlserver command_line /usr/local/nagios/libexec/check_mssql_health -server $HOSTADDRESS$ -port $ARG1$ -username $ARG2$ -password $ARG3$ -mode $ARG4$ } define service { use generic-db-service host_name Server01, Server02, Server03 service_description SQL Server Backup Full check_command check_sqlserver!1433!nagios!nagios!sql --name "select case when COUNT(*) > 0 then 6 else 0 end as 'STATUS' from DB.dbo.ALT_VW_MISSING_FULL_BACKUP" --name2 "[OK] - Backup Full encontrado nas ultimas 24h, [VIEW] ALT_VW_MISSING_FULL_BACKUP" notification_period 12x5 } Commands.cfg Services.cfg Realiza monitoramento da frequência de backups FULL realizados nos bancos de dados. Este plugin tem como base de informação, a view ALT_VW_MISSING_FULL_BACKUP criada especificamente para este propósito. Um backup FULL não realizado nas últimas 24 hs irá gerar um alerta.
  28. 28. Plugins - SQL Server define command { command_name check_sqlserver command_line /usr/local/nagios/libexec/check_mssql_health -server $HOSTADDRESS$ -port $ARG1$ -username $ARG2$ -password $ARG3$ -mode $ARG4$ } define service { host_name Server01 service_description SQL Server Connectivity check_command check_sqlserver!1433!nagios!nagios!sql --name "select case when COUNT(*) > 0 then 6 else 0 end as 'STATUS‘ from DB.dbo.ALT_VW_CONNECTDATABASE" --name2 "[OK] - conexao realizada com sucesso, [CRITICAL] - conexao nao realizada, [VIEW] ALT_VW_CONNECTDATABASE" use generic-db-service notification_period 12x5 } Commands.cfg Services.cfg Verifica se o banco de dados possui conectividade referente a acessos externos ao servidor. Este plugin tem como base das informações, a view ALT_VW_CONNECT DATABASE criada especificamente para este propósito.
  29. 29. Plugins - SQL Server define command { command_name check_sqlserver command_line /usr/local/nagios/libexec/check_mssql_health –server $HOSTADDRESS$ -port $ARG1$ -username $ARG2$ -password $ARG3$ -mode $ARG4$ } define service { host_name Server01, Server02, Server03 service_description SQL Server Memory Pressure check_command check_sqlserver!1433!nagios!nagios!sql --name "SET ANSI_NULLS ON SET ANSI_PADDING ON SET ANSI_WARNINGS ON SET ARITHABORT ON SET CONCAT_NULL_YIELDS_NULL ON SET NUMERIC_ROUNDABORT OFF SET QUOTED_IDENTIFIER ON select case when COUNT(*) > 0 then 3 else 0 end as 'STATUS' from DB.dbo.ALT_VW_MEMORYPRESSURE“ --name2 "[OK] - Nao houve pressao de memoria nos ultimos 5 minutos, [WARNING] – Houve pressao de memoria nos ultimos 5 minutos, [VIEW] ALT_VW_MEMORYPRESSURE" use generic-db-service notification_period 12x5 } Commands.cfg Services.cfg Realiza monitoramento do uso de memória do SQL Server e verifica se ocorrências de falta de memória estão ocorrendo tanto para o SQL Server quanto para o sistema operacional . Este plugin tem como base das informações a view ALT_VW_MEMORY PRESSURE.
  30. 30. Monitoramento - SQL Server Acompanhamento da instância através de monitoramentos específicos em intervalos de tempo
  31. 31. Nagios Plugins Oracle
  32. 32. Plugins - Oracle
  33. 33. Plugins - Oracle Independente da quantidade de bancos de dados monitorados, serão apresentados na coluna “Status Information” apenas aqueles que apresentam algum tipo de problema. Se mais de um banco aprestnar um problema os mesmos serão mostrados entre virgulas (,). Exemplo: Oracle Connectivity: BD01,BD02,BD03
  34. 34. Plugins - Oracle Oracle Active Instance Verifica se o processo SMON da instância está em execução. Realiza uma checagem através do arquivo /etc/oratab e compara com os arquivos SPFILEs encontrados (SMON = pfile). Se alguma instância de banco de dados “cair” ou sofrer SHUTDOWN, o número de processos SMON em execução será diferente do número de arquivos SPFILEs encontrados. define service{ use generic-service host_name Server01 service_description Oracle Instance check_command check_by_ssh!/nagios/check_active_instance.sh '$ORACLE_HOME/dbs/spfile*.ora'!oracle notification_interval 1 notification_period 24x7 check_interval 1 retry_interval 1 } Realiza monitoramento no nível do sistema operacional (processo SMON).
  35. 35. Plugins - Oracle Oracle Connectivity Realiza teste de conectividade em todas as instâncias do servidor em questão. Diferente do plugin Active Instance que verifica se o processo SMON de uma instância está em execução através de uma checagem com a entrada no arquivo arquivo /etc/oratab e o SPFILE, o plugin Oracle Connectivity realiza teste de conectividade para verificar se o banco de dados está ativo e recebendo acessos externos. Tem como vantagens realizar teste de conexão com um usuário do banco de dados e verificar conectividade com o processo LISTENER. define service{ use generic-service host_name Server01 service_description Oracle Connectivity check_command check_oracle_connectivity!oracle!server01!NONE notification_interval 1 notification_period 24x7 check_interval 1 retry_interval 1 }
  36. 36. Plugins - Oracle Oracle Process Count Realiza verificação do número de processos de bancos de dados conectados em todas as instâncias do servidor em questão. O plugin Oracle Process Count tem como base de informação a view de desempenho dinâmico V$PROCESS. O plugin é configurado de forma que um valor limite para WARNING e um valor limite para CRITICAL sejam configurados. O monitoramento da quantidade de processos conectados no banco de dados se faz necessária com o propósito de se evitar os erros “ORA-00018: maximum number of sessions exceeded” ou “ORA-00020: maximum number of processes exceeded” ocasionados por algum tipo de problema em alguma aplicação ou na instância Oracle que abriu mais processos do que deveria. define service{ use generic-service host_name Server01 service_description Oracle Process Count check_command check_database_process_oracle!oracle!server01!22!20!10!NONE notification_interval 1 notification_period 24x7 check_interval 1 retry_interval 1 }
  37. 37. Plugins - Oracle Oracle Alert Log File Monitora erros (ORA-) no arquivo de alerta (alert log file) de cada banco de dados. • Realiza o monitoramento no intervalo de tempo especificado. • O caminho dos arquivos de alerta são mostrados (separados por vírgula) caso mais de uma instância apresente a notificação. • O utilitário ADRCI poderá ser utilizado para leitura do arquivo de log de alerta. • Monitoramento preventivo e corretivo. define service{ use generic-db-service host_name Server01 service_description Oracle Alert Log File check_command check_alertlogfile_oracle!oracle!server01!NONE check_interval 10 notification_period 12x5 }
  38. 38. Plugins - Oracle Oracle Checkup General Monitora aspectos gerais dos bancos de dados. • TABLESPACE USED 85%~96% (warning) e TABLESPACE USED 97%~100% (critical) através da view DBA_TABLESPACE_ USAGE_METRICS. • FRA USED 85%~96% (warning) e FRA USED 97%~100% (critical) através da view V$RECOVERY_FILE_DEST. • TEMP AUTOEXTEND ON e UNDO AUTOEXTEND ON. • NOARCHIVELOG, FLASHBACK ON, RESTORE POINT. • REDO LOG FILE (status). • SCHEDULER JOB (disable, error, not executed).
  39. 39. Plugins - Oracle Oracle Lock General Monitora LOCKS que estejam ocorrendo no banco de dados. Tem como base de informação a view dinâmica de desempenho V$SESSION. Vantagens: • Realiza o monitoramento no intervalo de tempo especificado. • O caminho dos arquivos de alerta são mostrados (separados por vírgula) caso mais de uma instância apresente a notificação. • O utilitário ADRCI poderá ser utilizado para leitura do arquivo de log de alerta. • >= 5 AND < 10 min (WARNING). • > 10 min (CRITICAL). define service{ use generic-db-service host_name Server01 service_description Oracle Checkup Lock check_command check_database_lock_oracle!oracle!server01!NONE check_interval 10 }
  40. 40. Plugins - Oracle Oracle Memory General Monitora e coleta informações dos buffers de memória SGA e PGA verificando possíveis ajustes necessários com base nas views V$SGA_TARGET_ADVICE e V$PGA_TARGET_ADVICE. REGRAS V$SGA_TARGET_ADVICE (sga_size_factor=1.25 and estd_db_time_factor <= 0.80) or (sga_size_factor=1.5 and estd_db_time_factor <= 0.70) or (sga_size_factor=1.75 and estd_db_time_factor <= 0.50) or (sga_size_factor=2 and estd_db_time_factor <= 0.30) V$PGA_TARGET_ADVICE pga_target_factor = 1 and estd_pga_cache_hit_percentage <= 95 and (pga_target_factor = 8 ) > 95 define service{ use generic-db-service host_name Server01 service_description Oracle Checkup Memory check_command check_database_memory_oracle!oracle!Server01!NONE check_interval 10 }
  41. 41. Plugins - Oracle Oracle Backup RMAN Monitora os status dos backups RMAN realizados. O monitoramento é realizado no banco de dados do catálogo de recuperação (Recovery Catalog) através de uma view especial chamada RPT_VW_RMAN_BACKUP. Os bancos de dados a serem monitorados precisam estar registrados no banco de dados de Catálogo do RMAN. REGRAS • nvl(status,'FAILED') in ('COMPLETED WITH ERRORS','FAILED','RUNNING WITH ERRORS') • trunc(end_time) < trunc(sysdate)-2 • status in ('RUNNING','RUNNING WITH WARNINGS','COMPLETED WITH WARNINGS')
  42. 42. Plugins - Oracle Oracle Validate RMAN Monitora os status das validações que são realizadas nos backups RMAN. O monitoramento é realizado no banco de dados do catálogo de recuperação (Recovery Catalog) através de uma view especial chamada RPT_VW_RMAN_VALIDATE. Os bancos de dados a serem monitorados precisam estar registrados no banco de dados de Catálogo do RMAN. REGRAS • status in ('RUNNING','RUNNING WITH WARNINGS','COMPLETED WITH WARNINGS') • nvl(status,'FAILED') in ('COMPLETED WITH ERRORS','FAILED','RUNNING WITH ERRORS') • trunc(end_time) < trunc(sysdate)-8
  43. 43. Plugins - Oracle Oracle Dataguard Monitora os status dos bancos de dados PRIMARY e PHYSICAL STANDBY. VERIFICACAO ROLE PRIMARY • Verificação do nível de sincronismo com o banco de dados STANDBY através da view V$ARCHIVE _DEST_STATUS. VERIFICACAO ROLE STANDBY • Verificação de GAPs através da view V$ARCHIVE_GAP. • Verificação por status de GAP – (WAIT_FOR_GAP) através da view V$MANAGED_STANDBY. • Verificação de Recovery Mode na view V$ARCHIVE_DEST_STATUS. MANAGED REAL TIME APPLY ou MANAGED. • Verificação de ArchiveLog Deletion Policy através da view V$RMAN_CONFIGURATION (TO APPLIED ON STANDBY) VERIFICACAO GENÉRICA PARA AMBOS (PRIMARY e PHYSICAL STANDBY) • Mensagens de erro através da view V$DATAGUARD_STATUS (ERROR, FATAL) e CALLOUTs. • Verificação do modo FORCE LOGGING habilitado através da view V$DATABASE.
  44. 44. Monitoramento - Oracle Acompanhamento da instância através de monitoramentos específicos em intervalos de tempo
  45. 45. Obrigado!

×