【NetApp】調査依頼時のAutoSupports送信からログ取得方法まで

2022年2月13日

netapp-log

こんにちは、キクです。

エンジニアとして業務をしていると突発的な障害などで調査をすることがありますよね。
そんな時にはベンダーさんにログなどの情報を送付して協力してもらうこともあるかと思います。
本記事ではNetAppで調査が必要になった場合に必要となる一連の流れを書いていこうと思います。

というわけで今回は『NetAppにおける調査依頼時の一連の作業』をテーマに書いていきたいと思います!
ちなみに、ザックリとした流れは「AutoSupport送信 → ログの圧縮 → ログのダウンロード」です。

それでは、よろしくお願いします。

動作環境

本記事の内容は下記の環境で実施したものになります。
・ONTAP 9.1

注意事項

本記事は僕が経験した内容をもとに記載しておりますが、実行環境や設定などによって動作が異なる場合があります。
そのため『参考程度』にお読みいただけますと幸いです。

Step1:diagユーザの設定

まず最初に行うのが今回の作業で使用する「diag」というユーザ関連の設定です。

こちらのユーザはセキュリティの観点からデフォルトではロック状態なのでそのままだと使えません
そのため、事前にdiagユーザを使える状態にします。

diagユーザのパスワード設定

本作業が初めての場合、もしかしたらdiagユーザのパスワード設定がされていないかもしれません。
そのため、次のコマンドでパスワード設定を実施します。

::> security login password -username diag

上記コマンド実施後、「新しいパスワードは?」と聞かれるので入力ミスのないように設定しましょう。

注意事項

既にパスワードを設定済みの場合、本作業は不要となります。

diagユーザのロック解除

続いてdiagユーザのロックを解除して使用できる状態にしていきましょう。
まずは現在の状態を確認します。

::> security login show -username diag

diagユーザの「Acct Locked」という項目が「yes」になっていればロックされている状態となります。

次のコマンドでアンロックしていきます。

::> security login unlock -username diag

上記コマンド実施後、再度「security login show」を実施して「Acct Locked」が「no」になっていればアンロック完了です。

Step2:AutoSupportの送信

続いてAutoSupportの送信を実施していきます。
この作業により、現在の各ノードの様々な情報をベンダーさんに送信していきます。

diagモードに変更

まずはクラスタシェルでdiag権限に変更していきます。

::> set -privilege diagnostic

Warning: These diagnostic commands are for use by NetApp personnel only.
Do you want to continue{y|n}: y

::*>

「あれ?」と思われた方もいるかも知れませんが、ここではパスワード入力を求められません。

少しややこしいのですが、前項で設定したdiagユーザの「パスワード設定」や「アンロック設定」はここでは絡んできません。

後続で登場する「システムシェル」としてdiagユーザに切り替える際にパスワードが必要となってきます
「クラスタシェル」や「システムシェル」がイメージできない方は以下の記事で簡単に解説しているので、参考にしてみでください。
関連記事:【NetApp】システムシェルを使ってディレクトリ構成を確認する方法

AutoSupportの送信

以下のコマンドを実行してAutoSupportを送信しましょう。

::*> system node autosupport invoke -node * -type all

特別な指定があれば情報を絞って送信したりするケースもあるかもしれませんが、基本的には全ノードの全情報をマルっと送信することが多いかと思います。

Step3:ログの圧縮

それではいよいよログ関連の操作に入っていきます。
ここでは最終的に取得したいログの圧縮操作について触れていきたいと思います。

システムシェルにdiagユーザとしてログイン

本項目では「tarコマンド」を含むUNIXコマンドで行います。

ここまでの作業はクラスタシェルで実行してきましたが、UNIXコマンドはクラスタシェルでは実行できません。
そのため、まずは以下のコマンドでdiagユーザとしてシステムシェルにログインしましょう。

::*> systemshell -node ノード名
login:diag
Password: xxxxxx
ノード名%

上記のようにプロンプトが「ノード名%」となっていればシステムシェルに切り替わっています。

なお、「Password: 」については「Step1:diagユーザの設定」で設定したパスワードを入力してあげればOKです。
もし今回の作業以外でパスワードを設定済みの場合には、既存のパスワードを入力しましょう。

ログ格納ディレクトリを圧縮

