2017年1月7日土曜日

JobSchedulerの新しい JOC Cockpit をインストールしてみた


SOS JobScheduler の新しいバージョンが、リリース候補 1.11.0-RC2 (2017-01-03) として公開されました。

新しいJOC Cockpit が使えるようになったので、インストールしてみました。
インストールした環境は以下のとおり
  • CentOS 7.3
  • OpenJDK 1.8.0_111
  • MariaDB 5.5.52
JobScheduler 用に作成した admin ユーザで JOC をインストールしたのですが、
下記のようなエラーになりインストールできませんでした。

+------------------------------------------------------------------------------------------------------------------------
|   Install/Update Jetty daemon for JOC (JobScheduler Operations Center)
+------------------------------------------------------------------------------------------------------------------------
stop daemon "joc"
Stopping Jetty: ERROR: no pid found at /home/admin/sos-berlin.com/joc/joc.pid
The daemon "joc" is already configured for auto start.
java.io.IOException: Unable to write to directory: /home/admin/sos-berlin.com/joc/logs
java.io.IOException: Unable to write to directory: /home/admin/sos-berlin.com/joc/logs
        at org.eclipse.jetty.start.FS.ensureDirectoryWritable(FS.java:93)
        at org.eclipse.jetty.start.StartLog.initLogFile(StartLog.java:148)
        at org.eclipse.jetty.start.StartLog.initialize(StartLog.java:137)
        at org.eclipse.jetty.start.BaseHome.<init>(BaseHome.java:140)
        at org.eclipse.jetty.start.Main.processCommandLine(Main.java:273)
        at org.eclipse.jetty.start.Main.main(Main.java:74)

Usage: java -jar start.jar [options] [properties] [configs]
       java -jar start.jar --help  # for more information
Starting Jetty: FAILED 2017年  1月  7日 土曜日 11:24:12 JST

ログディレクトリに書き込み権限がないようなので、見てみると以下のようにシンボリックリンクになっています。

[admin@centos701 joc]$ ls -l logs
lrwxrwxrwx 1 admin admin 27  1月  7 11:24 logs -> /var/log/sos-berlin.com/joc

リンク先の ディレクトリのオーナが root なので、admin ユーザで書き込みできるようにしてみました。

[admin@centos701 joc]$ chown admin.admin /var/log/sos-berlin.com/joc

以下のように オーナを admin に変更しました。

[admin@centos701 joc]$ ls -l /var/log/sos-berlin.com
合計 4
drwxr-xr-x 3 root  root    27  1月  7 11:20 jobscheduler
drwxr-xr-x 2 admin admin 4096  1月  7 11:29 joc

再度、setup.sh を実行してインストールすると、今度は、成功しました。

+------------------------------------------------------------------------------------------------------------------------
|   Install/Update Jetty daemon for JOC (JobScheduler Operations Center)
+------------------------------------------------------------------------------------------------------------------------
stop daemon "joc"
Stopping Jetty: OK
The daemon "joc" is already configured for auto start.
StartLog to /home/admin/sos-berlin.com/joc/logs/start.log
2017-01-07 11:28:16.665:INFO::main: Logging initialized @1653ms
2017-01-07 11:28:17.017:INFO::main: Redirecting stderr/stdout to /var/log/sos-berlin.com/joc/2017_01_07.stderrout.log
Starting Jetty: . . . . . . OK 2017年  1月  7日 土曜日 11:28:45 JST
The daemon "joc" has been started.

下記URLで、JOC Cockpit にアクセスするとログイン画面が表示されます。
http://<IPアドレス>:4446/joc/#/login
初期状態は、ユーザ:root、パスワード:root でログインできます。



ログインに成功するとダッシュボードが表示されます。
初期状態で日本語が表示されました。



以下のジョブを実行して、日本語が表示できるか試してみました。
<?xml version="1.0" encoding="ISO-8859-1"?>
<job order="no">
    <script  language="shell">
        <![CDATA[
echo "$SCHEDULER_JOB_NAME processed $SCHEDULER_ORDER_ID"
echo "Current Timestamp: `date '+%Y-%m-%d %H:%M:%S'`"
echo "Current Hostname: `uname -n`"
echo "Current Username: `whoami`"
echo "あいうえお"
exit 0
        ]]>
    </script>
    <run_time />
</job>

下図のように、ジョブの実行結果に日本語メッセージを表示できました。