zabbixとjob scheduler連携による運用システムoss化の実現

34
ZabbixJobScheduler連携 による運用システムOSSの実現 HyClops JobMonitoringのご紹介〜 TIS 株式会社 戦略技術センター 池田 大輔 2014/9/5 OSC2014.Enterprise@Osaka

Upload: daisuke-ikeda

Post on 12-Jun-2015

4.305 views

Category:

Documents


1 download

DESCRIPTION

OSC2014 Enterprise Osakaでの発表資料です。 HyClops JobMonitoringの紹介です。

TRANSCRIPT

Page 1: Zabbixとjob scheduler連携による運用システムoss化の実現

ZabbixとJobScheduler連携

による運用システムOSS化の実現

〜HyClops JobMonitoringのご紹介〜

TIS 株式会社戦略技術センター

池田 大輔

2014/9/5 OSC2014.Enterprise@Osaka

Page 2: Zabbixとjob scheduler連携による運用システムoss化の実現

自己紹介

池田 大輔

TIS株式会社 戦略技術センター

@ike_dai https://www.facebook.com/ikedai Zabbix,AWS,fluentd,Chef,JobScheduler...

名前

所属

Twitter

Facebook

興味

AWS、VMware監視用プラグイン『HyClops for Zabbix』開発(http://tech-sketch.github.io/hyclops/jp/)技術評論社HP : http://gihyo.jp/book/2014/978-4-7741-6288-1

Amazon : http://www.amazon.co.jp/dp/4774162884

Page 3: Zabbixとjob scheduler連携による運用システムoss化の実現

TIS OSSサポートサービス

保守サポート

コンサルティング マイグレーション

OSSの利用をトータルにバックアップ

Page 4: Zabbixとjob scheduler連携による運用システムoss化の実現

TIS OSSサポートサービス

対象OSS

インフラ基盤

運用基盤

アプリケーション稼働基盤

※今後サポート対象予定

Page 5: Zabbixとjob scheduler連携による運用システムoss化の実現

TIS OSSサポートサービス

対象OSS

インフラ基盤

運用基盤

アプリケーション稼働基盤

※TISはZabbix社の認定パートナーです。

※今後サポート対象予定

Page 6: Zabbixとjob scheduler連携による運用システムoss化の実現

運用を取り巻く状況の変化

システムの仮想化・クラウド化が加速

管理対象機器の大規模化 管理対象機器の動的な変化

手動運用でカバーできるシステムが減少

“運用自動化”が益々求められる状況で

より安定したシステムを低価格で迅速に提供

Page 7: Zabbixとjob scheduler連携による運用システムoss化の実現

運用システムにOSSを取り入れることのメリット

安定

活用事例等もオープンにされることが多く、安定運用に向けた効果的な利用ノウハウの共有が可能

利用の際のライセンス費を低減(特に運用管理対象機器の数に対して強みが出てくる)

オープンだからこそ開発も活発運用自動化に向けた様々な機能をツール自身に追加実装サードパーティ製としてソリューション提供されるなど活発

低価格

迅速

Page 8: Zabbixとjob scheduler連携による運用システムoss化の実現

ジョブ管理と監視のあり方

ジョブ管理に求められること?

ジョブが滞りなくスケジュール通りに正常実行されること

今後実行されるジョブスケジュールが確実に制御されること

● ジョブ実行が時間通りに実行される● ジョブが正常終了している

● 今後あるジョブを実行する際にサーバリソースが足りるか● 今後あるジョブを実行する際に確実に予定通り完了できるか

“監視”が重要

Page 9: Zabbixとjob scheduler連携による運用システムoss化の実現

着目したのは高機能&拡張性の高さ

統合監視OSS ジョブ管理OSS

Page 10: Zabbixとjob scheduler連携による運用システムoss化の実現

OSS統合監視ソフトウェアZabbixOSS統合監視ツール (GPL ver.2)ラトビアのZabbixSIA社が開発2014/9/5時点の最新安定版2.2.6 (2014/8/27リリース)

監視対象機器- Linux- Windows- NW機器等

監視方法

- Zabbix Agent監視- SNMP監視- IPMI監視- エージェントレス監視等

監視内容- リソース監視- 死活監視 - ICMPPing - プロセス- Web監視- ログ監視- HW監視- SQL監視等

Page 11: Zabbixとjob scheduler連携による運用システムoss化の実現

Zabbixは監視手法が豊富

snmp server

snmp server

SNMP Trap

SNMP

ssh server

ssh server

Zabbix Agent

仮想化HV

Cloud

ODBC

DB

JMXJavaアプリ

仮想環境API

クラウドAPI

SSH接続による内部コマンド実行監視

ZabbixAgentによる内部監視(リソースやログ等)

ODBCによるDB監視

Zabbix Java GatewayによるJava監視

外部チェックスクリプト監視機能による API監視

Zabbix Server

Zabbix Sender

任意の情報をpush型でZabbixに登録

Page 12: Zabbixとjob scheduler連携による運用システムoss化の実現

Zabbixは自動化機能が充実監視設定パターン化 監視設定自動化 運用自動化

テンプレート機能 ZabbixAgent自動登録機能

ローレベルディスカバリ機能

アクション機能

監視設定をサーバの用途毎、種別毎等まとめる機能

Agent起動時に自身の情報をZabbix Serverに自動連携

監視対象サーバ内の情報を収集し、その内容に合わせて自動設定

条件を設定してあらかじめ登録した運用作業処理実行コマンドを自動実行

Zabbix API機能

プログラムからZabbixの設定や監視結果情報取得を実現

Page 13: Zabbixとjob scheduler連携による運用システムoss化の実現

参考情報: ローレベルディスカバリ

ディスカバリルール

/ /data

定期的に探索

Zabbix Server

アイテムプロトタイプアイテム

{ "data":[   {   "{#FSNAME}":"\/",  "{#FSTYPE}":"ext3"},  {  "{#FSNAME}":"\/data",  "{#FSTYPE}":"ext3"},  ・・・省略

}

vfs.fs.size[{#FSNAME},free]

アイテム

vfs.fs.size[/,free]vfs.fs.size[/data,free]

活用例:JobSchedulerに登録されているJob一覧情報に基づいてアイテム自動登録とか

Page 14: Zabbixとjob scheduler連携による運用システムoss化の実現

参考情報: 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}

リクエストパラメータ

Page 15: Zabbixとjob scheduler連携による運用システムoss化の実現

OSSジョブ管理ソフトウェアJobSchedulerOSSジョブ管理ツール (GPL ver.2)ドイツ ベルリンのSOS社が開発2014/9/5時点の最新安定版1.7.4241 (2014/8/29リリース)

対応プラットフォーム- Linux- Windows- Solaris- AIX- HP-UX

ジョブ実行方法

- JS単体でのジョブ実行- JS Agentによる リモートサーバへのジョブ実行- SSH接続による リモートサーバへのジョブ実行

対応可能処理- フロー(JobChain)実行- スケジュール実行- 多重実行・排他制御- 先行・後続制御- 優先度設定- ジョブ実行監視- メール通知等

※ JS = JobScheduler※ JS Agent = JobScheduler Agent

Page 16: Zabbixとjob scheduler連携による運用システムoss化の実現

JobSchedulerの基本構成

JOC

JOE※Jobエディタ

Job JobChain

JobScheduler Agent

JobScheduler Agent

SSH Server

※Job管理WebGUI

Job JobChain

DB

※Job実行履歴、 Jobスケジューリング情報 等

Schedule ProcessClass

Schedule ProcessClass

JobScheduler Engine

Page 17: Zabbixとjob scheduler連携による運用システムoss化の実現

JobSchedulerのJobの考え方

Standalone Job

Job Chain

Schedule

• Standalone Job– 単体で稼動するジョブを定義

• Job Chain– 複数ジョブを順序関係を考慮して

組み合わせるジョブ(order job)を定義

• Schedule– ジョブの稼動予定を定義

• ジョブ定義は様々な記述が可能

– ShellScript, Windows bat,Java,JavaScript,VBScript, javax.script,Perl

● ジョブ関連の全ての定義がXMLファイルで管理● 様々な操作を簡単に行えるようにする機能が提供されている

○ ファイル操作、ファイル転送、DB制御、SQL操作、レポーティング機能 などなど

Order Job

Order Job

JobSchedulerの特徴

Page 18: Zabbixとjob scheduler連携による運用システムoss化の実現

● ジョブの失敗時の通知は単純なメール送信のみ(失敗時の処理をジョブとして定義すれば任意の処理は可能だが)

● JobSchedulerにはユーザ管理機能がない● ジョブの実行結果はテキストとして保存されているのみ

(表示はテキストベースの一覧表示)● 監視機能はないのでジョブ実行時のサーバリソース情報は管理不可

JobScheduler単体だとできないこと

Page 19: Zabbixとjob scheduler連携による運用システムoss化の実現

絶賛開発中!

高機能な監視を実現するZabbix

高機能なジョブ管理を実現するJobScheduler

Page 20: Zabbixとjob scheduler連携による運用システムoss化の実現

概要

● ジョブ実行状況をZabbixにて監視するツール● ZabbixやJobScheduler自体の改変はせずそのまま利用可能● Zabbixの監視機能、JobSchedulerのジョブ実行機能を活用● JobScheduler利用時に不足する監視機能をZabbixで補う● OSSとして公開予定

(鋭意開発中につき公開までしばしお待ちを)

HyClops JobMonitoring

Page 21: Zabbixとjob scheduler連携による運用システムoss化の実現

3つのメリット

HyClops JobMonitoring

その1. ジョブの失敗や遅延情報をZabbixでキャッチアップ

通知をZabbixのアクション設定に基づいて実行できるため、より柔軟な対応が可能に

TimeLimit!

Zabbix

Page 22: Zabbixとjob scheduler連携による運用システムoss化の実現

3つのメリット

HyClops JobMonitoring

その2. ジョブ実行時の状態の推移をZabbixで管理

ZabbixのDBにて推移状況を管理できるのでジョブ実行の分析が可能に各ジョブの実行時のサーバリソースの状況と紐付けての管理も可能に

1年前

Finish!

1時間

現在

Finish!

3時間

Page 23: Zabbixとjob scheduler連携による運用システムoss化の実現

3つのメリット

HyClops JobMonitoring

その3. ジョブ実行時の高負荷に備えた監視設定変更

Jobの実行によりあらかじめ想定される負荷への対応が可能

平常時のCPU負荷 Job実行時のCPU負荷

閾値 閾値

Page 24: Zabbixとjob scheduler連携による運用システムoss化の実現

HyClopsJMの機能詳細

ジョブ失敗状況の検知

JobScheduler EngineHyClops JMZabbix

実行

Error終了

mail送信Zabbix連携処理

メールをフック

※JobScheduler Agent毎に管理

Zabbix Sender

Zabbixアクション設定

Zabbixトリガー設定

より柔軟な通知

Job稼働ステータス監視アイテムJob稼働ステータス監視アイテム

Page 25: Zabbixとjob scheduler連携による運用システムoss化の実現

HyClopsJMの機能詳細

ジョブ失敗通知設定例

時間軸

JobChain1失敗

JobChain1失敗

JobChain1失敗

JobChain1失敗

Skip! Skip!

Page 26: Zabbixとjob scheduler連携による運用システムoss化の実現

Job定義

HyClopsJMの機能詳細

ジョブ稼働時間の監視

Zabbix

server-01

server-02

ホスト

アイテム

JobA稼働時間

Job1稼働時間

Job3稼働時間

JobScheduler Engine

server-01JobScheduler Agent

server-02JobScheduler Agent

HyClops JM

定義情報をもとに設定自動連携

実行ログを解析し稼働時間自動登録

自動登録

Job2稼働時間

Job4稼働時間

JobAJobChain1

Job1Job2

JobChain2Job3Job4

ローレベルディスカバリ

Zabbix Sender

Page 27: Zabbixとjob scheduler連携による運用システムoss化の実現

HyClopsJMの機能詳細

稼働時間推移グラフ例

Page 28: Zabbixとjob scheduler連携による運用システムoss化の実現

HyClopsJMの機能詳細

トリガー閾値の自動変更

Zabbix

閾値変更Job

復帰Job

メインJob

閾値変更Jobテンプレート

復帰Jobテンプレート

Jobテンプレート

既存トリガー

無効化

Job実行中のみ有効なトリガー

新規作成

例: CPU使用率>70%なら障害

例: CPU使用率>90%なら障害

Zabbix API

Page 29: Zabbixとjob scheduler連携による運用システムoss化の実現

HyClopsJMの機能詳細

トリガー閾値の自動変更

Zabbix

閾値変更Job

復帰Job

メインJob

閾値変更Jobテンプレート

復帰Jobテンプレート

Jobテンプレート

既存トリガー有効化

Job実行中のみ有効なトリガー

削除

例: CPU使用率>70%なら障害

例: CPU使用率>90%なら障害

Zabbix API

Page 30: Zabbixとjob scheduler連携による運用システムoss化の実現

HyClopsJMの機能詳細

閾値変更例

CPUのロードアベレージのトリガー閾値を変更したい場合

閾値変更Job 復帰Job

パラメータに以下を指定

trigger_name Processor load is too high on {HOST.NAME}

trigger_cond {localhost:system.cpu.load[percpu,avg1].avg(5m)}>10

パラメータの指定なし

閾値変更Jobで変更されたものを全て元に戻す

Page 31: Zabbixとjob scheduler連携による運用システムoss化の実現

HyClopsJMのデモ

1. ジョブ追加に伴い自動的にZabbixに監視アイテム登録

2. トリガー変更ジョブ組み込みによる動的な閾値変更

デモ環境構成AWS EC2インスタンスにZabbix ServerとJobScheduler Engineを導入

EC2

JobScheduler Engine

Zabbix Server

JobChain

ホスト名: js-server

JobChain

Job Job追加

アイテム自動登録

Page 32: Zabbixとjob scheduler連携による運用システムoss化の実現

HyClopsJMのデモ

1. ジョブ追加に伴い自動的にZabbixに監視アイテム登録

2. トリガー変更ジョブ組み込みによる動的な閾値変更

デモ環境構成AWS EC2インスタンスにZabbix ServerとJobScheduler Engineを導入

EC2

JobScheduler Engine

Zabbix Server

JobChain

ホスト名: js-server

JobChain

Job Job

トリガー変更ジョブ組み込みJobChain Run!トリガー変更

Page 33: Zabbixとjob scheduler連携による運用システムoss化の実現

まとめ

● ZabbixやJobSchedulerは非常に高機能なOSS● HyClops JobMonitoringは

○ 各ツールの機能を活用しつつ不足する部分を補うことで相乗効果を創出

○ 以下の機能を実現■ ジョブ実行時間の監視■ ジョブ失敗の検知■ ジョブ実行時の負荷状況に応じた動的な監視設定

● 今後の予定○ OSS化を実現○ 追加機能開発を行い更なる有効な連携を実現

試してみたいという方はご連絡を!!展示ブースにてデモもお見せできます!

Page 34: Zabbixとjob scheduler連携による運用システムoss化の実現

お問い合わせはこちらまで

[email protected]

TIS株式会社OSSサポートサービス担当窓口

ご清聴ありがとうございました。