こんにちは、キクです。
エンジニアとして業務をしていると突発的な障害などで調査をすることがありますよね。
そんな時にはベンダーさんにログなどの情報を送付して協力してもらうこともあるかと思います。
本記事ではNetAppで調査が必要になった場合に必要となる一連の流れを書いていこうと思います。
というわけで今回は『NetAppにおける調査依頼時の一連の作業』をテーマに書いていきたいと思います!
ちなみに、ザックリとした流れは「AutoSupport送信 → ログの圧縮 → ログのダウンロード」です。
本記事の内容
それでは、よろしくお願いします。
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コマンドに慣れている方なら何をしているかは理解できると思いますが、以下のような操作をしています。
手順3のオプション「--exclude stats」で圧縮対象から/mrrot/etc/log/statsディレクトリを除外していますが、これは作業によって不要だったり対象が変わったりすることがあるかもしれません。
あとはオプション「-cvzf」の順番を間違えてしまうと処理内容が変わってしまうので注意しましょう。
少し余談になりますが、/mrootディレクトリは各ノードが保持しています。
そのため、/mroot/etc/logディレクトリに全ノード分のログが記録されているわけではなく、システムシェルに切り替える際に指定したノードのログが記録されているということになります。
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
::*>
なんてことはない作業ですが、一応解説を。
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権限)」から抜ければ全作業完了となります。
お疲れさまでした。
おわりに
いかがだったでしょうか。
今回はログの取得方法について解説しました。
手順を調べる上で「断片的な情報」だったり、はたまた知りたい情報がなかったりというケースも少なくないので、今回は一連の流れを記事にしてみました。
今回の内容はあくまでも一例ではありますが、少しでも参考になれば幸いです。
本記事を最後までお読みいただき、ありがとうございました。
ではでは!