ThoughtSpot 6.0.5にパッチを適用する
前置き
弊社内管理のEC2インスタンス上でThoughtSpot 6.0.5をインストールし活用していたところ、ある日(2020年9月15日頃)から突然メニューがびろーんと横に伸びてしまい、使い物にならなくなりました。
本来あってほしい姿はこうです。
調査した結果、Google Chromeのアップデートに起因するもので、ThoughtSpot側から修正プログラムが提供されていました。 その修正プログラムの適用を実際にやってみました。
前提
- ThoughtSpot 6.0.5インストール済み
- 修正プログラム入手済み
パッチ適用作業
以下、クラスタ起動状態で実施します。
1.スナップショットの取得
ThoughtSpotのインストールセットに含まれるコマンドtscliを使ってスナップショットを取得しておきます。
tscli snapshot create <snapshot_name> upgrade 30 ex) tscli snapshot create 605upgrade upgrade 30 ※”30”はスナップショットの保存日数
以下、実行結果例です。
$ tscli snapshot create 605upgrade upgrade 30 Snapshot created successfully! Will be automatically deleted after 30 days $
2.フルバックアップの取得
同じくtscliコマンドを使用して、ThoughtSpot全体のフルバックアップを取得します。
tscli backup create --mode full <snapshot_name> ./<backup_name> ex) tscli backup create --mode full 605upgrade ./605upgrade ※データ容量以上のストレージ容量を確保しておく必要あり
以下、実行結果例です。
$ tscli backup create --mode full 605upgrade ./605upgrade Snapshot 605upgrade is pinned successfully! Verifying snapshot backup request... Calculating disk space required... The backup will take up to 16,632MB space Copying packs data: 16,635MB/16,632MB (100.02%) ETA: 0:00:00 Done! /s3a/default/sage/uber/usage_events/usage_log-classmethod-nonprod-1.sage_usage_based_index.0.index_server-20200611.145247-0f8429e5-0741-41a9-80be-8d5924cf2f9c /s3a/default/sage/uber/usage_events/usage_log-classmethod-nonprod-1.sage_usage_based_index.0.index_server-20200611.152835-df713d1c-6702-4278-8161-5409948f4347 /s3a/default/sage/uber/usage_events/usage_log-classmethod-nonprod-1.sage_usage_based_index.0.index_server-20200612.001227-e3025333-5bf4-4f4e-af09-e7e2cc3b49d8 /s3a/default/sage/uber/usage_events/usage_log-classmethod-nonprod-1.sage_usage_based_index.0.index_server-20200612.011505-d02bee1d-f5db-4881-84ae-8311820d90f9 /s3a/default/sage/uber/usage_events/usage_log-classmethod-nonprod-1.sage_usage_based_index.0.index_server-20200701.052452-5dc8b9c2-3d98-4bc7-83b0-12d60d06957e /s3a/default/sage/uber/usage_events/usage_log-classmethod-nonprod-1.sage_usage_based_index.0.index_server-20200706.063121-260079e7-e8ec-4e1e-8927-bba040c6a916 /s3a/default/sage/uber/usage_events/usage_log-classmethod-nonprod-1.sage_usage_based_index.0.index_server-20200716.032720-79b99880-9e33-43d9-bf58-0263220111ff /s3a/default/sage/uber/usage_events/usage_log-classmethod-nonprod-1.sage_usage_based_index.0.index_server-20200729.011723-7a89405e-2cb1-4d80-bad7-10e365d04def /s3a/default/sage/uber/usage_events/usage_log-classmethod-nonprod-1.sage_usage_based_index.0.index_server-20200904.040048-593c5da7-433b-4b5e-8ba2-55fd3f26fecc /s3a/default/sage/uber/usage_events/usage_log-classmethod-nonprod-1.sage_usage_based_index.0.index_server-20200904.060309-6bda4f51-7a41-440c-8e39-6c6bac605c5e /s3a/default/sage/uber/usage_events/usage_log-classmethod-nonprod-1.sage_usage_based_index.0.index_server-20200904.102952-1047e039-f638-41ef-a0b7-508ac88fd553 /s3a/default/sage/uber/usage_events/usage_log-classmethod-nonprod-1.sage_usage_based_index.0.index_server-20200904.160601-e2184c1b-3850-4a27-9103-77abe08c99a4 /s3a/default/sage/uber/usage_events/usage_log-classmethod-nonprod-1.sage_usage_based_index.0.index_server-20200915.000830-e898d731-d645-4426-8c7f-e08f3cdb5249 /s3a/default/sage/uber/usage_events/usage_log-classmethod-nonprod-1.sage_usage_based_index.0.index_server-20200916.055955-7d710ec2-2527-4248-ad60-6264c54d2c3b /s3a/default/sage/uber/usage_events/usage_log-classmethod-nonprod-1.sage_usage_based_index.0.index_server-20200916.064740-2e336b6d-b867-4ffb-9db2-56d81577ada9 /s3a/default/sage/uber/usage_events/usage_log-classmethod-nonprod-1.sage_usage_based_index.0.index_server-20200916.075742-1a913a37-641e-44be-a759-c7d002ee5463 /s3a/default/sage/uber/usage_events/usage_log-classmethod-nonprod-1.sage_usage_based_index.0.index_server-20200917.084121-a756125e-65ff-42f0-92f8-b37196c2887b /s3a/default/sage/uber/usage_events/usage_log-classmethod-nonprod-1.sage_usage_based_index.0.index_server-20200917.093919-6a14c5ea-e6a6-4fb1-9623-0c4e86ef6b64 /s3a/default/sage/uber/usage_events/usage_log-classmethod-nonprod-1.sage_usage_based_index.0.index_server-20200917.101529-b5eb7f46-d0f8-4eb6-90f9-dac6acb77b85 /s3a/default/sage/uber/usage_events/usage_log-classmethod-nonprod-1.sage_usage_based_index.0.index_server-20200917.110201-613384d8-7598-40e3-903c-f7190e07d0e7 /s3a/default/sage/uber/usage_events/usage_log-classmethod-nonprod-1.sage_usage_based_index.0.index_server-20200918.045744-4fb42510-cc5e-4801-abb8-a69843b8ea62 /s3a/default/sage/uber/usage_events/usage_log-classmethod-nonprod-1.sage_usage_based_index.0.index_server-20200918.054007-9b5df751-8567-4f5b-81c6-b26ffe8ceec9 Unsuccessful call to hdfsListDirectory for path: /orion/classmethod-nonprod-1/sage/uber/usage_feedback_events Finishing up ... this will take a few minutes. 62/62 packs are done. ===== SUCCESS ===== Snapshot 605upgrade is unpinned successfully! $
3.現バージョンとパッチ対象バージョンの一致確認
パッチを適用する前に、現行のシステムがパッチが適用できるバージョンかを確認します。
(パッチが適用されているかどうかは)
tscli cluster status 下記結果のReleaseのバージョンが6.0.5(今回のパッチ対象バージョン)と一致すること を確認 Cluster : RUNNING Cluster name : XXXX Cluster id : XXXX Number of nodes : 1 Release : 6.0.5 Last update = Wed Jun 3 08:45:32 2020
以下、実行結果例です。
$ tscli cluster status Cluster: RUNNING Cluster name : classmethod-nonprod-1 Cluster id : classmethod-nonprod-1 Number of nodes : 1 Release : 6.0.5 Last update = Thu Jun 11 14:28:06 2020 Heterogeneous Cluster : False Storage Type : S3A Bucket name : cm-thoughtspot-data Database: READY Number of tables in READY state: 56 Number of tables in OFFLINE state: 0 Number of tables in INPROGRESS state: 0 Number of tables in STALE state: 0 Number of tables in ERROR state: 0 Search Engine: READY Number of tables in KNOWN_TABLES state: 13 Number of tables in READY state: 13 Number of tables in WILL_REMOVE state: 0 Number of tables in BUILDING_AND_NOT_SERVING state: 0 Number of tables in BUILDING_AND_SERVING state: 0 Number of tables in WILL_NOT_INDEX state: 0 $
4.パッチの履歴の実行前確認
パッチ適用済みでないかどうかを確認します。
tscli patch ls パッチを初めて適用する場合の結果:No patches applied
以下、実行結果例です。
$ tscli patch ls No patches applied $
5.パッチ適用
実際にパッチを適用させます。
tscli patch apply 6.0.5-49fe55c-nginx-PR.tar.gz ※通常数分程度で実行が完了
以下、実行結果例です。
$ tscli patch apply 6.0.5-49fe55c-nginx-PR.tar.gz Found hosts: 10.100.0.237 Saving release to HDFS Started applying patch Waiting for patch-apply to start... Patch Apply is in progress [2020-09-22 17:36:04] START Staging patch tarball to local file system [2020-09-22 17:36:04] SUCCESS [2020-09-22 17:36:04] START CHECK: Default pre-patch-apply check [2020-09-22 17:41:29] SUCCESS [2020-09-22 17:41:29] START Applying service: nginx [2020-09-22 17:41:54] SUCCESS [2020-09-22 17:41:54] START Post Patch Stage SUCCESS: Patch Applied successfully $
6.適用してから数分後、パッチ履歴の実行後の確認
tscli patch ls 下記のような結果を得られれば正常にパッチ適用できている $ tscli patch ls MD5 Start Time End Time Services ================================================================================================================ 81358432c7661ac148940dc3bdc6884c 2020-09-22 17:36:04 2020-09-22 17:41:54 nginx $
7.ブラウザからのログイン確認とパッチの反映確認
ブラウザからアクセスして、ログインできるか確認します。
可能であれば、パッチ適用の内容を確認しましょう。
(オプション)8.クラスタ再起動
もしパッチが反映されていなければ、クラスタの再起動を行います。
tscli cluster stop tscli cluster start
以上となります。基本的にはtscliコマンドを順に使うだけなので難しいことはありませんでした。実行結果をよく確認しながら1つ1つ丁寧に作業を進めましょう。