Zabbixでメモリ使用率を監視する

スポンサーリンク

目的

Zabbixを使用してメモリ使用率を監視します。

ネットワーク構成

環境

Zabbixサーバの環境です。

OSWebサーバデータベースPHPZabbix ServerZabbix Agent
CnetOS 7.8Apache 2.4.6MySQL 8.0.217.2.324.0.234.0.23

クライアントの環境です。

OSZabbix Agent
CnetOS 7.44.0.23
Windows Server 20194.0.23

監視設定

アイテムの設定

項目CentOS側の設定値Windows側の設定値
名前メモリ使用率メモリ使用率
タイプ計算Zabbixエージェント
キーvm.memory.size[MemoryUsage]vm.memory.size[pused]
(last("vm.memory.size[total]")-last("vm.memory.size[cached]")-last("vm.memory.size[buffers]")-last("vm.memory.size[free]"))/last("vm.memory.size[total]")*100
データ型数値(浮動小数)数値(浮動小数)
単位%%
監視間隔1m1m
アプリケーションの作成MemoryMemory

計算アイテムの式から参照されているすべてのアイテムは存在していなければならず、データを収集していなければなりません。今回の場合は以下の4つのアイテムです。
・vm.memory.size[total]
・vm.memory.size[cached]
・vm.memory.size[buffers]
・vm.memory.size[free]
この条件を満たしていなければメモリ使用率の計算はエラーとなります。

トリガーの設定

項目CentOS側の設定値Windows側の設定値備考
名前{HOST.NAME} メモリ使用率の閾値超え{HOST.NAME} メモリ使用率の閾値超え
深刻度警告警告
条件式{CentOS7-ZA4-1:vm.memory.size[MemoryUsage].min(#5)}>80

※メモリ使用率が5回連続で80パーセントを超えたという意味です。
{Windows2019-1:vm.memory.size[pused].min(#5)}>80

※メモリ使用率が5回連続で80パーセントを超えたという意味です。
min関数以外にもcount関数を使うことも可能です。

{….count(#5,80,gt)}=5
手動クローズを許可チェックをつけるチェックをつける

アクションの設定

項目設定値
デフォルトのアクション実行ステップの間隔1h
デフォルトの件名【ZBX】{TRIGGER.NAME}
デフォルトのメッセージOriginal event ID: {EVENT.ID}
障害発生時刻:{DATE} {TIME}
ホスト名:{HOST.HOST}
IPアドレス:{HOST.IP}
設置場所:{INVENTORY.LOCATION}
深刻度:{TRIGGER.SEVERITY}
障害内容:{TRIGGER.NAME}
最新値:{ITEM.LASTVALUE}
メンテナンス中の場合に実行を保留チェックをつける
実行内容アラートメールの宛先を設定

動作確認

最新データの状態です。正常時は以下の通りです。

ホスト名前最新のチェック時刻最新の値
CentOS7-ZA4-1メモリ使用率2023/02/25 22:51:3729.5934 %
Windows2019-1メモリ使用率2023/02/25 22:53:4430.1171 %

対象機器に負荷をかけます。
CentOSはstressコマンドを使用、WindowsはCpuStresツールを使用して下さい。

ホスト名前最新のチェック時刻最新の値
CentOS7-ZA4-1メモリ使用率2023/02/25 23:10:0787.2069 %
Windows2019-1メモリ使用率2023/02/25 23:59:1487.3176 %

アラートメールが届いていることを確認します。

件名本文備考
【ZBX】CentOS7-ZA4-1 メモリ使用率の閾値超えOriginal event ID: 470
障害発生時刻:2023.02.25 23:09:07
ホスト名:CentOS7-ZA4-1
IPアドレス:192.168.xxx.xxx
設置場所:UNKNOWN
深刻度:Warning
障害内容:CentOS7-ZA4-1 メモリ使用率の閾値超え
最新値:87.21 %
閾値の80%を超えたのが23:05でした。障害発生時刻が23:09なのでトリガーの5回連続閾値超えが正常に機能しています。
【ZBX】Windows2019-1 メモリ使用率の閾値超えOriginal event ID: 472
障害発生時刻:2023.02.25 23:58:16
ホスト名:Windows2019-1
IPアドレス:192.168.188.165
設置場所:UNKNOWN
深刻度:Warning
障害内容:Windows2019-1 メモリ使用率の閾値超え
最新値:88.08 %
閾値の80%を超えたのが23:54でした。障害発生時刻が23:58なのでトリガーの5回連続閾値超えが正常に機能しています。

まとめ

メモリの監視は非常に奥が深いです。
Zabbixのオンラインマニュアルに書かれているようにOSによって定義の仕方が異なります。

Zabbixではメモリのアイテムは以下のように定義されています。

またメモリの各種アイテムは取得方法によっても差異があります。

例えば、CentOS7で「freeコマンド」のメモリ使用量とZabbixで取得したメモリ使用量(vm.memory.size[free])の値は一致しません。

そのため、メモリ使用率を取得する場合はOSのコマンド結果やZabbixで取得した値を見て単一のキーで取得できるのか、もしくは計算によって算出するのかを確認する必要があります。

定義の仕方が異なるので多少の差異があることを考慮して設定することが重要です。

タイトルとURLをコピーしました