quinta-feira, 9 de agosto de 2018

Seja Proativo - TFA (Trace File Analyzer)

A lei de Murphy diz que se algo pode dar errado, dará, e dentro de um ambiente com Oracle, principalmente Clusterware isso é mais do que verdade, uma hora ou outra irá acontecer algum problema, mesmo tendo gasto aquelas horas a mais configurando Bound ou Normal Redudancy no ASM, irá ocorrer problema, o grande "X" da questão é, esteja preparado!

O TFA é uma ferramenta que prove monitoração de healcheck em tempo real, detecção falhas e diagnostico numa unica ferramenta de linha de comando, o TFA pode ser utilizado para monitorar erros em arquivos de log, coletar estatisticas para diagnostico e fazer upload de arquivos  de maneira automatica.

Porém o TFA, apesar de em algumas versões já vir instalado ele faz muito menos do que se espera, monitorar a nota Oracle MOS Doc ID 1513912.1 para instalar sempre a versão mais atualizada.

 Instalando o TFA


Para obter a versão mais recente do TFA monitorar MOS Doc ID 1513912.1 e realizar o download através do Link, durante esse post a versão atual é a 18.3, e é suportada em diversas plataformas como Redhat, Suse, HPUX, AIX, Windows e Solaris.

As instalação podem ser:
  • Como um Daemon, portanto necessário instalar como root;
  • Non-Daemon, podendo ser instalado como usuário non-root;

Podendo Estar em
  • Local Node - Somente irá coletar no node local
  • Cluster, se instalado para um ambiente com cluster, é recomendado que seja feito como user equivalency para o root.
A instalação é bem simples, basta realizar o download, extrair o zip file e iniciar o instalador, ./installTFA-LINUX , o qual irá fazer algumas poucas perguntas e logo a instalação esta completa.


[root@ol7-ora12-srvprd1 sf_hostDownloads]# ./installTFA-LINUX
TFA Installation Log will be written to File : /tmp/tfa_install_4358_2018_08_09-18_45_46.log

Starting TFA installation

TFA Version: 183000 Build Date: 201808081359

Enter a location for installing TFA (/tfa will be appended if not supplied) [/media/sf_hostDownloads/tfa]:
/u01/app/oracle/tfa

Running Auto Setup for TFA as user root...

Would you like to do a [L]ocal only or [C]lusterwide installation ? [L|l|C|c] [C] : L
Installing TFA now...

Discovering Nodes and Oracle resources

Starting Discovery...


Getting list of nodes in cluster . . . . .

....


 Installing TFA on ol7-ora12-srvprd1:
HOST: ol7-ora12-srvprd1    TFA_HOME: /u01/app/oracle/tfa/ol7-ora12-srvprd1/tfa_home

.-------------------------------------------------------------------------------------.
| Host              | Status of TFA | PID  | Port | Version    | Build ID             |
+-------------------+---------------+------+------+------------+----------------------+
| ol7-ora12-srvprd1 | RUNNING       | 4906 | 5000 | 18.3.0.0.0 | 18300020180808135947 |
'-------------------+---------------+------+------+------------+----------------------'

Running Inventory in All Nodes...

Enabling Access for Non-root Users on ol7-ora12-srvprd1...

Adding default users to TFA Access list...

Summary of TFA Installation:
.----------------------------------------------------------------------.
|                           ol7-ora12-srvprd1                          |
+---------------------+------------------------------------------------+
| Parameter           | Value                                          |
+---------------------+------------------------------------------------+
| Install location    | /u01/app/oracle/tfa/ol7-ora12-srvprd1/tfa_home |
| Repository location | /u01/app/oracle/tfa/repository                 |
| Repository usage    | 0 MB out of 10240 MB                           |
'---------------------+------------------------------------------------'

TFA is successfully installed...

Usage : /u01/app/12.1.0/grid/bin/tfactl [options]
    commands:diagcollect|collection|analyze|ips|run|start|stop|enable|disable|status|print|access|purge|directory|host|receiver|set|toolstatus|uninstall|diagnosetfa|syncnodes|setupmos|upload|availability|rest|events|search|changes|isa
