Zabbix 7.4でのLinuxサーバの監視項目設定について (2/2)
パフォーマンス監視項目の設定例
前回のブログでは正常性監視項目について説明しましたが、今回はパフォーマンス監視項目について説明したいと思います。
前回のブログは「Zabbix 7.4でのLinuxサーバの監視項目設定について (1/2)」を参照ください。
ここではエージェントとして管理対象の社内システムのLinuxサーバを例にしています。
※本例では監視項目の設定はホスト個別ではなくテンプレートから作成しています。作成したテンプレートは各ホストに割り当てることが可能です。
それでは実際に各パフォーマンス監視項目の設定例を見ていきたいと思います。
CPU監視
CPUの使用率を定期的にチェックすることで、CPUのパフォーマンス負荷状況を確認します。
CPU監視では、Zabbixで「アイテム」、「トリガー」、「グラフ」を設定します。
アイテム
まずは以下のようにアイテムを作成します。

「キー」として「system.cpu.util[<cpu>,<type>,<mode>,<logical or physical>]」を使用しています。
図の例では「type」に「idle」、「mode」にデフォルトの「avg1」を指定しているため、1分間平均の待機状態の割合を取得します。
※詳細は<system.cpu.util>をご参照ください。
トリガー
次に以下のようにトリガーを作成します。

system.cpu.utilは戻り値が浮動小数点で返ってきます。
図の例では「条件式」で直近5回分の平均値が10以下であれば警告と判定し、「正常イベントの生成」を「復旧条件式」にして直近5回分の平均値が20を超えたら復旧と判定するようにしています。
グラフ
次に以下のようにグラフを作成します。

図の例では「アイテム」の例で作成した1分間平均の待機状態の割合をグラフにしています。
CPU使用率は0~100%ですのでY軸の最小値、最大値を0と100に固定しています。
実際に「監視データ」から本テンプレートを割り当てた該当のホストのグラフを確認すると、以下のようなグラフになっています。

図の例では1分間平均の待機状態の割合が100%に近い状態ですので、全く負荷が掛かっていないことが伺えます。
メモリ監視
メモリの使用率を定期的にチェックすることで、メモリのパフォーマンス負荷状況を確認します。
メモリ監視では、Zabbixで「アイテム」、「トリガー」、「グラフ」を設定します。
アイテム
まずは以下のようにアイテムを作成します。

「キー」として「vm.memory.size[<mode>]」を使用しています。
図の例では「mode」に「pavailable」を指定しているため、メモリの利用可能な割合を取得します。
「mode」として「available」では「free」の未割当の空き容量だけでなく、「buffers」、「cached」の解放可能な領域も含めた利用可能な量を取得するため、実質的なメモリの空き容量を見る際は「available」を確認すると良いです。「pavailable」はその「available」の割合を取得します。
※詳細は<vm.memory.size>をご参照ください。
他にも「キー」として「system.swap.size[<device>,<type>]」を使用するとスワップのサイズを取得できます。
※詳細は<system.swap.size>をご参照ください。
トリガー
次に以下のようにトリガーを作成します。

vm.memory.sizeは戻り値がバイトの場合は整数、割合の場合は浮動小数点で返ってきます。
図の例では「条件式」で最新の値が10以下であれば警告と判定し、「正常イベントの生成」を「復旧条件式」にして最新の値が10を超えたら復旧と判定するようにしています。
メモリの場合、トリガーは「vm.memory.size[pavailable]」のキーのアイテムを指定することを推奨します。
グラフ
次に以下のようにグラフを作成します。

図の例では「アイテム」の例で作成したメモリの利用可能な割合をグラフにしています。
メモリの利用可能な割合は0~100%ですのでY軸の最小値、最大値を0と100に固定しています。
実際に「監視データ」から本テンプレートを割り当てた該当のホストのグラフを確認すると、以下のようなグラフになっています。

図の例ではメモリの利用可能な割合が70%ほどで安定していますので、まだ十分に利用可能であることが伺えます。
他にも割合だけでなく容量で以下のようにグラフを作成することも可能です。

