Cloudera Manager Advent Calendar 2015の7日目です。
意外と知られていない(気がする)機能のひとつに、ログ検索があります。これは、Cloudera Manager(以下CM)で管理しているすべてのノードのすべてのプロセスに対して横断的に検索を実行できる優れものですので、本ポストで紹介したいと思います。
参考ドキュメント: Logs
http://www.cloudera.com/content/www/en-us/documentation/enterprise/latest/topics/cm_dg_logs.html
どんなときに横断的に検索したいか
クラスタのトラブルシューティングをしていると、あるブロックが「いつ」、「どのファイル」に紐付いて作成され、「どのデータノード」に」いつ」複製されたのか、を追いかけたいことがままあります。あるいは、「ジョブが遅く感じる」といった場合に、何か手がかりとなるエラーが発生していないかを探りたいこともあるでしょう。CMの横断検索はそのような用途にぴったりです。
ログ検索
CMのログ検索は簡単です。まず「診断」から「ログ」を選択します。
すると検索画面が表示されます。検索条件として「対象のプロセス」、「対象のホスト」、「ログレベル」、「検索文字列」、「検索範囲(時間)」を指定できます。
また、「ページごとの結果」や「タイムアウト」も必要に応じて設定可能です。
検索後は、統計情報も確認することができます。
ここでは「直近30分以内」のログレベル「ERROR」以上のメッセージに限って検索してみましょう。
ERRORレベル以上の結果が表示されました。結果に表示される「ログファイルの表示」をクリックすると、新しいタブでログファイル全体を開いてくれます。このとき該当箇所がハイライトされていることがわかります。また「ログのダウンロードリンク」からローカルにダウンロードして調査を進めることも可能でしょう。
最後に
以上、ログの横断検索機能を簡単に紹介しました。検索結果は時系列に表示されるので、任意のブロックIDやファイル名でプロセス間を横断的に検索することで動向を追うことができます。CMのログ検索機能を使うことで、クラスタの問題を特定するまでの時間を大幅に短縮できるでしょう。