For detailed help on each command use:
  /u01/app/12.1.0/grid/bin/tfactl -help

Usando o TFA


O TFA pode ser utilizado com três tipos de interfaces

  • Command line - tfactl command
  • Interativo - tfactl 
  • Menu - tfactl menu 
 O Menu facilita muito a vida quando vamos configurar e se não temos certeza da sintaxe dos comandos, porém o command line para rotinas em lotes com certeza é a melhor opção.


habilitando acesso a usuários


Por padrão os usuários owner do ORACLE_HOME e do GRID_HOME já possuem permissão para utilizar o tfactl, porém para adicionar outros usários basta usar o comando:

tfactl access enable
tfactl access add user username

Exemplo:

[root@ol7-ora12-srvprd1 bin]# ./tfactl access lsusers
.---------------------------------.
|  TFA Users in ol7-ora12-srvprd1 |
+-----------+-----------+---------+
| User Name | User Type | Status  |
+-----------+-----------+---------+
| oracle    | USER      | Allowed |
'-----------+-----------+---------'

[root@ol7-ora12-srvprd1 bin]# ./tfactl access enable

TFA has already enabled access for Non-root Users.

[root@ol7-ora12-srvprd1 bin]# ./tfactl access add -user dhnomura -local

Successfully added 'dhnomura' to TFA Access list.

.---------------------------------.
|  TFA Users in ol7-ora12-srvprd1 |
+-----------+-----------+---------+
| User Name | User Type | Status  |
+-----------+-----------+---------+
| dhnomura  | USER      | Allowed |
| oracle    | USER      | Allowed |
'-----------+-----------+---------'

[root@ol7-ora12-srvprd1 bin]#




Administrando o Daemon


É possivel também administrar o daemon como, start, stop, enable ou disable auto-start, para isso:

[root@ol7-ora12-srvprd1 bin]# ./tfactl stop
Stopping TFA from the Command Line
Stopped OSWatcher
TFA-00518 Oracle Trace File Analyzer (TFA) is not running (stopped)
TFA Stopped Successfully
. . .
Successfully stopped TFA..
[root@ol7-ora12-srvprd1 bin]# ./tfactl start
Starting TFA..
. . . . .
Successfully started TFA Process..
. . . . .
TFA Started and listening for commands
[root@ol7-ora12-srvprd1 bin]# ./tfactl status

.--------------------------------------------------------------------------------------------------------.
| Host              | Status of TFA | PID  | Port | Version    | Build ID             | Inventory Status |
+-------------------+---------------+------+------+------------+----------------------+------------------+
| ol7-ora12-srvprd1 | RUNNING       | 8629 | 5000 | 18.3.0.0.0 | 18300020180808135947 | COMPLETE         |
'-------------------+---------------+------+------+------------+----------------------+------------------'

[root@ol7-ora12-srvprd1 bin]# ./tfactl disable
TFA autostart has been disabled ..
[root@ol7-ora12-srvprd1 bin]# ./tfactl enable
TFA autostart has been enabled ..
[root@ol7-ora12-srvprd1 bin]#


Administrando o respositorio


O TFA armazena tudo que é coletado em um repositorio no sistema operacional, esse repositorio pode ser limpo conforme algumas politicas definidas, ou em caso de se chegar ao seu limite, alguns exemplos são:

[root@ol7-ora12-srvprd1 bin]# ./tfactl set repositorydir=/u01/app/oracle/tfa2
Successfully changed repository
.------------------------------------------------------------.
| Repository Parameter      | Value                          |
+---------------------------+--------------------------------+
| Old Location              | /u01/app/oracle/tfa/repository |
| New Location              | /u01/app/oracle/tfa2           |
| Current Maximum Size (MB) | 10240                          |
| Current Size (MB)         | 0                              |
| Status                    | OPEN                           |
'---------------------------+--------------------------------'
[root@ol7-ora12-srvprd1 bin]# ./tfactl set minagetopurge=48
[root@ol7-ora12-srvprd1 bin]# ./tfactl set autopurge=ON


Toda a configuração do TFA pode ser encontrada em:
Managing and Configuring Oracle Trace File Analyzer

Coleta automatica de eventos


