Autonomous Health Framework について (その2) 

## はじめに
Autonomous Health Framework について (その1)では、セットアップの簡易手順と、環境やステータスを確認するコマンドおよび表示例についてまとめています。その２では、AHF本来の診断情報収集や評価など、実践的な機能を見ていきます。ここでの内容ですが、AHFの活用範囲はとても大きくなるため、ORAchkやEXAchkについては割愛しTrace File Analyzer (TFA)を中心にします。
## AHFの活用範囲とコマンド例
### 0) MOS Automation
TFA最大の目的は何といっても起きてしまったトラブルを迅速に解決するために必要な情報を「抜け」「漏れ」なく収集し、サポート部門と連携する事にあると言って良いかと思います。そのための手段はいくつかありますが、常に状態を監視しログを収集し続けておくという考えのもと運用するのが現行のTFAです。このリアルで詳細な情報の収集とサポート部門連携を自動で行う機能に “MOS Automation” があります。これは、代表的な「tfactl diagcollect」 や、その Option である -srdc により実現できますが、Oracle Technology Night #62-2「Autonomous Health Framework 概要と実践」でも解説されています。
<https://developer.oracle.com/ja/community/japan-events/database-technology-night2022.html>
ここでは、以下のコマンドを紹介しています。
```
[root@ahft01 ~]Tfactl diagcollect –srdc dbperf
```
具体的には -srdc でサポート・リクエスト用のデータ収集を実施しますが、dbperf 指定なのでデータベース性能に関する情報収集を行います。
<https://docs.oracle.com/cd/F55570_01/ahfug/tfactl-diagcollect-srdc.html#GUID-0463FC76-ACF9-4BAD-B540-D33B8E663A29>
### 1) tfactl diagcollect の実行例 (直近1時間の情報収集指定で)
```
[root@ahft01 ~]# tfactl diagcollect -last 1h
No events found from 2023-11-09 09:07:29.000 to 2023-11-09 10:07:30.000
1 . Enter a different event time
2 . Display Problem Categories
X . Exit
Choose the option [1-2]:
Choose the option [1-2]:2
```
問題を収集する対象を表示してみると、より範囲を絞った収集が可能になる
```
Problem Categories:
1  . ACFS
2  . ASM Configuration
3  . ASM Errors/Other
4  . ASM Instance Crash
5  . CRS Client
6  . CRS Errors/Other
7  . Clusterware Installation
8  . Clusterware Patching
9  . Clusterware Startup
10 . Clusterware Upgrade
11 . Database Corruption
12 . Database Errors/Other
13 . Database Install
14 . Database Instance Eviction/Crash
15 . Database Internal Error
16 . Database Memory
17 . Database Patching
18 . Database Performance
19 . Database RMAN
20 . Database Recovery
21 . Database Storage (ASM)
22 . Database Streams/AQ
23 . Database Upgrade
24 . Dataguard
25 . GoldenGate
26 . Node Eviction/Reboot
27 . Problem not listed, provide problem description
X  . Exit
Select the category of your problem [1-27]:6
1 . Other CRS Errors
2 . Problem not listed, provide problem description
X . Exit

Select the category of your problem [1-27]:6
```
⇧CRSの問題を表示してみる
```
1 . Other CRS Errors
2 . Problem not listed, provide problem description
X . Exit
Choose the option [1-2]:1
```
⇧CRSの問題が発生していないため、とりあえず1を選択
```
Enter the time of the problem [YYYY-MM-DD HH24:MI:SS.sss]:2023-10-31
The requested collection time is older than the AHF retention period for events (7 days), Event Selection not available for this Collection.
The requested collection time is older than the AHF retention period for events (7 days), Event Selection not available for this Collection.
Components included in this collection: OS CRS CHMOS
 
Preparing to execute support diagnostic scripts.
Collecting data for all nodes
 
TFA is using system timezone for collection, All times shown in JST.
Scanning files from oct/30/2023 23:30:00 to oct/31/2023 00:30:00
Collection Id : 20231109100828ahft01

Detailed Logging at : /u01/app/21.0.0/grid_base/oracle.ahf/data/repository/srdc_crs_collection_Thu_Nov_09_10_08_32_JST_2023_node_all/diagcollect_20231109100828_ ahft01.log
 
Waiting up to 120 seconds for collection to start
2023/11/09 10:08:43 JST : NOTE : Any file or directory name containing the string .com will be renamed to replace .com with dotcom
2023/11/09 10:08:43 JST : Collection Name : tfa_srdc_crs_Thu_Nov_09_10_08_31_JST_2023.zip
2023/11/09 10:08:43 JST : Collecting diagnostics from hosts : [ahft01, ahft02]
2023/11/09 10:08:45 JST : Scanning of files for Collection in progress...
2023/11/09 10:08:45 JST : Collecting Additional Diagnostic Information...
2023/11/09 10:08:53 JST : Executing Collection for CRS with timeout of 1800 seconds...
2023/11/09 10:09:50 JST : Getting list of files satisfying time range [10/30/2023 23:30:00, 10/31/2023 00:30:00]
2023/11/09 10:10:01 JST : Executing Collection for OS with timeout of 1860 seconds...
2023/11/09 10:10:09 JST : Completed Collection of Additional Diagnostic Information...
2023/11/09 10:10:54 JST : Collecting ADR incident files...
2023/11/09 10:11:09 JST : Completed Local Collection
2023/11/09 10:11:09 JST : Not Redacting this Collection ...
2023/11/09 10:11:09 JST : Remote Collection in Progress...
2023/11/09 10:11:26 JST : Collection completed on host: ahft02
2023/11/09 10:11:26 JST : Collection completed on host: ahft01
2023/11/09 10:11:26 JST : Completed collection of zip files.
 
.----------------------------------.
|        Collection Summary        |
+--------+-----------+------+------+
| Host   | Status    | Size | Time |
+--------+-----------+------+------+
| ahft02 | Completed | 13MB | 113s |
| ahft01 | Completed | 12MB | 146s |
'--------+-----------+------+------'
 
Logs are being collected to: /u01/app/21.0.0/grid_base/oracle.ahf/data/repository/srdc_crs_collection_Thu_Nov_09_10_08_32_JST_2023_node_all
/u01/app/21.0.0/grid_base/oracle.ahf/data/repository/srdc_crs_collection_Thu_Nov_09_10_08_32_JST_2023_node_all/ ahft01.tfa_srdc_crs_Thu_Nov_09_10_08_31_JST_2023.zip
/u01/app/21.0.0/grid_base/oracle.ahf/data/repository/srdc_crs_collection_Thu_Nov_09_10_08_32_JST_2023_node_all/ ahft02.tfa_srdc_crs_Thu_Nov_09_10_08_31_JST_2023.zip
```
⇧TFA上では問題が発生していないが、指定した範囲の収集はしてくれる
### 2) tfactl analyze の実行例
データベース、Oracle Automatic Storage Management (Oracle ASM)およびOracle Grid Infrastructureのアラート・ログ、システム・メッセージ・ログ、OSWatcher Top、OSWatcher Slabinfoファイルを解析するのでdiagcollectなどで収集する範囲を絞り易くなるケースも考えられます。例では、直近1時間の情報を分析ししています。
```
[root@ahft01 ~]# tfactl analyze -last 1h
INFO: analyzing all (Alert and Unix System Logs) logs for the last 60 minutes...  Please wait...
INFO: analyzing host: ptvm10

                       Report title: Analysis of Alert,System Logs
                  Report date range: last ~1 hour(s)
         Report (default) time zone: JST - Japan Standard Time
                Analysis started at: 14-Nov-2023 11:41:38 AM JST
              Elapsed analysis time: 0 second(s).
                 Configuration file: /opt/oracle.ahf/tfa/ext/tnt/conf/tnt.prop
                Configuration group: all
                Total message count:          2,232, from 04-Sep-2023 05:41:25 PM JST to 14-Nov-2023 11:00:00 AM JST
  Messages matching last ~1 hour(s):              1, from 14-Nov-2023 11:00:00 AM JST to 14-Nov-2023 11:00:00 AM JST
        last ~1 hour(s) error count:              0
last ~1 hour(s) ignored error count:              0
 last ~1 hour(s) unique error count:              0

Message types for last ~1 hour(s)
   Occurrences percent  server name          type
   ----------- -------  -------------------- -----
             1  100.0%  ahft01               generic
   ----------- -------
             1  100.0%

Unique error messages for last ~1 hour(s)
   Occurrences percent  server name          error
   ----------- -------  -------------------- -----
   ----------- -------
             0  100.0%

INFO: analyzing all (Alert and Unix System Logs) logs for the last 60 minutes...  Please wait...
INFO: analyzing host: ahft02

              Report title: Analysis of Alert,System Logs
         Report date range: last ~1 hour(s)
Report (default) time zone: JST - Japan Standard Time
       Analysis started at: 14-Nov-2023 11:41:40 AM JST
     Elapsed analysis time: 0 second(s).
        Configuration file: /opt/oracle.ahf/tfa/ext/tnt/conf/tnt.prop
       Configuration group: all
       Total message count:              0
```
### 3) ahf insight とは
AHFインサイトを使用すると、GUIからシステム全体を俯瞰し、さらにドリルダウンして根本原因を分析可能になります。AHF22.3くらいから実装された機能です。
<https://docs.oracle.com/cd/F55570_01/ahfug/ahf-insights.html#GUID-CA1ED11D-E14B-4AF6-8D55-29D7F84D5736>
```
[root@ahft01 ~]#ahf analysis create --type insights --last 2h
```
![Q06-2_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3470713/bc9b427b-b552-dad9-e3a8-d5e833044d4f.png)
AHF診断ユーティリティ、Oracle EXAchk/ORAchk、Oracle Trace File Analyzer、Exawatcher(OSWatcher) およびクラスタ状態モニターによって収集されたOracle診断収集に関する詳細な診断から情報を提供できるらしく、直感的に問題個所を追いやすい感じになっています。
## 最後に
AHF について(その2)として、実際の収集操作の代表的なものを見てみましたが、オプションなどの選択肢も多く幅広く深い情報収集ができそうです。が、初動として大切なのはトラブル発生時に抜けもれなくデータが収集されていて、サポート部門と適切なやりとりが始まる事なので、やや環境に負荷があっても自動収集が望まれます。そのためのツールとしてはクラスタのみでは無くシングル・インスタンス環境での活用も有益に思えました。