それでは対象となるログ格納ディレクトリを圧縮していきましょう。

ONTAPでは基本的に/mroot/etc/logディレクトリ配下にログが蓄積されています。
今回の作業では、このディレクトリごとマルっと圧縮してしまいましょう。

ノード名% cd /mroot/etc/log
ノード名% pwd
/mroot/etc/log
ノード名% tar -cvzf xxxx-logs.tar.gz --exclude stats /mroot/etc/log

UNIXコマンドに慣れている方なら何をしているかは理解できると思いますが、以下のような操作をしています。

上記コマンド群の内容

1. 対象ディレクトリに移動
2. 現在のディレクトリ(カレントディレクトリ)を確認
3. statsディレクトリを除外して/mroot/etc/logディレクトリを「xxxx-logs-tar.gz」という名前で圧縮

手順3のオプション「--exclude stats」で圧縮対象から/mrrot/etc/log/statsディレクトリを除外していますが、これは作業によって不要だったり対象が変わったりすることがあるかもしれません。
あとはオプション「-cvzf」の順番を間違えてしまうと処理内容が変わってしまうので注意しましょう。

少し余談になりますが、/mrootディレクトリは各ノードが保持しています。
そのため、/mroot/etc/logディレクトリに全ノード分のログが記録されているわけではなく、システムシェルに切り替える際に指定したノードのログが記録されているということになります。

メモ

ちなみに、/mrootディレクトリ自体は各ノードの「ルートボリューム」という領域に保存されています。

そのため本作業は各ノード毎に実施する必要があります。

Step4:ブラウザ経由でのログのダウンロード

続いて、先程圧縮したログファイルをダウンロードしてきましょう。

圧縮したログファイルはあくまでもONTAPのボリューム上に保存されているだけなので、ローカル環境に保存してあげる必要があります。
今回はブラウザ経由でダウンロードしていきましょう。

ブラウザで「https://クラスタ管理LIFのIPアドレス/spi」にアクセスしましょう。
すると「認証ユーザ」と「パスワード」を聞かれますので、SSH接続でクラスタシェルに接続するのと同じ情報を入力してログインしていきます。

ログインができたら「File Access Links」の「logs」をクリックします。
これで「/etc/log」が表示されますので、圧縮したログファイルをクリックしてダウンロードしましょう。

なお、本ステップでダウンロードしたログファイルをベンダーさんに提供する形になります

Step5:圧縮ログファイルの削除

最後に今回の作業で圧縮したログファイルを削除していきましょう。

システムシェルで作業をするので、もしログアウトしてしまった方は改めてクラスタシェルで/mroot/etc/logディレクトリに移動された状態で本作業を行ってください。

ノード名% ls
ノード名% rm -i xxxx-logs.tar.gz
ノード名% ls
ノード名% exit
logout
::*>

なんてことはない作業ですが、一応解説を。

上記コマンド群の内容

  1. lsコマンドで/mrrot/etc/logディレクトリ配下に対象の圧縮ログファイルが存在することを確認
  2. rmコマンドにより対象圧縮ログファイルを削除
    ※オプジョン「-i」があることで「削除対象に間違いがないか?」という確認をしてくれます
  3. 再度lsコマンドを実行し、対象圧縮ログファイルが削除されていることを確認
  4. システムシェルからログアウト

Step6:diagユーザの再ロック

事後作業となりますが、diagユーザを再度ロックしておきましょう。

::*> security login lock -username diag
::*> security login show -username diag
::*> exit
::> exit

冒頭でも触れましたが、セキュリティの観点上diagユーザはロックされていることが望ましいため本作業も忘れずに行いましょう。
「security login show」で「Acct Locked」が「yes」になっていればロック完了です。

最後にexitコマンドを実行して「クラスタシェル(diag権限)」「クラスタシェル(admin権限)」から抜ければ全作業完了となります。
お疲れさまでした。

おわりに

いかがだったでしょうか。

今回はログの取得方法について解説しました。

手順を調べる上で「断片的な情報」だったり、はたまた知りたい情報がなかったりというケースも少なくないので、今回は一連の流れを記事にしてみました。
今回の内容はあくまでも一例ではありますが、少しでも参考になれば幸いです。

本記事を最後までお読みいただき、ありがとうございました。
ではでは!

 

-NetApp
-