Exploratory Collaboration Serverを利用して、「パブリッシュが上手くいかない‼」とか「スケジューラ機能が動作していない‼」ということがあったとき、Exploratory社に問い合わせするのが確実です。ですが、問い合わせる前にどこに問題があるのか、切り分ければより良いですね。
自分で解決できるかもしれませんし、また、問い合わせするときにも対応が早いと思います。
具体的にはログを出力して判断しますが、ログにも2通りあります。
Docker全体のログを出力
Exploratory Collaboration Serverは下記のアプリケーションを利用しています。このアプリケーション群をDockerといわれる仮想環境で連動し稼働させています。
exploratory | Exploratoryの本体 |
mongodb | データベース。ユーザー情報も含まれる。 |
nginx | Webサーバー |
webdav | サーバー上のファイルの読み取りや編集をWebブラウザ上で行う |
rserve | R言語(分析用プログラミング言語)の機能を他のプログラムから利用させる |
agendash | バッチ処理の管理を行う |
scheduler | Exploratoryのスケジュール機能 |
これらアプリケーション全体のログ(つまりDockerログ)を出力させる方法は下記になります。
1.SSHにてExploratory Collaboration Serverにログイン
2.Exploratory Collaboration Serverを起動させているホームディレクトリに移動
例 cd /usr/exploratory
3.ログを出力
$ sudo docker logs
3のログを出力後はExploratoryでの操作した内容が出力されます。Exploratory Collaboration Serverを操作してその操作でlogが出力されているか、Errorはないか、または出力されていないか(対象のアプリが動いていない、またはネットワークに問題がありアプリ迄届いていない)等を判断します。
個別のログ出力
特定のアプリケーションで不具合が発生していることが特定出来たらそのログを出力する。
下記はスケジューラ機能にて不具合がある場合を想定。
1.SSHにてExploratory Collaboration Serverにログイン
2.Exploratory Collaboration Serverを起動させているホームディレクトリに移動
例 cd /usr/exploratory
3.Docker 各プロセスのIDを取得
$ docker ps
上記コマンドを発行して、出力結果よりIMAGE名が“scheduler”で始まり、COMMAND名が“./start.sh”の行を探し、
「コンテナID」を取得する。下記例では「b8801cd93acf」
4.ログが下記にあるので参照する /var/lib/docker/containers/<Scheduler Container ID>/<Scheduler Container ID>-json.log
まとめ
分析用データは機密性の高いデータが多いです。そのため、なるべく外部のサポートを利用せずに社内で対応できるのが望ましいと考えます。障害調査もチャレンジされてみてはいかがでしょうか。