Zabbix-JobScheduler連携ツール 
HyClops JobMonitoringによる 
運用システムOSS化の実現 
TIS 株式会社 
戦略技術センター 
池田 大輔 
2014/12/12 OSC2014.Enterprise@Tokyo
自己紹介 
池田 大輔 
TIS株式会社 戦略技術センター 
@ike_dai 
https://www.facebook.com/ikedai 
Zabbix,AWS,fluentd,Chef,JobScheduler... 
名前 
所属 
Twitter 
Facebook 
興味 
ThinkIT連載「自動化時代のインフラ環境稼働テスト「Serverspec」入門」 
(http://thinkit.co.jp/book/2014/08/01/5149) 
技術評論社HP : http://gihyo.jp/book/2014/978-4-7741-6288-1 
Amazon : http://www.amazon.co.jp/dp/4774162884
TISエンタープライズOSSサポートサービス 
OSSの利用をトータルにバックアップ 
保守サポート 
コンサルティングマイグレーション
TISエンタープライズOSSサポートサービス 
対象OSS 
アプリケーション 
稼働基盤 
運用基盤 
インフラ基盤 
※今後サポート対象予定
TISエンタープライズOSSサポートサービス 
対象OSS 
アプリケーション 
稼働基盤 
運用基盤 
インフラ基盤 
※今後サポート対象予定 
※TISはZabbix社の認定パートナーです。
運用を取り巻く状況の変化 
システムの仮想化・クラウド化が加速 
管理対象機器の大規模化管理対象機器の動的な変化 
手動運用でカバーできるシステムが減少 
“運用自動化”が益々求められる状況で 
より安定したシステムを低価格で迅速に提供
OSSを運用環境に取り入れる 
多くのOSSは用途に特化した形で提供 
監視ジョブ管理 
ログ管理 
Zabbix 
Nagios 
・・・ 
インシデント 
管理 
JobScheduler 
・・・ 
rsyslog 
Fluentd 
サーバ・・・ 
構成管理 
Chef 
Ansible 
・・・ 
Redmine 
OTRS 
・・・
OSSを運用環境に取り入れる 
APIをベースに各ツール連携することがポイント 
監視ジョブ管理 
ログ管理 
Zabbix 
Nagios 
・・・ 
インシデント 
管理 
JobScheduler 
・・・ 
rsyslog 
Fluentd 
サーバ・・・ 
構成管理 
Chef 
Ansible 
・・・ 
Redmine 
OTRS 
・・・ 
API
着目したのは高機能&拡張性の高さ 
統合監視OSS ジョブ管理OSS
OSS統合監視ソフトウェアZabbix 
OSS統合監視ツール (GPL ver.2) 
ラトビアのZabbixSIA社が開発 
2014/12/12時点の最新安定版2.4.2 (2014/11/5リリース) 
監視対象機器 
- Linux 
- Windows 
- NW機器 
等 
監視方法 
- Zabbix Agent監視 
- SNMP監視 
- IPMI監視 
- エージェントレス監視 
等 
監視内容 
- リソース監視 
- 死活監視 
- ICMPPing 
- プロセス 
- Web監視 
- ログ監視 
- HW監視 
- SQL監視 
等
Zabbixは監視手法が豊富 
snmp server 
snmp server 
任意の情報をpush型でZabbixに登録 
SNMP Trap 
SNMP 
ssh server 
ssh server 
Zabbix Agent 
仮想化HV 
Cloud 
ODBC 
DB 
JMX 
Java 
アプリ 
仮想環境API 
クラウドAPI 
Zabbix Sender 
Zabbix Server 
SSH接続による 
内部コマンド実行監視 
ZabbixAgent 
による内部監視 
(リソースやログ等) 
ODBCによるDB監視 
Zabbix Java GatewayによるJava監視 
外部チェックスクリプト監視機能によるAPI監視
Zabbixは自動化機能が充実 
監視設定パターン化監視設定自動化運用自動化 
テンプレート機能ZabbixAgent自動登録機能 
ローレベルディスカバリ機能 
アクション機能 
監視設定をサーバの用途毎、 
種別毎等まとめる機能 
Agent起動時に自身の情報を 
Zabbix Serverに自動連携 
監視対象サーバ内の情報を収集し、 
その内容に合わせて自動設定 
条件を設定してあらかじめ登録し 
た運用作業処理実行コマンドを 
自動実行 
Zabbix API機能 
プログラムからZabbixの設定や 
監視結果情報取得を実現
参考情報: ローレベルディスカバリ 
Zabbix Server 
ディスカバリルール 
/ /data 
定期的に探索 
アイテムプロトタイプ 
アイテム 
vfs.fs.size[{#FSNAME},free] 
{ 
"data":[ 
   { 
   "{#FSNAME}":"/", 
  "{#FSTYPE}":"ext3"}, 
  { 
  "{#FSNAME}":"/data", 
  "{#FSTYPE}":"ext3"}, 
  ・・・省略 
} 
アイテム 
vfs.fs.size[/,free] 
vfs.fs.size[/data,free] 
活用例: 
JobSchedulerに登録されているJob一覧情報に基づいてアイテム自動登録とか
参考情報: ZabbixAPI 
■ できること 
 - Zabbixに対する操作(設定変更、ホスト追加、グループ作成等)実施 
 - Zabbixで管理している監視結果の取得(history,event,IT service情報) 
■ APIの形式: JSON-RPC 
 - URL: http://<zabbix-server>/zabbix/api_jsonrpc.php 
 - メソッド: host.create、host.update、item.get、history.getなど 
 - パラメータ: メソッド毎に必要なパラメータを渡す 
host.getの例 
レスポンス 
{ 
"auth": "xxxxxxx", 
"method": "host.get", 
"params": { 
"output": "extend", 
"filter": {"host":"Zabbix server"} 
}, 
"jsonrpc": "2.0", 
"id": 1 
} 
{ 
"jsonrpc":"2.0", 
"result":[{ 
"maintenances":[], 
"hostid":"10084", 
"host":"Zabbix server", 
・・・略 
}], 
"id":1 
} 
リクエストパラメータ
OSSジョブ管理ソフトウェアJobScheduler 
OSSジョブ管理ツール (GPL ver.2) 
ドイツ ベルリンのSOS社が開発 
2014/12/12時点の最新安定版1.7.4321 (2014/11/17リリース) 
対応プラットフォーム 
- Linux 
- Windows 
- Solaris 
- AIX 
- HP-UX 
ジョブ実行方法 
- JS単体でのジョブ実行 
- JS Agentによる 
リモートサーバへのジョブ実行 
- SSH接続による 
リモートサーバへのジョブ実行 
対応可能処理 
- フロー(JobChain)実行 
- スケジュール実行 
- 多重実行・排他制御 
- 先行・後続制御 
- 優先度設定 
- ジョブ実行監視 
- メール通知 
等 
※ JS = JobScheduler 
※ JS Agent = JobScheduler Agent
JobSchedulerの基本構成 
JOC 
JOE 
※Jobエディタ 
Job Job 
Chain 
JobScheduler Agent 
JobScheduler Agent 
SSH Server 
※Job管理WebGUI 
Job Job 
Chain 
DB 
※Job実行履歴、 
 Jobスケジューリング情報 
 等 
Schedule Process 
Class 
Schedule Process 
Class 
JobScheduler Engine
JobSchedulerのJobの考え方 
Standalone Job 
Job Chain 
Order Job 
Order Job 
Schedule 
• Standalone Job 
– 単体で稼動するジョブを定義 
• Job Chain 
– 複数ジョブを順序関係を考慮して 
組み合わせるジョブ(order job)を定義 
• Schedule 
– ジョブの稼動予定を定義 
• ジョブ定義は様々な記述が可能 
– ShellScript, Windows bat,Java, 
JavaScript,VBScript, javax.script, 
Perl 
JobSchedulerの特徴 
● ジョブ関連の全ての定義がXMLファイルで管理 
● 様々な操作を簡単に行えるようにする機能が提供されている 
○ ファイル操作、ファイル転送、DB制御、SQL操作、レポーティング機能 などなど
JobSchedulerのJob定義の例 
Standalone Jobの書き方 
<?xml version="1.0" encoding="ISO-8859-1"?> 
<job order="no" stop_on_error="no"> 
<script language="shell"><![CDATA[ 
#!/bin/bash 
FILE=/tmp/demo_job.log 
echo `date`": Executed demo_main Job" >> $FILE 
sleep 2 
]]></script> 
<run_time let_run="yes" repeat="60"/> 
</job> 
任意の実行処理が記述可能 
実行タイミングを指定可能
JobSchedulerのJobChain定義の例 
JobChainの書き方 
Before_Job Main_Job After_Job 
Start 
<?xml version="1.0" encoding="ISO-8859-1"?> 
Success 
Error 
<job_chain orders_recoverable="yes" title="test_jobchain" visible="yes"> 
<job_chain_node state=”Before_Job” job=”/path/to/before_job” error_state="Error" next_state=”Main_Job”/> 
<job_chain_node state=”Main_Job” job=”/path/to/main_job” error_state="Error" next_state="After_Job"/> 
<job_chain_node state=”After_Job” job=”/path/to/after_job” error_state="Error" next_state="Success"/> 
<job_chain_node state="Success"/> 
<job_chain_node state="Error"/> 
</job_chain>
JobSchedulerのSchedule定義の例 
Scheduleの書き方 
<?xml version="1.0" encoding="ISO-8859-1"?> 
<schedule title="demo schedule" valid_to="2014-12-31 23:59:59"> 
<period single_start="10:30"/> 
<weekdays > 
<day day="6"> 
<period single_start="04:00"/> 
</day> 
</weekdays> 
</schedule> 
毎日10:30 
毎週土曜 4:00
参考情報: JobScheduler API 
内部API 
ジョブの中でJobSchedulerに対する操作が可能 
※例:ジョブAの実行に失敗したらジョブBのジョブスケジュールを変更 
WebAPI 
外部ツールからJobSchedulerに対する操作が可能 
※例:Zabbixの監視結果で障害が発生したらとあるジョブCを実行
JobScheduler単体だとできないこと 
● ジョブの失敗時の通知は単純なメール送信のみ 
● ジョブの実行結果はテキストとして保存されているのみ 
(表示はテキストベースの一覧表示) 
● ジョブ管理に特化したツールであるため監視機能はない
HyClops JobMonitoring OSS公開 
高機能な監視を実現するZabbix 
高機能なジョブ管理を実現するJobScheduler
HyClops JobMonitoring 
概要 
● ジョブ実行状況をZabbixにて監視するツール 
● ZabbixやJobScheduler自体の改変はせずそのまま利用可能 
● Zabbixの監視機能、JobSchedulerのジョブ実行機能を活用 
● JobScheduler利用時に不足する監視機能をZabbixで補う 
● 2014年12月10日 OSSとして公開 
公式サイトURL: http://tech-sketch.github.io/hyclops_jm 
GitHubリポジトリ: https://github.com/tech-sketch/hyclops_jm
HyClops JobMonitoring 
3つのメリット 
その1. ジョブの失敗や遅延情報をZabbixでキャッチアップ 
TimeLimit! 
Zabbix 
通知をZabbixのアクション設定に基づいて実行できるため、より柔軟な対応が可能に
HyClops JobMonitoring 
3つのメリット 
その2. ジョブ実行時の状態の推移をZabbixで管理 
1ヶ月前 
Finish! 
1時間 
現在 
ZabbixのDBにて推移状況を管理できるのでジョブ実行の分析が可能に 
各ジョブの実行時のサーバリソースの状況と紐付けての管理も可能に 
Finish! 
3時間
HyClops JobMonitoring 
3つのメリット 
その3. ジョブ実行時の高負荷に備えた監視設定変更 
平常時のCPU負荷Job実行時のCPU負荷 
閾値閾値 
Jobの実行によりあらかじめ想定される負荷への対応が可能
HyClopsJMの機能詳細 
ジョブ失敗状況の検知 
Zabbix HyClops JM JobScheduler Engine 
実行 
Error終了 
メールを 
フック 
Zabbix連携処理mail送信 
より柔軟な通知 
※JobScheduler Agent毎に管理 
Zabbix Sender 
Zabbixアクション設定 
Zabbixトリガー設定 
Job稼働ステータス 
Jo監b視稼ア働イステテムータス 
監視アイテム
HyClopsJMの機能詳細 
ジョブ失敗通知設定例 
時間軸 
JobChain1 
失敗 
JobChain1 
失敗 
JobChain1 
失敗 
JobChain1 
失敗 
Skip! Skip!
Job定義 
HyClopsJMの機能詳細 
ジョブ稼働時間の監視 
Zabbix 
ホスト 
server-01 
server-02 
アイテム 
JobA稼働時間 
Job1稼働時間 
Job3稼働時間 
JobScheduler Engine 
server-01 
JobScheduler Agent 
server-02 
JobScheduler Agent 
HyClops JM 
定義情報をもとに 
設定自動連携 
実行ログを解析し 
稼働時間自動登録 
自動登録 
Job2稼働時間 
Job4稼働時間 
JobA 
JobChain1 
Job1 
Job2 
JobChain2 
Job3 
Job4 
ローレベルディスカバリ 
Zabbix Sender
HyClopsJMの機能詳細 
稼働時間推移グラフ例
HyClopsJMの機能詳細 
トリガー閾値の自動変更 
Zabbix 
閾値変更Job 
メインJob 
復帰Job 
Jobテンプレート 
閾値変更Job 
テンプレート 
復帰Job 
テンプレート 
既存トリガー 
無効化 
Job実行中のみ 
有効なトリガー 
新規作成 
例: CPU使用率>70%なら障害 
例: CPU使用率>90%なら障害 
Zabbix API
HyClopsJMの機能詳細 
トリガー閾値の自動変更 
Zabbix 
閾値変更Job 
メインJob 
復帰Job 
Jobテンプレート 
閾値変更Job 
テンプレート 
復帰Job 
テンプレート 
既存トリガー 
有効化 
Job実行中のみ 
有効なトリガー 
削除 
例: CPU使用率>70%なら障害 
例: CPU使用率>90%なら障害 
Zabbix API
HyClopsJMの機能詳細 
閾値変更例 
CPUのロードアベレージのトリガー閾値を変更したい場合 
閾値変更Job 
(HyClops_JM_Trigger_switch 
) 
復帰Job 
(HyClops_JM_Trigger_ret) 
パラメータに以下を指定 
trigger_name 
Processor load is too high on {HOST.NAME} 
trigger_cond 
{localhost:system.cpu.load[percpu,avg1].avg(5m)}>10 
パラメータの指定なし 
閾値変更Jobで変更されたものを全て元に戻す
HyClopsJMのデモ 
1. ジョブ追加に伴い自動的にZabbixに監視アイテム登録 
2. トリガー変更ジョブ組み込みによる動的な閾値変更 
デモ環境構成 
AWS EC2インスタンスにZabbix ServerとJobScheduler Engineを導入 
EC2 
Zabbix Server 
Job 
Chain 
Job 
Chain 
アイテム自動登録 
Job Job 
JobScheduler Engine 
追加
HyClopsJMのデモ 
1. ジョブ追加に伴い自動的にZabbixに監視アイテム登録 
2. トリガー変更ジョブ組み込みによる動的な閾値変更 
デモ環境構成 
AWS EC2インスタンスにZabbix ServerとJobScheduler Engineを導入 
EC2 
Zabbix Server 
トリガー変更 
Job 
Chain 
トリガー変更ジョブ組み込みJobChain Run! 
Job 
Chain 
Job Job 
JobScheduler Engine
HyClops JMのセットアップ方法 
1. 稼働に必要なものをインストール 
・Zabbix、JobScheduler、PostgreSQL、Fabric、Python 
・自動インストールするためのChefRepoも公開 
https://github.com/tech-sketch/hyclops_jm-chef-repo 
$ git clone https://github.com/tech-sketch/hyclops_jm-chef-repo.git 
$ cd hyclops_jm-chef-repo 
$ vi config/config.json 
{ 
"postgresql": { 
"version": "9.3" 
}, 
"zabbix": { 
"version": "2.2" 
}, 
"jobscheduler": { 
"version": { 
"major": "1.7" 
} 
} 
} 
$ ./install_middleware.sh
HyClops JMのセットアップ方法 
2. HyClops JobMonitoringを入手 
https://github.com/tech-sketch/hyclops_jm 
$ curl -O https://github.com/tech-sketch/hyclops_jm/archive/[version no.].tar.gz 
$ tar zxvf hyclops_jm-[version no.].tar.gz
HyClops JMのセットアップ方法 
3. 設定ファイルを編集 
hyclops_jm.conf 
# HyClops JobMonitoring user 
jm_user = hyclops_jm # HyClops JobMonitoring用OSユーザ 
jm_passwd = hyclops_jm # 上記ユーザのパスワード 
# JobScheduler configuration 
js_id = scheduler # JobSchedulerのscheduler id 
js_user = scheduler # JobSchedulerのインストールユーザ 
js_passwd = scheduler # 上記ユーザのパスワード 
js_host = 127.0.0.1 # JobSchedulerの実行ホストのIP 
js_port = 4444 # JobSchedulerの待ち受けポート 
# Zabbix configuration 
zbx_host = 127.0.0.1 # Zabbixの実行ホストのIP 
zbx_login_user = Admin # Zabbix Web UIにログイン可能な管理者ユーザ 
zbx_login_passwd = zabbix # 上記管理者ユーザのパスワード 
zbx_external_scripts_dir = /usr/lib/zabbix/externalscripts # Zabbixの外部チェック用スクリプトの格納ディレ 
クトリ 
# Database super user 
db_user = postgres # PostgreSQLのスーパーユーザ 
db_passwd = # 上記ユーザのパスワード 
db_host = 127.0.0.1 # PostgreSQL実行ホストのIP 
db_port = 5432 # PostgreSQLの待ち受けポート 
pgsql_version = 9.3 # PostgreSQLのバージョン
HyClops JMのセットアップ方法 
4. HyClops JobMonitoringインストール 
$ sudo fab -c hyclops_jm.conf install 
セットアップはこれで完了 
あとは自動的にジョブの情報がZabbixに連携
Zabbix JobScheduler 
Database for 
HyClops JM 
Fig.1 Architecture 
Fabric 
script 
script 
script 
script 
・・・API 
API 
Get job elapse 
job 
Job item and host 
sync job 
Collaborate with API 
Trigger with job error 
script mail alias 
Zabbix Host 
Template App 
JobScheduler 
Template App 
HyClops JM 
Scheduled job execute 
fabric script 
Trigger modify 
job template 
Auto registration 
Config Database
まとめ 
● ZabbixやJobSchedulerは非常に高機能なOSS 
● HyClops JobMonitoringは 
○ 各ツールの機能を活用しつつ不足する部分を補うことで 
相乗効果を創出 
○ 以下の機能を実現 
■ ジョブ実行時間の監視 
■ ジョブ失敗の検知 
■ ジョブ実行時の負荷状況に応じた動的な監視設定 
● 今後の予定 
○ 追加機能開発を行い更なる有効な連携を実現 
試してみたいという方はご連絡を!! 
展示ブースにてデモもお見せできます!
お問い合わせはこちらまで 
TIS株式会社 
OSSサポートサービス担当窓口 
oss-sales@ml.tis.co.jp 
ご清聴ありがとうございました。

More Related Content

PDF
Osc2016 tokyo sprint-jobschedulerを活用したoperations as codeの世界
PDF
Job schedulerを活用したoperations as codeの世界
PDF
手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介
PDF
Zabbixを使った効果的な運用管理の実現
PDF
AWSを含めたハイブリッド環境の監視の実現 ~zabbixのクラウド対応モジュールHyClops~
ODP
Zabbix study
PDF
ガチ(?)対決!OSSのジョブ管理ツール
PDF
JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介
Osc2016 tokyo sprint-jobschedulerを活用したoperations as codeの世界
Job schedulerを活用したoperations as codeの世界
手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介
Zabbixを使った効果的な運用管理の実現
AWSを含めたハイブリッド環境の監視の実現 ~zabbixのクラウド対応モジュールHyClops~
Zabbix study
ガチ(?)対決!OSSのジョブ管理ツール
JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介

What's hot (20)

PDF
オープンに活動することと現場の改善~Zabbix導入による改善物語~
PDF
2.0~2.2~2.4~3.0 zabbixの進化を紐解く zabbix便利機能紹介-
PDF
Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化
PDF
Tech circle#13 zabbix3.0ハンズオン lld
PPTX
5分でインストール!awsでzabbix3.0
PDF
第6回zabbix jp勉強会資料
PDF
第5回oss運用管理勉強会 zabbix徹底活用術の紹介
PDF
Zabbixのパフォーマンスチューニング & インストール時の注意点
PDF
インフラ運用管理ツールとGolang OSS運用管理勉強会LT
PDF
Zabbix-jp study #4 20111020 session2
PDF
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
PDF
Zabbix勉強会
PPTX
ニフティクラウドにZabbixをインストールしてみた
PPTX
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
PDF
Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~
PDF
第8回oss運用管理勉強会 Zabbix入門&Zabbix3.0先取り紹介
PDF
CentOS6 でも Zabbix 3.0 を動かしたい
PDF
Zabbix超入門
PDF
zabbixを使ったクラウド環境の監視とツール連携
PPTX
OSS運用管理勉強会 cockpit
オープンに活動することと現場の改善~Zabbix導入による改善物語~
2.0~2.2~2.4~3.0 zabbixの進化を紐解く zabbix便利機能紹介-
Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化
Tech circle#13 zabbix3.0ハンズオン lld
5分でインストール!awsでzabbix3.0
第6回zabbix jp勉強会資料
第5回oss運用管理勉強会 zabbix徹底活用術の紹介
Zabbixのパフォーマンスチューニング & インストール時の注意点
インフラ運用管理ツールとGolang OSS運用管理勉強会LT
Zabbix-jp study #4 20111020 session2
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
Zabbix勉強会
ニフティクラウドにZabbixをインストールしてみた
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~
第8回oss運用管理勉強会 Zabbix入門&Zabbix3.0先取り紹介
CentOS6 でも Zabbix 3.0 を動かしたい
Zabbix超入門
zabbixを使ったクラウド環境の監視とツール連携
OSS運用管理勉強会 cockpit
Ad

Viewers also liked (9)

PPTX
OSC2015kyoto
PDF
Jbossとtomcatの性能を比べてみた
PDF
Zabbixとjob scheduler連携による運用システムoss化の実現
PDF
Zabbix conference2015 daisukeikeda
PDF
AWS Ops系サービスが更に便利になる中、それでもなおZabbixとセットで考えたほうが良いのか?
PDF
Serverspecの活用tips紹介
PDF
クラウド時代を生きぬくためのITエンジニアとシステムインテグレータのOSS活用!
PDF
Tech circle bot x zabbix オペレータbot lt
PDF
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
OSC2015kyoto
Jbossとtomcatの性能を比べてみた
Zabbixとjob scheduler連携による運用システムoss化の実現
Zabbix conference2015 daisukeikeda
AWS Ops系サービスが更に便利になる中、それでもなおZabbixとセットで考えたほうが良いのか?
Serverspecの活用tips紹介
クラウド時代を生きぬくためのITエンジニアとシステムインテグレータのOSS活用!
Tech circle bot x zabbix オペレータbot lt
インフラ自動構築エンジン "Ansible"の勘所を1日でつかむ ~基礎入門編~
Ad

Similar to OSC2014.Enterprise Zabbix-JobScheduler連携ツールHyClopsJobMonitoringによる運用システムOSS化の実現 (20)

PDF
第2回 OSS運用管理勉強会 運用あるある(Zabbix)
PDF
ZabbixのAPIを使って運用を楽しくする話
PPT
Jtf13 ossジョブ管理システムによる運用自動化事例
PDF
140917運用管理勉強会job scheduler
PDF
オープンソースNW監視ツールのご紹介
PDF
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
PDF
運用の現場での監視運用ツールの活用
PDF
Zabbix 1.8の概要と新機能
PDF
SOS JobScheduler Overview (Japanese)
PDF
Zabbix 1.8の概要と新機能
PDF
201023 jobscheduler os_cfall
PPTX
[OpenStack Days Tokyo 2015] Zabbixを用いたOCPベアメタル監視環境構築の自働化
PDF
CMDBuildを中心とした運用管理自動化基盤OpenPIEの事例紹介
PDF
Zabbix監視運用業務の自動化事例
PDF
オープンソースでシステム監視!統合監視ソフトウェア"Zabbix 1.8"の新機能とデモ
PPTX
CloudWatch(+sns+sqs)で障害対応を自動化してみた
PDF
HyClops for Zabbix紹介資料
PDF
12 cyberagent
PDF
オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介
PPTX
OSSで作るOpenStack監視システム
第2回 OSS運用管理勉強会 運用あるある(Zabbix)
ZabbixのAPIを使って運用を楽しくする話
Jtf13 ossジョブ管理システムによる運用自動化事例
140917運用管理勉強会job scheduler
オープンソースNW監視ツールのご紹介
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
運用の現場での監視運用ツールの活用
Zabbix 1.8の概要と新機能
SOS JobScheduler Overview (Japanese)
Zabbix 1.8の概要と新機能
201023 jobscheduler os_cfall
[OpenStack Days Tokyo 2015] Zabbixを用いたOCPベアメタル監視環境構築の自働化
CMDBuildを中心とした運用管理自動化基盤OpenPIEの事例紹介
Zabbix監視運用業務の自動化事例
オープンソースでシステム監視!統合監視ソフトウェア"Zabbix 1.8"の新機能とデモ
CloudWatch(+sns+sqs)で障害対応を自動化してみた
HyClops for Zabbix紹介資料
12 cyberagent
オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介
OSSで作るOpenStack監視システム

More from Daisuke Ikeda (12)

PDF
AIOpsで実現する効率化 OSC 2022 Online Spring TIS
PDF
Osc 2021 fall_tis_変化に強いチーム育成のための取り組み紹介
PDF
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
PPTX
OSC2019 LT 運用レコメンドプラットフォーム開発におけるマイクロサービス構成の実現
PDF
2019/4/18 Zabbix勉強会 徹底活用本の改訂の話
PDF
OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)
PDF
Jtf2018 自律的運用に向けた第一歩
PDF
保守運用現場の課題共有しませんか?-OSC2018LT-
PDF
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
PDF
Tech circle#2 Vagrant+Docker handson
PDF
TISMatsuriLT MackerelとZabbix
PDF
CloudModule for Zabbix
AIOpsで実現する効率化 OSC 2022 Online Spring TIS
Osc 2021 fall_tis_変化に強いチーム育成のための取り組み紹介
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC2019 LT 運用レコメンドプラットフォーム開発におけるマイクロサービス構成の実現
2019/4/18 Zabbix勉強会 徹底活用本の改訂の話
OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)
Jtf2018 自律的運用に向けた第一歩
保守運用現場の課題共有しませんか?-OSC2018LT-
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Tech circle#2 Vagrant+Docker handson
TISMatsuriLT MackerelとZabbix
CloudModule for Zabbix

Recently uploaded (8)

PDF
20250823_IoTLT_vol126_kitazaki_v1___.pdf
PDF
Yamaha DT200WR Real Enduro ENGINE CYLINDER TRANSMISSION
PDF
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
PPTX
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
PDF
Geminiの出力崩壊 本レポートは、Googleの大規模言語モデル「Gemini 2.5」が、特定の画像と短文入力に対して、誤った地名を推定し、最終的に...
PDF
R-SCoRe: Revisiting Scene Coordinate Regression for Robust Large-Scale Visual...
PPTX
Cosense - 整えずして完全勝利!Cosenseが他のwikiツールと違う理由
PPTX
Vibe Codingを触って感じた現実について.pptx .
20250823_IoTLT_vol126_kitazaki_v1___.pdf
Yamaha DT200WR Real Enduro ENGINE CYLINDER TRANSMISSION
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
Geminiの出力崩壊 本レポートは、Googleの大規模言語モデル「Gemini 2.5」が、特定の画像と短文入力に対して、誤った地名を推定し、最終的に...
R-SCoRe: Revisiting Scene Coordinate Regression for Robust Large-Scale Visual...
Cosense - 整えずして完全勝利!Cosenseが他のwikiツールと違う理由
Vibe Codingを触って感じた現実について.pptx .

OSC2014.Enterprise Zabbix-JobScheduler連携ツールHyClopsJobMonitoringによる運用システムOSS化の実現

  • 1. Zabbix-JobScheduler連携ツール HyClops JobMonitoringによる 運用システムOSS化の実現 TIS 株式会社 戦略技術センター 池田 大輔 2014/12/12 OSC2014.Enterprise@Tokyo
  • 2. 自己紹介 池田 大輔 TIS株式会社 戦略技術センター @ike_dai https://www.facebook.com/ikedai Zabbix,AWS,fluentd,Chef,JobScheduler... 名前 所属 Twitter Facebook 興味 ThinkIT連載「自動化時代のインフラ環境稼働テスト「Serverspec」入門」 (http://thinkit.co.jp/book/2014/08/01/5149) 技術評論社HP : http://gihyo.jp/book/2014/978-4-7741-6288-1 Amazon : http://www.amazon.co.jp/dp/4774162884
  • 4. TISエンタープライズOSSサポートサービス 対象OSS アプリケーション 稼働基盤 運用基盤 インフラ基盤 ※今後サポート対象予定
  • 5. TISエンタープライズOSSサポートサービス 対象OSS アプリケーション 稼働基盤 運用基盤 インフラ基盤 ※今後サポート対象予定 ※TISはZabbix社の認定パートナーです。
  • 6. 運用を取り巻く状況の変化 システムの仮想化・クラウド化が加速 管理対象機器の大規模化管理対象機器の動的な変化 手動運用でカバーできるシステムが減少 “運用自動化”が益々求められる状況で より安定したシステムを低価格で迅速に提供
  • 7. OSSを運用環境に取り入れる 多くのOSSは用途に特化した形で提供 監視ジョブ管理 ログ管理 Zabbix Nagios ・・・ インシデント 管理 JobScheduler ・・・ rsyslog Fluentd サーバ・・・ 構成管理 Chef Ansible ・・・ Redmine OTRS ・・・
  • 8. OSSを運用環境に取り入れる APIをベースに各ツール連携することがポイント 監視ジョブ管理 ログ管理 Zabbix Nagios ・・・ インシデント 管理 JobScheduler ・・・ rsyslog Fluentd サーバ・・・ 構成管理 Chef Ansible ・・・ Redmine OTRS ・・・ API
  • 10. OSS統合監視ソフトウェアZabbix OSS統合監視ツール (GPL ver.2) ラトビアのZabbixSIA社が開発 2014/12/12時点の最新安定版2.4.2 (2014/11/5リリース) 監視対象機器 - Linux - Windows - NW機器 等 監視方法 - Zabbix Agent監視 - SNMP監視 - IPMI監視 - エージェントレス監視 等 監視内容 - リソース監視 - 死活監視 - ICMPPing - プロセス - Web監視 - ログ監視 - HW監視 - SQL監視 等
  • 11. Zabbixは監視手法が豊富 snmp server snmp server 任意の情報をpush型でZabbixに登録 SNMP Trap SNMP ssh server ssh server Zabbix Agent 仮想化HV Cloud ODBC DB JMX Java アプリ 仮想環境API クラウドAPI Zabbix Sender Zabbix Server SSH接続による 内部コマンド実行監視 ZabbixAgent による内部監視 (リソースやログ等) ODBCによるDB監視 Zabbix Java GatewayによるJava監視 外部チェックスクリプト監視機能によるAPI監視
  • 12. Zabbixは自動化機能が充実 監視設定パターン化監視設定自動化運用自動化 テンプレート機能ZabbixAgent自動登録機能 ローレベルディスカバリ機能 アクション機能 監視設定をサーバの用途毎、 種別毎等まとめる機能 Agent起動時に自身の情報を Zabbix Serverに自動連携 監視対象サーバ内の情報を収集し、 その内容に合わせて自動設定 条件を設定してあらかじめ登録し た運用作業処理実行コマンドを 自動実行 Zabbix API機能 プログラムからZabbixの設定や 監視結果情報取得を実現
  • 13. 参考情報: ローレベルディスカバリ Zabbix Server ディスカバリルール / /data 定期的に探索 アイテムプロトタイプ アイテム vfs.fs.size[{#FSNAME},free] { "data":[    {    "{#FSNAME}":"/",   "{#FSTYPE}":"ext3"},   {   "{#FSNAME}":"/data",   "{#FSTYPE}":"ext3"},   ・・・省略 } アイテム vfs.fs.size[/,free] vfs.fs.size[/data,free] 活用例: JobSchedulerに登録されているJob一覧情報に基づいてアイテム自動登録とか
  • 14. 参考情報: ZabbixAPI ■ できること  - Zabbixに対する操作(設定変更、ホスト追加、グループ作成等)実施  - Zabbixで管理している監視結果の取得(history,event,IT service情報) ■ APIの形式: JSON-RPC  - URL: http://<zabbix-server>/zabbix/api_jsonrpc.php  - メソッド: host.create、host.update、item.get、history.getなど  - パラメータ: メソッド毎に必要なパラメータを渡す host.getの例 レスポンス { "auth": "xxxxxxx", "method": "host.get", "params": { "output": "extend", "filter": {"host":"Zabbix server"} }, "jsonrpc": "2.0", "id": 1 } { "jsonrpc":"2.0", "result":[{ "maintenances":[], "hostid":"10084", "host":"Zabbix server", ・・・略 }], "id":1 } リクエストパラメータ
  • 15. OSSジョブ管理ソフトウェアJobScheduler OSSジョブ管理ツール (GPL ver.2) ドイツ ベルリンのSOS社が開発 2014/12/12時点の最新安定版1.7.4321 (2014/11/17リリース) 対応プラットフォーム - Linux - Windows - Solaris - AIX - HP-UX ジョブ実行方法 - JS単体でのジョブ実行 - JS Agentによる リモートサーバへのジョブ実行 - SSH接続による リモートサーバへのジョブ実行 対応可能処理 - フロー(JobChain)実行 - スケジュール実行 - 多重実行・排他制御 - 先行・後続制御 - 優先度設定 - ジョブ実行監視 - メール通知 等 ※ JS = JobScheduler ※ JS Agent = JobScheduler Agent
  • 16. JobSchedulerの基本構成 JOC JOE ※Jobエディタ Job Job Chain JobScheduler Agent JobScheduler Agent SSH Server ※Job管理WebGUI Job Job Chain DB ※Job実行履歴、  Jobスケジューリング情報  等 Schedule Process Class Schedule Process Class JobScheduler Engine
  • 17. JobSchedulerのJobの考え方 Standalone Job Job Chain Order Job Order Job Schedule • Standalone Job – 単体で稼動するジョブを定義 • Job Chain – 複数ジョブを順序関係を考慮して 組み合わせるジョブ(order job)を定義 • Schedule – ジョブの稼動予定を定義 • ジョブ定義は様々な記述が可能 – ShellScript, Windows bat,Java, JavaScript,VBScript, javax.script, Perl JobSchedulerの特徴 ● ジョブ関連の全ての定義がXMLファイルで管理 ● 様々な操作を簡単に行えるようにする機能が提供されている ○ ファイル操作、ファイル転送、DB制御、SQL操作、レポーティング機能 などなど
  • 18. JobSchedulerのJob定義の例 Standalone Jobの書き方 <?xml version="1.0" encoding="ISO-8859-1"?> <job order="no" stop_on_error="no"> <script language="shell"><![CDATA[ #!/bin/bash FILE=/tmp/demo_job.log echo `date`": Executed demo_main Job" >> $FILE sleep 2 ]]></script> <run_time let_run="yes" repeat="60"/> </job> 任意の実行処理が記述可能 実行タイミングを指定可能
  • 19. JobSchedulerのJobChain定義の例 JobChainの書き方 Before_Job Main_Job After_Job Start <?xml version="1.0" encoding="ISO-8859-1"?> Success Error <job_chain orders_recoverable="yes" title="test_jobchain" visible="yes"> <job_chain_node state=”Before_Job” job=”/path/to/before_job” error_state="Error" next_state=”Main_Job”/> <job_chain_node state=”Main_Job” job=”/path/to/main_job” error_state="Error" next_state="After_Job"/> <job_chain_node state=”After_Job” job=”/path/to/after_job” error_state="Error" next_state="Success"/> <job_chain_node state="Success"/> <job_chain_node state="Error"/> </job_chain>
  • 20. JobSchedulerのSchedule定義の例 Scheduleの書き方 <?xml version="1.0" encoding="ISO-8859-1"?> <schedule title="demo schedule" valid_to="2014-12-31 23:59:59"> <period single_start="10:30"/> <weekdays > <day day="6"> <period single_start="04:00"/> </day> </weekdays> </schedule> 毎日10:30 毎週土曜 4:00
  • 21. 参考情報: JobScheduler API 内部API ジョブの中でJobSchedulerに対する操作が可能 ※例:ジョブAの実行に失敗したらジョブBのジョブスケジュールを変更 WebAPI 外部ツールからJobSchedulerに対する操作が可能 ※例:Zabbixの監視結果で障害が発生したらとあるジョブCを実行
  • 22. JobScheduler単体だとできないこと ● ジョブの失敗時の通知は単純なメール送信のみ ● ジョブの実行結果はテキストとして保存されているのみ (表示はテキストベースの一覧表示) ● ジョブ管理に特化したツールであるため監視機能はない
  • 23. HyClops JobMonitoring OSS公開 高機能な監視を実現するZabbix 高機能なジョブ管理を実現するJobScheduler
  • 24. HyClops JobMonitoring 概要 ● ジョブ実行状況をZabbixにて監視するツール ● ZabbixやJobScheduler自体の改変はせずそのまま利用可能 ● Zabbixの監視機能、JobSchedulerのジョブ実行機能を活用 ● JobScheduler利用時に不足する監視機能をZabbixで補う ● 2014年12月10日 OSSとして公開 公式サイトURL: http://tech-sketch.github.io/hyclops_jm GitHubリポジトリ: https://github.com/tech-sketch/hyclops_jm
  • 25. HyClops JobMonitoring 3つのメリット その1. ジョブの失敗や遅延情報をZabbixでキャッチアップ TimeLimit! Zabbix 通知をZabbixのアクション設定に基づいて実行できるため、より柔軟な対応が可能に
  • 26. HyClops JobMonitoring 3つのメリット その2. ジョブ実行時の状態の推移をZabbixで管理 1ヶ月前 Finish! 1時間 現在 ZabbixのDBにて推移状況を管理できるのでジョブ実行の分析が可能に 各ジョブの実行時のサーバリソースの状況と紐付けての管理も可能に Finish! 3時間
  • 27. HyClops JobMonitoring 3つのメリット その3. ジョブ実行時の高負荷に備えた監視設定変更 平常時のCPU負荷Job実行時のCPU負荷 閾値閾値 Jobの実行によりあらかじめ想定される負荷への対応が可能
  • 28. HyClopsJMの機能詳細 ジョブ失敗状況の検知 Zabbix HyClops JM JobScheduler Engine 実行 Error終了 メールを フック Zabbix連携処理mail送信 より柔軟な通知 ※JobScheduler Agent毎に管理 Zabbix Sender Zabbixアクション設定 Zabbixトリガー設定 Job稼働ステータス Jo監b視稼ア働イステテムータス 監視アイテム
  • 29. HyClopsJMの機能詳細 ジョブ失敗通知設定例 時間軸 JobChain1 失敗 JobChain1 失敗 JobChain1 失敗 JobChain1 失敗 Skip! Skip!
  • 30. Job定義 HyClopsJMの機能詳細 ジョブ稼働時間の監視 Zabbix ホスト server-01 server-02 アイテム JobA稼働時間 Job1稼働時間 Job3稼働時間 JobScheduler Engine server-01 JobScheduler Agent server-02 JobScheduler Agent HyClops JM 定義情報をもとに 設定自動連携 実行ログを解析し 稼働時間自動登録 自動登録 Job2稼働時間 Job4稼働時間 JobA JobChain1 Job1 Job2 JobChain2 Job3 Job4 ローレベルディスカバリ Zabbix Sender
  • 32. HyClopsJMの機能詳細 トリガー閾値の自動変更 Zabbix 閾値変更Job メインJob 復帰Job Jobテンプレート 閾値変更Job テンプレート 復帰Job テンプレート 既存トリガー 無効化 Job実行中のみ 有効なトリガー 新規作成 例: CPU使用率>70%なら障害 例: CPU使用率>90%なら障害 Zabbix API
  • 33. HyClopsJMの機能詳細 トリガー閾値の自動変更 Zabbix 閾値変更Job メインJob 復帰Job Jobテンプレート 閾値変更Job テンプレート 復帰Job テンプレート 既存トリガー 有効化 Job実行中のみ 有効なトリガー 削除 例: CPU使用率>70%なら障害 例: CPU使用率>90%なら障害 Zabbix API
  • 34. HyClopsJMの機能詳細 閾値変更例 CPUのロードアベレージのトリガー閾値を変更したい場合 閾値変更Job (HyClops_JM_Trigger_switch ) 復帰Job (HyClops_JM_Trigger_ret) パラメータに以下を指定 trigger_name Processor load is too high on {HOST.NAME} trigger_cond {localhost:system.cpu.load[percpu,avg1].avg(5m)}>10 パラメータの指定なし 閾値変更Jobで変更されたものを全て元に戻す
  • 35. HyClopsJMのデモ 1. ジョブ追加に伴い自動的にZabbixに監視アイテム登録 2. トリガー変更ジョブ組み込みによる動的な閾値変更 デモ環境構成 AWS EC2インスタンスにZabbix ServerとJobScheduler Engineを導入 EC2 Zabbix Server Job Chain Job Chain アイテム自動登録 Job Job JobScheduler Engine 追加
  • 36. HyClopsJMのデモ 1. ジョブ追加に伴い自動的にZabbixに監視アイテム登録 2. トリガー変更ジョブ組み込みによる動的な閾値変更 デモ環境構成 AWS EC2インスタンスにZabbix ServerとJobScheduler Engineを導入 EC2 Zabbix Server トリガー変更 Job Chain トリガー変更ジョブ組み込みJobChain Run! Job Chain Job Job JobScheduler Engine
  • 37. HyClops JMのセットアップ方法 1. 稼働に必要なものをインストール ・Zabbix、JobScheduler、PostgreSQL、Fabric、Python ・自動インストールするためのChefRepoも公開 https://github.com/tech-sketch/hyclops_jm-chef-repo $ git clone https://github.com/tech-sketch/hyclops_jm-chef-repo.git $ cd hyclops_jm-chef-repo $ vi config/config.json { "postgresql": { "version": "9.3" }, "zabbix": { "version": "2.2" }, "jobscheduler": { "version": { "major": "1.7" } } } $ ./install_middleware.sh
  • 38. HyClops JMのセットアップ方法 2. HyClops JobMonitoringを入手 https://github.com/tech-sketch/hyclops_jm $ curl -O https://github.com/tech-sketch/hyclops_jm/archive/[version no.].tar.gz $ tar zxvf hyclops_jm-[version no.].tar.gz
  • 39. HyClops JMのセットアップ方法 3. 設定ファイルを編集 hyclops_jm.conf # HyClops JobMonitoring user jm_user = hyclops_jm # HyClops JobMonitoring用OSユーザ jm_passwd = hyclops_jm # 上記ユーザのパスワード # JobScheduler configuration js_id = scheduler # JobSchedulerのscheduler id js_user = scheduler # JobSchedulerのインストールユーザ js_passwd = scheduler # 上記ユーザのパスワード js_host = 127.0.0.1 # JobSchedulerの実行ホストのIP js_port = 4444 # JobSchedulerの待ち受けポート # Zabbix configuration zbx_host = 127.0.0.1 # Zabbixの実行ホストのIP zbx_login_user = Admin # Zabbix Web UIにログイン可能な管理者ユーザ zbx_login_passwd = zabbix # 上記管理者ユーザのパスワード zbx_external_scripts_dir = /usr/lib/zabbix/externalscripts # Zabbixの外部チェック用スクリプトの格納ディレ クトリ # Database super user db_user = postgres # PostgreSQLのスーパーユーザ db_passwd = # 上記ユーザのパスワード db_host = 127.0.0.1 # PostgreSQL実行ホストのIP db_port = 5432 # PostgreSQLの待ち受けポート pgsql_version = 9.3 # PostgreSQLのバージョン
  • 40. HyClops JMのセットアップ方法 4. HyClops JobMonitoringインストール $ sudo fab -c hyclops_jm.conf install セットアップはこれで完了 あとは自動的にジョブの情報がZabbixに連携
  • 41. Zabbix JobScheduler Database for HyClops JM Fig.1 Architecture Fabric script script script script ・・・API API Get job elapse job Job item and host sync job Collaborate with API Trigger with job error script mail alias Zabbix Host Template App JobScheduler Template App HyClops JM Scheduled job execute fabric script Trigger modify job template Auto registration Config Database
  • 42. まとめ ● ZabbixやJobSchedulerは非常に高機能なOSS ● HyClops JobMonitoringは ○ 各ツールの機能を活用しつつ不足する部分を補うことで 相乗効果を創出 ○ 以下の機能を実現 ■ ジョブ実行時間の監視 ■ ジョブ失敗の検知 ■ ジョブ実行時の負荷状況に応じた動的な監視設定 ● 今後の予定 ○ 追加機能開発を行い更なる有効な連携を実現 試してみたいという方はご連絡を!! 展示ブースにてデモもお見せできます!