◆ 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のインストールをします。アジェンダはこんな感じです。
- Oracle Java JDK7 インストール
- MySQL インストール
- JobSchedulerのダウンロード
- JobSchedulerのインストール
- インストール語の確認
◆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同じスクリプトに「status」を指定して実行すると、現在のステータスがXML形式で表示されます。
Starting JobScheduler...
情報量が多く見づらいので、xmllintで整形すると良いでしょう。※それでも多いのでgrepしてます。
$ ./jobscheduler.sh status | xmllint --format - | grep "<state" | tr ' ' '\n'XMLなので見づらいですがよく見ると「state="running"」と出力されているのが分ります。
<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">
また、開始日時や 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.pidschdulerプロセスが20個開始されています。
┠{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
ログ出力先の引数(-log-dir)を見つけました。その内、出力先を変更したい所です。
と言う事で今回はここまでです。
0 件のコメント:
コメントを投稿