2013-06-05

SOS JobScheduler

Oracle Virtual BOX 上の Lubuntu マシンに SOS JobScheduler をインストールしたので備忘録。

◆ SOS JobScheduler


JobScheduler は ドイツのSOS社 (http://www.sos-berlin.com/) が開発して GPL ライセンスで公開しているオープンソースソフトウェア。
バッチ処理による情報システムの自動化を支援するアプリケーション。


「ジョブ管理」とか「ランブック自動化」とかいうジャンルのアプリケーション。
商用製品だと日立JP1、IBM Tivoli、HP OpenView、富士通System Walkerなどの競合製品です。

Zabbix と組み合わせて、監視と障害対応の自動化、定期作業の自動化などに使われていくと思います。

◆ Lubuntu

Lubuntu ( http://lubuntu.net/ ) は Ubuntu (Debian GNU Linuxベースのデスクトップ向けディストリビューション)の派生したものです。

普段から使用しているので採用。

lubuntu-13.04-desktop-i386.isoをダウンロードして VM 上にインストールしました。
詳細は割愛しますが、openssh-serverパッケージをインストールしTeratermで作業しつつ
たまにリモートデスクトップ接続でGUI操作などを行ってます。

◆ 概要

今回はJobSchedulerのインストールをします。
アジェンダはこんな感じです。
  1. Oracle Java JDK7 インストール
  2. MySQL インストール
  3. JobSchedulerのダウンロード
  4. JobSchedulerのインストール
  5. インストール語の確認


◆Oracle Java JDV7 インストール


必須パッケージであるJavaをインストールします。

公式リポジトリからはインストールできない。詳細はググって頂くとして、次のコマンドでインストールできます。

$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java7-installer

ライセンスについて注意メッセージが表示されるので、エンター or スペースで次に進みます。


※画像では「<いいえ>」を選んでますが、「<はい>」を選んでください。

 

◆MySQLインストール

JobSchedulerがデータストアとして使用するRDBをインストールします。

apt-get install するだけで楽ちんです。

$ sudo apt-get install mysql-server

パスワードを聞いてきます。MySQLの管理者アカウントのパスワードを設定します。


続いてJDBC ドライバをインストールします。これもコマンドで一発です。

$ sudo apt-get install libmysql-java

 「jobscheduler」データベースを作成します。中身は空っぽで十分です。

$ mysql -uroot -p
mysql> CREATE DATABASE jobscheduler;
mysql> SHOW DATABASES;
mysql> grant all privileges on *.* to root@'%' IDENTIFIED BY 'Password' WITH GRANT OPTION;


ココで、/etc/mysql/my.cnfを編集します。
Ubuntu系のディストリビューションでは、 自ホストを「127.0.1.1」に割り当てており、MySQLのbind-addressを変更する必要があります。

$ sudo vi /etc/mysql/my.cnf
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 127.0.0.1
bind-address            = 127.0.1.1       ←これを追加した

 MySQLを開始します。

$ sudo /etc/init.d/mysql restart

◆SOS JobScheduler のダウンロード

インストールするためにファイルをダウンロードします。

まずはファイルをダウンロードすべく、Google先生にお伺いを立てましょう。
このようにGoogle先生が教えてくれるので「Downloads」をクリックします。



表示されたWebページをスクロールしると最新版のダウンロードリンクが表示されますので「Full Install」をクリックしましょう。




sourceforgeに移動しますので、ファイルがダウンロードされるのを待ちましょう。自動でダウンロード出来ない場合は、「direct link」をクリックするかその他のミラーサイトからダウンロードします。


おおぅっと、間違えて親機のWindowsでファイルをダウンロードしてしまいました。
TeraTermを使ってSSHコピーします。




便利ですね。

ここでようやく気が付きましたが、Lubuntu上のwgetでダウンロードするのが楽でした。

$ wget http://sourceforge.net/projects/jobscheduler/files/jobscheduler_linux.1.3.12.3137.tar.gz  ※実際には一行


さて、ここからはLubuntuデスクトップ上で作業します。

今回は、VirtualBOXのリモートデスクトップ機能を使ってGUI操作を行います。詳細は省きますので興味の有る方はGoogle先生に教えを請うてください。






使い慣れたTeratermで作業したいのでSSHログインして、DISPLAY環境変数をセットします。

$ export DISPLAY=:0

Xクライアントを起動して動作確認します。
$ xeyes &
[1] 3727

 ◆Job Scheduler インストール


以降では、「~/Downloads/sos/」の下にダウンロードした.tar.gzファイルがある前提です。

tar.gz ファイルを展開します。

$ cd /var/tmp
$ tar xfvz ~/Downloads/sos/jobscheduler_linux.1.3.12.3137.tar.gz
jobscheduler.1.3.12.3137/install_scheduler.txt
jobscheduler.1.3.12.3137/jobscheduler_install.xml
jobscheduler.1.3.12.3137/jobscheduler_linux32.jar
jobscheduler.1.3.12.3137/licence.gpl
jobscheduler.1.3.12.3137/licence.txt
jobscheduler.1.3.12.3137/scheduler_installation_de.pdf
jobscheduler.1.3.12.3137/scheduler_installation_en.pdf
jobscheduler.1.3.12.3137/setup.sh

インストーラを起動します。
$ cd jobscheduler.*
$ ./setup.sh
sudo -E java -jar ./jobscheduler_linux32.jar
[sudo] password for job:        ←パスワードw入力

以降は画面の指示に従ってインストールしていきます。

言語を選択します。今回は「eng」 です。





デフォルトでは「/opt/sos-berlin.com/jobscheduler」にインストールされます。
必要があればここで指定します。

コンフィギュレーションとログの保存先です。

デフォルトは「ホームディレクトリ/sos-berlin.com/jobscheduler/scheduler/config」です。
容量が気になりますが今回はデフォルトのままで行きます。


インストールする パッケージを選択します。
たいした容量ではないのですべて選択するのが良いと思います。

「JobScheduler ID」を入力します。分散環境ではそれぞれのインスタンス事にユニークなIDにする必要が有るようです。今回はスタンドアロンなので何でもよさそう。

また、JobSchedulerは「4444/TCP」を使いますが、既に使用中であればココで変更します。

アクセスを制御したい場合は、「Allow Host」に接続を許可するIP又はホスト名を入力します。
すべてのホストを許可する場合は「0.0.0.0」です。
 

分散環境のオプションです。今回はスタンドアロンを選択します。

メール通知用の設定です。
今回はデフォルトのままにします。

メール通知の続きです。
今回はデフォルトのママにします。

自動アップデートの設定です。
比較的ひまな時間帯が良いと思いますが、適当に……。

データベースの設定です。
今回は同じホスト上のMySQLですので、「Host」は自ホスト、「Port」は「3306」を指定します。
「Database」は先ほど作成した「jobscheduler」、「User」 は「root」、パスワードは先ほど指定した「rootパスワード」を入力します。
 ※Lubuntuのrootではないので注意

JDBCドライバのパス「/usr/share/java/mysql.jar」を入力。
これはシンボリックリンクで実体は「/usr/share/java/mysql-connector-java.jar」です。


Cronの設定をします。
今回はデフォルトですが、その内設定変更が必要な気がします。(まだよく分ってません)

インストール中です。

初期化のプロセスが動きました。
表示されるメッセージは、先ほど指定したログ出力先に「Install_*.log」に 記録されますのでエラー等が有る場合はそちらを参照してください。


インストールが完了しました。

◆インストール後の確認

インストール後、JobSchdulerは自動的に開始されています。

親機のブラウザから「http://VMのIP:4444/」にアクセスします。
(またはVM上で「http://localhost:4444/」にアクセスして下さい)


Webアプリケーションが表示されました。


JobSchedulerの開始と終了を確認します。

停止は「jobschduler.sh stop」で行います。
$ cd /opt/sos-berlin.com/jobscheduler/scheduler ←インストール先に移動
$ ./bin/jobscheduler.sh stop

________________________________________________________________________

Job Scheduler instance: scheduler
.............. version: 1.3.3124-b118f08157a1f8b18c836653c148c3bde5460575
......... operated for: lub:4444
........ running since: 2013-06-05 11:13:48
................ state: running
............. cpu used:
........... job chains: 1
................. jobs: 13
............... orders: 0
..... remote instances: 0, connected instances: 0
________________________________________________________________________

No jobs are running for this instance
Shutting down JobScheduler...
<?xml version="1.0" encoding="ISO-8859-1"?>
<spooler><answer time="2013-06-05 11:27:40.749"><ok/></answer></spooler>

 
開始は「jobscheduler.sh start」を実行します。
$ ./bin/jobscheduler.sh start
Starting JobScheduler...
同じスクリプトに「status」を指定して実行すると、現在のステータスがXML形式で表示されます。
情報量が多く見づらいので、xmllintで整形すると良いでしょう。※それでも多いのでgrepしてます。
$ ./jobscheduler.sh status | xmllint  --format - | grep "<state" | tr ' ' '\n'
<state
time="2013-06-04
18:10:11"
id="scheduler"
spooler_id="scheduler"
spooler_running_since="2013-06-04
18:04:50"
state="running"
log_file="/home/take/sos-berlin.com/jobscheduler/scheduler/logs/scheduler-2013-06-04-180450.scheduler.log"
version="1.3.3124-b118f08157a1f8b18c836653c148c3bde5460575"
pid="2105"
config_file="/home/take/sos-berlin.com/jobscheduler/scheduler/config/scheduler.xml"
host="lub"
need_db="yes"
tcp_port="4444"
udp_port="4444"
db="jdbc
-id=spooler
-class=com.mysql.jdbc.Driver
jdbc:mysql://lub:3306/jobscheduler
-user=root"
loop="365"
waits="194"
wait_until="2013-06-04
18:34:55.352">
XMLなので見づらいですがよく見ると「state="running"」と出力されているのが分ります。
また、開始日時や pid 何かも出力されています。

これらの情報はブラウザアクセスする事でも見られますので、やりやすい方でお確かめください。


プロセスツリーを確認してみます。
$ pstree -a -p -l 2105
scheduler,2105 -service -id=scheduler -sos.ini=/home/take/sos-berlin.com/jobscheduler/scheduler/config/sos.ini -ini=/home/take/sos-berlin.com/jobscheduler/scheduler/config/factory.ini -config=/home/take/sos-berlin.com/jobscheduler/scheduler/config/scheduler.xml -param=/home/take/sos-berlin.com/jobscheduler/scheduler -cd=/home/take/sos-berlin.com/jobscheduler/scheduler -include-path=/home/take/sos-berlin.com/jobscheduler/scheduler -log-dir=/home/take/sos-berlin.com/jobscheduler/scheduler/logs -pid-file=/home/take/sos-berlin.com/jobscheduler/scheduler/logs/scheduler.pid
  ┠{scheduler},2106
  ┠{scheduler},2107
  ┠{scheduler},2108
  ┠{scheduler},2109
  ┠{scheduler},2110
  ┠{scheduler},2111
  ┠{scheduler},2112
  ┠{scheduler},2113
  ┠{scheduler},2114
  ┠{scheduler},2115
  ┠{scheduler},2116
  ┠{scheduler},2117
  ┠{scheduler},2118
  ┠{scheduler},2119
  ┠{scheduler},2120
  ┠{scheduler},2121
  ┠{scheduler},2122
  ┠{scheduler},2123
  ┗{scheduler},2124
schdulerプロセスが20個開始されています。
ログ出力先の引数(-log-dir)を見つけました。その内、出力先を変更したい所です。


と言う事で今回はここまでです。

0 件のコメント:

コメントを投稿