SharePoint 診断ログを使用したトラブルシュート
こんにちは、SharePoint サポートの西村です。
今回は SharePoint 診断ログの採取方法と、ログを使用したトラブルシュート方法について投稿します。
我々サポートチームにトラブルシュートのお問い合わせをいただいた際、ほとんどの場合 SharePoint 診断ログのご提供を依頼させていただいております。
診断ログを確認することで、問題の原因特定に大変有効となりますので、本投稿を運用の参考としていただければ幸いです。
- 診断ログについて
- ログレベルについて
- ログの解析について
- 診断ログについて
診断ログは既定では SharePoint のインストール フォルダ配下の Logs フォルダに出力され、14 日ごとにローテーションされて古いログは自動的に破棄されます。
ログの出力先、および保存日数は SharePoint の全体管理サイト ([監視] - [レポート] - [診断ログの構成]) で変更することが可能です。
サポートにお問い合わせいただく際、現象発生から時間が経っているとログが既に破棄されてしまっている場合もありますので、ご注意いただければと思います。
- 参考情報
タイトル:SharePoint Server 2016 で診断ログを構成する
アドレス:https://technet.microsoft.com/ja-jp/library/ee748656(v=office.16).aspx
- ログレベルについて
現象のトラブルシュートを行う際には、ログレベルを詳細に変更することが有効です。
なおログレベルを上げるほど、ログの出力量は比例して増加するため、ディスク容量やリソースをより多く使用することになります。
上述の技術資料にも記載がありますが、トラブルシュートや特定の処理の記録を目的とする以外で、平時より詳細なログレベルで運用いただくことは推奨されませんのでご留意ください。
SharePoint 管理シェルを管理者権限で起動し、下記のコマンドレットを実行することでログレベルの変更が可能です。
>Set-SPLogLevel -TraceSeverity Verbose
なお、SharePoint 2010 以降では下記のコマンドレットを実行することで、さらに詳細なログを出力することも可能です。
現象の発生が短時間であり、より詳細に処理内容を確認したい場合に有効です。
>Set-SPLogLevel -TraceSeverity VerboseEx
既定のログレベルに戻す場合には、下記のコマンドレットを実行します。
> Clear-SPLogLevel
※カテゴリごとにログの出力レベルを変更している場合には、上記コマンドによってすべて既定値に変更されますので、個別に再設定いただく必要があります。
現在のすべてのカテゴリのログレベルを出力するには、下記コマンドレットが有効です。
>Get-SPLogLevel | Out-GridView
- 参考情報
タイトル:Set-SPLogLevel
アドレス:https://technet.microsoft.com/ja-jp/library/ff607887.aspx
タイトル:Clear-SPLogLevel
アドレス:https://technet.microsoft.com/ja-jp/library/ff607880.aspx
タイトル:Get-SPLogLevel
アドレス:https://technet.microsoft.com/ja-jp/library/ff607576.aspx
- ログの解析について
詳細レベルのログ ファイルはサイズが大きくなりますので、現象が再現できる場合には再現時にログ ファイルを切り替えることで、解析がしやすくなります。
既定では 30 分ごとにログ ファイルが自動的に切り替わりますが、現象発生前後で下記のコマンドレットを実行することで、ログ ファイルの切り替えを手動で行うことが可能です。
>New-SPLogFile
さて、詳細レベルのログが採取できたら、解析をしてみましょう。
診断ログは一般的なテキスト エディタで開けますので、誰でも確認することが可能ですが、下記のツール等を使用することでより見やすくなるかと思います。
タイトル:ULS Viewer
アドレス:https://www.microsoft.com/en-us/download/details.aspx?id=44020
今回は一例として、サイト アクセス時に発生した "予期しないエラー" のトラブルシュートを行ってみたいと思います。
SharePoint のエラーとして "予期しないエラー" はエラーの中で最も一般的なメッセージですが、これだけでは原因の特定が困難かと思います。
しかしエラー画面には他にも有効な情報がありますので、是非画面ショットを取得してください。
確認するのは関連付け ID と日付と時刻です。”技術的な詳細” リンクをクリックすると表示されます。
特定の処理に関連するログは関連付け ID によって紐づけられます。
この ID をもとにログを確認することで、膨大なログの中から目的とする処理のログのみを抽出することができます。
ではさっそく ULS Viewer でログを開いて、上記関連付け ID のログを確認してみましょう。
今回はサイト アクセス時のエラーについて確認をしたいので、w3wp.exe の処理を確認すれば良いのですが、このままだと msseach.exe 等ほかのプロセスの処理も羅列されているので、少々煩雑です。
そこで関連付け ID (Correlation) でフィルターします。(関連付け ID が分からない場合は、プロセスやカテゴリなどでフィルターすると良いかと思います。)
大分整理できました。
今回はエラーなので、更に絞り込んでみましょう。上部の赤いボタン以外の選択を解除することで、Monitorable 以上のレベルのログのみ表示することが可能です。
タイムアウトが発生していることが確認できました。
一時的かもしれませんし、IIS のタイムアウト値を延長する等、対応が必要かもしれませんが、対処法が見えてきたかと思います。
エラーの確認はもちろん、現象発生時の処理の詳細を確認することや、SQL Server に対して実行するストアドプロシージャ、クエリの特定等にも診断ログは有効です。
ご利用環境に何らかの問題が発生した時の確認にお役立ていただければ幸いです。
また、ログを見ても全然わからない!という場合は、弊社サポートチームまでご相談いただければ全力でご支援いたしますので、是非ご相談ください!