目的
Zabbixを使用してメモリ使用率を監視します。
ネットワーク構成
環境
Zabbixサーバの環境です。
OS | Webサーバ | データベース | PHP | Zabbix Server | Zabbix Agent |
---|---|---|---|---|---|
CnetOS 7.8 | Apache 2.4.6 | MySQL 8.0.21 | 7.2.32 | 4.0.23 | 4.0.23 |
クライアントの環境です。
OS | Zabbix Agent |
---|---|
CnetOS 7.4 | 4.0.23 |
Windows Server 2019 | 4.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 | - |
データ型 | 数値(浮動小数) | 数値(浮動小数) |
単位 | % | % |
監視間隔 | 1m | 1m |
アプリケーションの作成 | Memory | Memory |
トリガーの設定
項目 | 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:37 | 29.5934 % |
Windows2019-1 | メモリ使用率 | 2023/02/25 22:53:44 | 30.1171 % |
対象機器に負荷をかけます。
CentOSはstressコマンドを使用、WindowsはCpuStresツールを使用して下さい。
ホスト | 名前 | 最新のチェック時刻 | 最新の値 |
CentOS7-ZA4-1 | メモリ使用率 | 2023/02/25 23:10:07 | 87.2069 % |
Windows2019-1 | メモリ使用率 | 2023/02/25 23:59:14 | 87.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で取得した値を見て単一のキーで取得できるのか、もしくは計算によって算出するのかを確認する必要があります。
定義の仕方が異なるので多少の差異があることを考慮して設定することが重要です。