採用情報 お問い合わせ

BLOG

KVM(仮想化基盤)を Zabbix server で監視

はじめに

Kernel-based Virtual Machine( カーネルベース仮想マシン:以下、KVM)は OSS である Linux カーネルに含まれる、サーバー仮想化を実現するためのソフトウェアモジュールです。KVM の監視に Zabbix を組み合わせることで、仮想マシンの状況や障害、パフォーマンスをリアルタイムで監視し、早期の障害検知や自動化が可能になります。今回は Zabbix や MIRACLE ZBX で行う KVM の監視について、監視設定例を紹介します。

本記事内での表記・用語について

表記・用語 解説
Zabbix Zabbix LLC 社が提供しているオープンソースの統合監視ソフトウェアを指します。
Zabbix として実装されている機能全般を指す場合にも本表記をします。
MIRACLE ZBX サイバートラスト株式会社が提供している Zabbix をベースとした監視ソフトウェアを指します。
Zabbix Server Zabbix / MIRACLE ZBX のサーバー機能がインストールされ稼働しているサーバーおよびその機能を指します。
Zabbix Proxy Zabbix / MIRACLE ZBX のプロキシ機能がインストールされ稼働しているサーバーおよびその機能を指します。
Zabbix Agent / Zabbix Agent 2 Zabbix / MIRACLE ZBX のエージェント機能がインストールされ稼働しているサーバーおよびその機能を指します。
特に指定がない場合は、Zabbix Agent 2 を含め「Zabbix Agent」と表記します。

なぜ仮想化基盤・仮想マシンの監視が必要なのか

仮想化基盤は、仮想マシンを稼働させるための基盤です。

障害が発生すると、仮想化基盤上で動作している複数の仮想マシンやサービスに影響が及び、広範囲なシステム障害につながる可能性があります。
それを常に監視し、障害を早期に検知することで仮想マシンやサービスへの影響を最小限に抑えられます。

図 1 仮想化基盤構成例

図 1 は KVM 環境を構築した際の簡単な図です。おおよそ多くの環境で図のような構成になります。

仮想化基盤、仮想マシンの監視について

仮想マシンは、仮想化基盤のリソースを仮想的に分割し、提供されているため、ホスト OS 上は異常が検知されずとも、ゲスト OS 上ではメモリリーク(コンピュータを動作させている内に、使用可能なメモリの容量が減っていってしまう現象のこと)やディスク不足などが発生するケースがあります。仮想化基盤であるホスト OS の監視だけでは不十分だと考えます。
仮想マシンが正常に起動しているか、停止やクラッシュしていないかを監視することはもちろん、リソースを監視することでより早く障害検知を行うことができ、安定した運用ができます。
また、障害発生時に仮想化基盤全体か、特定の仮想マシンか障害原因を切り分けるためにも仮想マシン単位での監視が有用となります。

MIRACLE ZBX / Zabbix での監視

監視構成としては Zabbix server を KVM 環境と同一セグメントに構築する方法と Zabbix proxy を構築し、 Zabbix server を別セグメントに構築する方法が挙げられます。
Zabbix proxy を構築する際は Zabbix Proxy の活用方法を解説したこちらも合わせて読んでください。

どちらの構成が良いかは特にありません。運用ポリシーに従って構築してください。
ただし、 KVM がインストールされた OS 上に Zabbix server や Zabbix proxy を構築することは推奨できません。

Zabbix server がメモリや CPU を使用し仮想化基盤や仮想マシン側で十分なパフォーマンスが出ない場合があるためです。

図 2 KVM 環境と同一セグメントで監視する場合

図 3 KVM と別セグメントで監視する場合

また、MIRACLE ZBX / Zabbix に KVM 監視する専用のテンプレートは存在しません。

LinuxOS 上に構築しているため "Linux by Zabbix agent" を適用することが現状は良いと考えます。
テンプレートの適用方法はこちら

このテンプレートは Linux サーバーの CPU やディスク、メモリの使用量の他、ネットワークトラフィックやプロセスの監視が行えます。
また、トリガーやグラフ等も準備されており必要十分な設定がされていると考えます。

図 4 Linux by Zabbix agent テンプレート標準のグラフ画面例

ゲスト OS も同様に "Linux by Zabbix agent" や "Windows by Zabbix agent" で良いと思います。

また、作成したすべてのゲスト OS を手作業でホスト追加する必要はありません。
ディスカバリアクションによるホストの自動登録を行うことで簡単に監視ができます。

図 5 ディスカバリアクションの設定例

表 1 ディスカバリアクションの設定詳細

実行条件 ホストの IP アドレス 等しい
192.168.1.0-255
実行内容 ホストを追加  
ホストグループに追加 Virtual machines
テンプレートをリンク Linux by Zabbix agent

上記では Zabbix agent による監視を想定していますが、Zabbix agent を使用しないエージェントレス監視もできます。
エージェント監視、エージェントレス監視についてはこちら

おわりに

今回は Zabbix server で仮想化基盤を監視する構築例を紹介しました。
現状 KVM に特化したテンプレートがなく汎用的なテンプレートでの監視となっています。
この他にも、KVM 上の仮想マシンの制御を行うコマンドである virsh と Zabbix agent のユーザパラメータを組み合わせてより自由度の高い監視も行えます。構築に困った際はお気軽にお問い合わせフォームからご連絡ください。

本記事に関連するリンク
CentOS 7 延長サポートサービス
デジタルトランスフォーメーションのための電子認証基盤 iTrust
iTrust SSL/TLS サーバー証明書