初めての運用管理者が知っておきたい監視・ジョブ管理向けOSS構成例4つの比較まとめ:Zabbix+JobSchedulerで効果的な運用監視とジョブ管理(2/2 ページ)
システム運用の上で重要な「監視」と「ジョブ管理」について、効率的な実現方法を解説。
ZabbixとJobSchedulerを連携するOSS「HyClops JobMonitoring」
ここからは、ZabbixとJobSchedulerを連携するOSSのツールである「HyClops JobMonitoring」について紹介します。HyClops JobMonitoringはOSSとして以下で公開されています。
HyClops JobMonitoringは監視とジョブ管理の統合管理のシーンにおいて、よくある運用パターンを想定し、以下のようなシーンを容易に管理できるよう開発されています。
- ジョブが実行途中でエラーになる
- ジョブが予定時刻に終わらない
- ジョブの実行時間が運用を経るごとに長時間化
- ジョブ実行中にサーバーの負荷が高まる
HyClops JobMonitoringの機能概要
HyClops JobMonitoringはこのようなシーンを管理できるようにするために以下の機能を実装しています。
- ジョブの実行状況監視機能
- ジョブの処理実行時間監視機能
- ジョブの実行に合わせた動的な監視閾値変更機能
ジョブの実行状況監視機能
JobSchedulerが管理しているジョブで以下のような事象が発生した場合、Zabbix側に自動通知する機能も実現しています。
- ジョブの実行開始失敗
- ジョブの実行中の異常終了
- ジョブの終了遅延(終了予定時刻までにジョブが完了しなかった)
Zabbixのアクション機能と連携して、Zabbix側でジョブの異常な状態を検知できるようにすることで、より柔軟に運用フローを回すことが可能となります。
ジョブの処理実行時間監視機能
Zabbixと連携して、各ジョブの実行開始から終了するまでにかかった時間を、Zabbixの監視データとして自動的に管理することが可能です。
ジョブが追加・削除された際も自動的にZabbix側に連携されるため、監視設定を都度変更する必要なくジョブの処理実行時間の自動監視が可能となります。
ジョブの実行に合わせた動的な監視閾値変更機能
ジョブを実行する際、当然サーバー内で何らかの処理が走ることになるのでサーバーのリソース(CPUやメモリ使用量、ディスクIO、ネットワークIOなど)負荷が高まるケースが多いです。Zabbixでリソース監視を行っている場合、リソースの使用状況の監視結果に対して特定の条件式を設定して異常な状態であるかどうかを定義することができます(例えば、「CPU使用率が5分間継続して80%以上であったら」など)。
この時、ジョブ実行による高負荷状態を想定し、最も負荷が掛かった時点をベースに閾値を設定してしまうケースもあるかと思います。しかし、このような設計にしてしまうと、ジョブ実行処理時以外の時にいつもと違う状態になり、本来気付きたい状態の変化を見落としてしまうことになりかねません。
そこでHyClops JobMonitoringでは、あらかじめ負荷が高まることが分かっているジョブの実行タイミングに合わせて、そのジョブ実行時のみ、Zabbixによる異常検知の条件式の内容を動的に変更することができます。これにより、ジョブ実行時の高負荷は正常とみなし、想定しない異常な状態を確実に検知することができるよう配慮されています。
HyClops JobMonitoringのアーキテクチャ
図3の通り、Zabbix APIやJobScheduler APIを使って連携を実現しています。ジョブの実行状況の監視機能については、JobSchedulerの標準機能である「メールでの通知機能」を活用し、実現しています。HyClops JobMonitoringをインストールすることで、連携処理を実現する監視アイテムやジョブ定義が組み込まれます。後は、この設定に従ってZabbixの監視処理やJobSchedulerのジョブ実行処理の枠組みに則り、連携処理が実現されます。
このアーキテクチャの図からも分かる通り、ZabbixやJobScheduler自体の改修は行っていないため、ZabbixやJobSchedulerの標準で搭載している機能は損なわずそのまま活用可能です。そのため、既存のZabbixユーザーの方やJobSchedulerユーザーの方にも後から追加で導入いただくことが可能な仕様となっています。
また、それぞれZabbix、JobSchedulerのWeb APIベースで連携をしているため、ZabbixやJobSchedulerを1つのサーバー内に動かすという必要もなく、別サーバー上で稼働させた上でネットワーク経由でAPIにアクセスして連携させることが可能です。
後編ではHyClops JobMonitoringの導入方法や機能の詳細、実際の運用
前編として、OSSを活用した監視やジョブ管理について整理し、ZabbixとJobSchedulerの組み合わせによる効果の概要を紹介しました。
ZabbixやJobSchedulerはベースのアーキテクチャが優れており、監視やジョブ管理の実行エンジンとして有効に活用できるツールです。さまざまなツールを用いた統合管理の実現方法が考えられますが、それぞれのメリット・デメリットを把握した上でシステムの要件にマッチする構成を選択する必要があります。その一つとして本記事の掲載内容を参考情報としてもらえればと思います。
後編ではHyClops JobMonitoringの導入方法や機能の詳細を解説するとともに、実際の運用シーンでの活用の仕方をご紹介します
筆者紹介
池田大輔
Twitter : @ike_dai
TIS株式会社IT基盤技術本部 OSS推進室所属。社内向けシステムの保守運用業務を経験後、クラウド時代の効率的な統合運用管理をテーマに活動中。特に、OSSを駆使した運用のエコシステム実現を目指し、fluentdなどの導入や検証に取り組む。TIS戦略技術センターでは、技術検証成果などを技術ブログ『Tech-Sketch』にて発信中。著書:『Zabbix統合監視徹底活用 - 複雑化・大規模化するインフラの一元管理』(技術評論社刊)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 徹底比較! 運用監視を自動化するオープンソースソフトウェア10製品の特徴、メリット・デメリットをひとまとめ
運用自動化のポイントを深掘りする本特集。今回は「個々の作業項目の自動化」に焦点を当て、「Zabbix」「JobScheduler」「Sensu」など、運用・監視系の主要OSS、10種類の特徴、使い方などを徹底解説する。 - DevOps時代の開発者のためのOSSクラウド運用管理ツール5選まとめ
DevOpsという観点で、クラウドに使えるオープンソースの運用管理ツールとして、Zabbix、Hinemos、Hyperic HQ、Scalr、Aeolusの特徴をまとめて紹介します。 - クラウド&DevOps時代に求められる運用とは〜Zabbixが有効な理由
ますますクラウド化が進む中、システムにはより迅速な対応が求められるようになっています。要件の変化が早いシステムを適切に運用していくためにはどうすればいいのでしょうか? この記事では、クラウドやDevOpsを前提としたITシステムの「運用」に求められることを整理し、そういった運用に対して、オープンソースの統合監視ツール「Zabbix」がどのように有効活用できるかを紹介します。 - HubotとZabbixを連携すればワンオペ監視でも寂しくない
GitHub社が開発しているbotフレームワークHubotを使ってチャットアプリ上でチーム開発をいかに効率化していくかを解説していきます。今回は、Zabbixをインストールして監視設定を行い、Hubotと連携してサーバーからの障害検知をチャットに通知する方法などを紹介します。 - 「コミュニティ活動がすべてを変えた」――ラトビア企業で働く唯一の日本人エンジニア
- ―分かっているようでホントは知らない―ネットワーク健全化計画を立てよう