オープンソースのネットワーク監視ソリューション「Zabbix」に関する情報共有を目的として開催された「Zabbix Conference Japan 2015」。前回の記事では、創設者でありCEOを務めるAlexei Vladishev氏や、日本支社の代表、寺島 広大氏ら、Zabbixサイドが行った発表を中心に構成したが、本稿ではZabbixのパートナー企業によるセッションをピックアップして紹介する。
PostgreSQLのクラスタ構成に対応した監視テンプレpg_monz
Linux、PostgreSQLといったOSSのサポートや、システム開発のコンサルティングを行っているSRA OSS, Inc. 日本支社からは盛 宣陽氏が登壇し、Zabbix用PostgreSQL監視テンプレート pg_monz(ピージーモンズ)を紹介した。pg_monzは同社と、Zabbixパートナー企業であるTISが共同開発したもので、これを導入することによりZabbixでPostgreSQLサーバーの死活監視、ログ監視、DBサイズの監視、トランザクション処理状況の監視、滞留クエリ処理の監視などを実現することができる。
2013年にリリースされたver.1.0ではシングル構成のみへの対応だったが、今年発表されたver.2.0では、Streaming Replication(ストリーミング・レプリケーション。PostgreSQL標準の同期機能)やpgpool-II(サードパーティーのクラスタソフトウェア)などを利用したクラスタ構成に対応できるテンプレートも用意されている。
Streaming Replication 監視機能としては、
●プライマリとスタンバイ、どちらが動いているのかを監視。プライマリに障害が発生し、2号機が昇格した場合には、アラートが発報される。
●同期状況監視
●Write query block監視:同期レプリケーションでスタンバイが1台もない場合に、Primaryサーバーで書き込みクエリが止まってしまうという現象の監視
●split-brain監視:クラスタ内でプライマリサーバーの重複を監視
…などがある。
pgpool-II 監視機能としては、死活監視やクライアント利用状況の監視の他に、次のようなものがある。
●コネクションプール利用状況監視
●クエリキャッシュ状況監視:キャッシュヒット率を維持するためにどのくらいのメモリが余っているかを監視
●バックエンド監視:pgpool-IIがPostgreSQLを切断してしまった場合に検出・通知する
●pgpool-II watchdog機能の監視
※pg_monzは以下URLにて入手可能だ。
IoTを加速させる国産マイクロサーバーとZabbix
コンピュータ関連製商品やサービスを幅広く提供する、ぷらっとホームの後藤 敏也氏からは、ZabbixのIoT活用に関する提案があった。セッションでは同社のマイクロサーバー、OpenBlocks IoT BX1を利用した室温監視のデモも行われた。OpenBlocks IoTシリーズには、IoTセンサーソフトウェアが標準装備されているため、各種センサーを接続し、簡単な設定を施すだけで、センサーで取得したデータを集約することができる。つまりネットワークやシステムの監視以外にも、Zabbixは活用できるということだ。
今回のデモは、OpenBlocks IoT BX1に温度センサーを接続、センサーからのデータを、メッセージブローカーが実装されたAWS IoTを経由させてZabbixに送り、グラフとして可視化するという試みだ。メッセージブローカーの設定からZabbixでのグラフ化まで、作業としては20分もかからないという。
OpenBlocks IoTシリーズは、極小サイズのボディの中にIntel Atomのデュアルコア、3G(W-CDMA)通信機能、Wi-FiやBluetoothなどの無線通信機能を内蔵している。今回デモで使用されたBX1の他に、Ethernet、RS-232C・RS-485、USBホストなどの有線インターフェースを完備したEX1もラインナップされている。標準対応しているセンサー、ビーコンは幅広い。 OpenBlocks IoTシリーズとZabbixを組み合わせれば、例えばボイラー室の温湿度管理や、人物の在室管理などが簡単に行えるようになる。さらに、産業分野での監視・制御に幅広く役立てられるようになるだろう。
高度で柔軟なジョブ管理で、システム運用を効率化
国内大手のシステムインテグレーター、TISの池田 大輔氏は、システム運用の自動化・効率化のために、Zabbixをジョブ管理ツールと連携させて使う方法を提案した。ジョブ管理ツールとしては、同社が現在注目しているJobScheduler(ジョブスケジューラー)を、そしてZabbixをJobSchedulerと連携させるためのツールとしては、同社が開発しているHyClops JobMonitoring(ハイクロップ・ジョブモニタリング)を紹介した。
システム運用の中で障害が発生した場合、監視ツールから警告を受けた運用担当者が、状況確認から原因究明、対処・復旧までを人力で行うのが普通だろう。池田氏はZabbixのトリガー条件式が柔軟性に富んでいることを利用すれば、その作業を効率化ができると言う。例えばZabbixが「ジョブが失敗した」「CPUリソースの負荷が高くなった」という2つの条件を取得した時に限り、ジョブ管理ツールに「サーバーのスケールアウトする(台数を増やす)」という処理を自動実行させるようにしておけば、担当者がスケールアウトに手間と時間を割く必要はなくなる。条件式を細かく設定しておけば、トラブルの原因究明にも役立つだろう。
Zabbixのタイムシフト機能を使って、過去の監視データを元に評価することもできる。過去と直近、双方のジョブの実行時間を比較し、処理に時間がかかるようになってきていれば、自動で実行時間の見直し処理をするなど対策も行える。
またJobSchedulerでジョブのフローを定義する際、直近のサーバー負荷情報をZabbixから取ってくるスケジュールを組み込んでおくことで、ジョブをそのまま実行していいのか、変更すべきなのかをJobSchedulerが自動判定し、変更すべき場合は別スケジュールに切り替えるという、柔軟な対応も可能となっている。
「ZabbixもJobScheduleも、高機能で柔軟性があります。それらを組み合わせることで運用改善の効果は大きくなると思っています」(池田氏)
こうした連携をスムースに行わせるためにTISが開発しているHyClops JobMonitoringには、ジョブの失敗状況や実行処理時間情報に基づいた連携処理を実現する機能の他に、Zabbixのトリガー条件式を自動変更する機能も備わっている。例えば、予めCPUに高い負荷がかかるジョブが実行される時刻が分かっている場合、Zabbixのトリガー条件式にある閾値を、自動で一時的に上げる機能だ。これにより不要なアラートや誤動作を防ぐことができる。 池田氏は、Zabbix 3.0で新たに追加される予測機能を使って、今後、JobSchedulが自動でジョブ実行計画を見直す仕組みづくりにも取り組んでいきたいと語った。
サーバー監視、IoT、システム運用の自動化と、切り口の違う活用事例を紹介したが、Zabbixは全世界で、様々な用途に利用されている。充実した機能、サポートはもちろん、拡張性やカスタマイズの自由度が高いZabbixの活躍の場は、今後ますます幅広い分野へと拡がっていくだろう。
(マイナビニュース広告企画:提供 Zabbix Japan)
photograph = Kei Ito
[PR]提供:ザビックス