O TFA observa erros como ORA-600 e node Eviction, quando isso ocorre ele pode:

  • Invocar ferramentas de diagnostico e coleta de logs.
  • Reduzir o tamanho dos logs apenas contendo as informações necessárias.
  • Consolidar e compactar a coleta de logs entre todos os nodes.
  • Armazenar os logs em um repositório.
  • Enviar email.
  • Fazer upload para Oracle.

Para realizar a coleta automatica basta executar:

[root@ol7-ora12-srvprd1 bin]# ./tfactl set autodiagcollect=ON
Successfully set autodiagcollect=ON



Oracle Trace File Analyzer Workflow
Oracle Trace File Analyzer Workflow




Coletando Informações de diagnostico manualmente


Há diversas formas de coletas, podemos filtrar por erros especificos, definir uma janela de tempo especifico, filtrar por componente ou em tempo real, a domuentação é enorme, vou colocar alguns exemplos iguais ao site da Oracle, porém quando solicitado por um analista do Suporte esse irá especificar examente o que deve ser coletado e é bom ter, pois não havendo todos os logs o troubleshot pode não ser dos melhores.

Health Check em tempo real

tfactl summary
Todos eventos nas ultimas 18 horas

tfactl analyze –last 18h

Todos os erros ora600 nas ultimas 8 horas

tfactl analyze -search “ora-00600" -last 8h

Tools


Além das ferramentas de coleta e health check que o TFA possui a há outras ferramentas que foram incluidas no TFA e podem ser utilizadas em conjunto, algumas delas são o orachk, oratop e oswbb, todas muito util para diagnostico e troubleshoot, acredito que cada uma mereça um capitulo a parte, fica para um proximo post.

Para validar o status de cada uma delas:

[root@ol7-ora12-srvprd1 bin]# ./tfactl toolstatus

.------------------------------------------------------------------.
|              TOOLS STATUS - HOST : ol7-ora12-srvprd1             |
+----------------------+--------------+--------------+-------------+
| Tool Type            | Tool         | Version      | Status      |
+----------------------+--------------+--------------+-------------+
| Development Tools    | orachk       |   12.2.0.1.3 | DEPLOYED    |
|                      | oratop       |       14.1.2 | DEPLOYED    |
+----------------------+--------------+--------------+-------------+
| Support Tools Bundle | darda        | 2.10.0.R6036 | DEPLOYED    |
|                      | oswbb        |        8.0.1 | RUNNING     |
|                      | prw          | 12.1.13.11.4 | NOT RUNNING |
+----------------------+--------------+--------------+-------------+
| TFA Utilities        | alertsummary |   12.2.1.1.0 | DEPLOYED    |
|                      | calog        |   12.2.0.1.0 | DEPLOYED    |
|                      | dbcheck      |   18.3.0.0.0 | DEPLOYED    |
|                      | dbglevel     |   12.2.1.1.0 | DEPLOYED    |
|                      | grep         |   12.2.1.1.0 | DEPLOYED    |
|                      | history      |   12.2.1.1.0 | DEPLOYED    |
|                      | ls           |   12.2.1.1.0 | DEPLOYED    |
|                      | managelogs   |   12.2.1.1.0 | DEPLOYED    |
|                      | menu         |   12.2.1.1.0 | DEPLOYED    |
|                      | param        |   12.2.1.1.0 | DEPLOYED    |
|                      | ps           |   12.2.1.1.0 | DEPLOYED    |
|                      | pstack       |   12.2.1.1.0 | DEPLOYED    |
|                      | summary      |   12.2.1.1.0 | DEPLOYED    |
|                      | tail         |   12.2.1.1.0 | DEPLOYED    |
|                      | triage       |   12.2.1.1.0 | DEPLOYED    |
|                      | vi           |   12.2.1.1.0 | DEPLOYED    |
'----------------------+--------------+--------------+-------------'

Note :-
  DEPLOYED    : Installed and Available - To be configured or run interactively.
  NOT RUNNING : Configured and Available - Currently turned off interactively.
  RUNNING     : Configured and Available.


Referencias


MOS Doc ID 1513912.1

OTN TFA Overview
Oracle Documentation