概要
MarkLogicでトラブルが起きた時の対処方法を整理することにします。
背景
MarkLogicにしろ何にしろ、トラブルの問合せ先は現場から遠く、対応に時間がかかります。そこで本稿では現場レベルの保守要員が、障害発生時において集めて確認しなければいけない情報と、それに対応するヒントとなる情報を整理してきます。
ログの確認
MarkLogicに関連したログとしては、大きく以下のものが考えられます。必ず一定期間保存するようにしましょう。
出力内容 | 出力場所や方法 | 発見できたトラブルの例 |
---|---|---|
MarkLogicが出力するログ | /var/opt/MarkLogic/Logs | DB内での障害全般 |
クライアントが出力するログ | APの仕様に依る | 通信エラー・認証エラー |
リソース利用状況 | sarコマンドなど | リソースの逼迫 |
OSが出力するログ | /var/log/messages | ディスクチェックの有無 |
最も重要なのは、MarkLogicが出力するErrorLogとAccessLogです。個人的にはDebugレベル以上は取得・Warningレベル以上での発報をお勧めします。その中にXDMPメッセージが出ている場合は、公式サイトの一覧から対応方法を確認できます。デフォルトでは1週間保持されますが、日次で取得・退避しましょう。
次にクライアントのログやメッセージを確認しましょう。例えば、MarkLogic社が提供するバルクロードツールContent Pumpは、実行時にロード成功数・失敗数を標準出力します。これを確保すればトラブルの概要の把握に役立ちます。
リソース利用状況はsarなどが有名ですね。取得間隔は1分以内が望ましいです。後述の通りMarkLogicからも似たような情報が取り出せます。
それ以外では、/var/log/messagesの以下の記述からファイルチェックが行われていないことを指摘されたことがあります。
Dec 11 01:11:16 xxxdb01_in kernel: EXT4-fs (sdf1): warning: maximal mount count reached, running e2fsck is recommended
Dec 12 01:01:34 xxxdb01_in kernel: EXT4-fs (sde1): warning: maximal mount count reached, running e2fsck is recommended
既知バグの確認
発生した事象は、既知のバグとして最新版では修正されている可能性があります。このサイトには、これまでのバグの一覧があります。起きている問題に関するログ内のエラー文言や関連しそうな英単語をCtrl-fで検索してみてください。
ちなみに、本稿を執筆した当時は最新バージョンが9.0-6.1でしたが、その直前の9.0-6と比べて36個のバグが修正されたと記述されていました。私見ですが、やはりメインバージョンで追加された新機能に関しての修正が目立つような気がします。
もし、ここでヒットするものがあれば、「バージョンアップ」で対応方針が固まるはずです。
ナレッジの検索
このサイトには、ナレッジベースで色々と説明や対策が書かれています。例えば、「Handling XDMP-MODNOTFOUND and XDMP-NOPROGRAM errors」という記事には、XDMP-MODNOTFOUNDやXDMP-NOPROGRAMが起きた時の説明が載っています。
必ずしも適用可能な対策が載っているわけではありませんが、状況の把握には役立ちそうです。また多くがエラー文言などからGoogle検索でヒットするのも便利です。
リソースの確認
sarを挙げていましたが、MarkLogic自身もポート8002番にアクセスするとExcel形式で出力を行うことができます。詳細はこのページを参考にしましょう。DB設定のうちGroupsの変更が必要です。デフォルトでは、最も細かい1分単位の情報は1週間で消されてしまうので早めに取得・退避するように心がけましょう。
ポート8002番にアクセスすれば、リソース利用状況をグラフで見ることもできます。
サポートダンプの取得と共有
MarkLogicの設定を確認する手段として、SupportDumpというファイルを出力することができます。出力方法はこのページを参考にしましょう。ver8とver9でやや画面が変わっていますが、本稿を書いた時点ではこのページはどちらも網羅してくれています。
基本的に管理画面で見れる情報と同じものが書いているだけですが、遠隔地などでMarkLogicに直接触れることができないメンバに対して意見を求める場合には十分に使えるはずです。
雑感
運用中に何らかのトラブルが起きない製品はないと思います。ゆえに問題が起きた時の保守・運用のメンバの対応は重要です。プロジェクト管理する方々には、保守・運用メンバに対する一般的な運用管理の能力の確認だけでなくMarkLogic無料研修の紹介など対応能力を上げておいていただくことをお勧めします。