図の例では「vm.memory.size[total]」および「vm.memory.size[available]」のキーで作成したアイテムを使用してグラフにしています。
メモリの容量はサーバ毎に異なりますので、Y軸の最小値は0に固定、最大値は計算にしています。
実際に「監視データ」から本テンプレートを割り当てた該当のホストのグラフを確認すると、以下のようなグラフになっています。

図の例ではこのサーバのメモリのサイズ (カーネルの予約領域等は除く) は3.56 GBであり、メモリの利用可能量が2.5 GBほどで安定しているので、まだ十分に利用可能であることが伺えます。
ディスク監視
ディスク容量を定期的にチェックすることで、ディスク容量の枯渇状況を確認します。
ディスク監視では、Zabbixで「アイテム」、「トリガー」、「グラフ」を設定します。
アイテム
まずは以下のようにアイテムを作成します。

「キー」として「vfs.fs.size[fs,<mode>]」を使用しています。
図の例では「fs」に「/」、「mode」に「free」を指定しているため、「/」ディレクトリの空き容量を取得します。
※詳細は<vfs.fs.size>をご参照ください。
他にも「キー」として「vfs.fs.inode[fs,<mode>]」を使用するとinodeの数を取得できます。
※詳細は<vfs.fs.inode>をご参照ください。
トリガー
次に以下のようにトリガーを作成します。

vfs.fs.sizeおよびvfs.fs.inodeは戻り値が容量、数の場合は整数、割合の場合は浮動小数点で返ってきます。
図の例では「条件式」で「/」ディレクトリの空き容量の最新の値が5 GB以下かつ5%以下、もしくはinodeの数が1万以下かつ10%以下であれば警告と判定しするようにしています。また「正常イベントの生成」を「条件式」にして条件式を満たさなくなれば復旧と判定するようにしています。
ディスク監視の場合、トリガーはサイズだけでなくinodeも枯渇していないかも確認します。さらに、ディスク容量が大きいサーバでは割合のみをトリガーにするとまだ十分な容量がある可能性があるため、容量も閾値を指定することを推奨します。
グラフ
次に以下のようにグラフを作成します。

図の例では「vfs.fs.size[/,total]」および「vfs.fs.size[/,free]」のキーで作成したアイテムを使用してグラフにしています。
ディスクの容量はサーバ毎に異なりますので、Y軸の最小値は0に固定、最大値は計算にしています。
実際に「監視データ」から本テンプレートを割り当てた該当のホストのグラフを確認すると、以下のようなグラフになっています。

図の例ではこのサーバの「/」ディレクトリのサイズは34.15 GBであり、空き容量が22.9 GBですので、まだ十分に空いていることが伺えます。
他にもグラフのタイプを円グラフにして以下のようにグラフを作成することも可能です。


図の例では「vfs.fs.size[/,total]」、「vfs.fs.size[/,free]」、「vfs.fs.size[/,used]」のキーで作成したアイテムを使用した「/」ディレクトリの容量の円グラフ、「vfs.fs.inode[/,total]」、「vfs.fs.inode[/,free]」、「vfs.fs.inode[/,used]」のキーで作成したアイテムを使用した「/」ディレクトリのinodeの数の円グラフを作成しています。
totalのキーのアイテムのタイプを「グラフの合計値」にすることで、totalに対するfreeとusedの割合を表示することができます。
実際に「監視データ」から本テンプレートを割り当てた該当のホストのグラフを確認すると、以下のようなグラフになっています。

最後に
今回はパフォーマンス監視項目の設定についていくつかの例を紹介させていただきました。
他にも社内システムサーバについては「ダッシュボード」を利用して各サーバの障害数、障害内容を表示したり、データの比較グラフを表示したりして監視しております。
Zabbixは障害検知で主に利用することが多いかと思いますが、グラフ等で可視化することで大分分析しやすくなるかと思いますので、ぜひグラフ化等も試してみてください。
お問い合わせ
弊社では様々なサービスを取り扱っております。
詳細はサービス一覧からご覧ください。
お気軽にお問い合わせください。応対時間 9:30-17:30 [ 土・日・祝日除く ]
お問い合わせ
