CentOSでメモリ使用率を監視してみた

CentOSでメモリ使用率を監視してみた

はじめに

CentOSでメモリ使用率を監視してみた

CentOSでメモリに関する情報を監視します。

 

負荷ツールは、「stress」を使用します。


環境

OS:CentOS 8.2.2004
Apache:2.4.37
PHP:7.2.25
MariaDB:10.3.17
Zabbix Server:5.0.2
Zabbix Agent:5.0.2

監視内容

メモリの監視項目は、以下の値を取得します。

監視項目 説明
メモリの総容量 物理メモリの総容量
メモリの使用量 メモリの総容量からメモリの空き容量を引いた値
メモリの空き容量 メモリの空き容量
メモリのバッファ ブロックI/Oを最適化するために、ディスクブロックをキャッシュする容量
メモリのキャッシュ ファイルI/Oを最適化するために、ファイルのページをキャッシュする容量
利用可能なメモリ容量 プロセスが使用可能な物理メモリの容量。値が減少していく場合はメモリリークの可能性あり。
メモリ使用率 メモリ使用量をメモリ総容量で割った割合

 

メモリの各項目を図にすると以下の通りです。
CentOSでメモリ使用率を監視してみた

操作手順

Zabbixの管理コンソールにサインインします。

テンプレートを作成する

左サイドバーから [設定] - [テンプレート] をクリックします。
「テンプレートの作成」ボタンをクリックします。
以下の通り入力します。
テンプレート名:T_Memory_05
グループ:Templates
説明:メモリの総容量/メモリの使用量/メモリの空き容量/メモリのバッファ/メモリのキャッシュ/利用可能なメモリ容量/メモリ使用率
「追加」ボタンをクリックします。

 

アイテムを作成する

テンプレートの「アイテム」をクリックします。
CentOSでメモリ使用率を監視してみた

 

メモリの総容量

右上の「アイテムの作成」ボタンをクリックします。
アイテムの作成画面では、監視したい項目に合わせて設定します。
名前:05.メモリの総容量
タイプ:Zabbixエージェント
キー:vm.memory.size[total]
データ型:数値(整数)
単位:B
監視間隔:1m
アプリケーション:Memory
「追加」ボタンをクリックします。

 

メモリの使用量

右上の「アイテムの作成」ボタンをクリックします。
アイテムの作成画面では、監視したい項目に合わせて設定します。
名前:10.メモリの使用量
タイプ:Zabbixエージェント
キー:vm.memory.size[used]
データ型:数値(整数)
単位:B
監視間隔:1m
アプリケーション:Memory
「追加」ボタンをクリックします。

 

メモリの空き容量

右上の「アイテムの作成」ボタンをクリックします。
アイテムの作成画面では、監視したい項目に合わせて設定します。
名前:15.メモリの空き容量
タイプ:Zabbixエージェント
キー:vm.memory.size[free]
データ型:数値(整数)
単位:B
監視間隔:1m
アプリケーション:Memory
「追加」ボタンをクリックします。

 

メモリのバッファ

右上の「アイテムの作成」ボタンをクリックします。
アイテムの作成画面では、監視したい項目に合わせて設定します。
名前:20.メモリのバッファ
タイプ:Zabbixエージェント
キー:vm.memory.size[buffers]
データ型:数値(整数)
単位:B
監視間隔:1m
アプリケーション:Memory
「追加」ボタンをクリックします。

 

メモリのキャッシュ

右上の「アイテムの作成」ボタンをクリックします。
アイテムの作成画面では、監視したい項目に合わせて設定します。
名前:25.メモリのキャッシュ
タイプ:Zabbixエージェント
キー:vm.memory.size[cached]
データ型:数値(整数)
単位:B
監視間隔:1m
アプリケーション:Memory
「追加」ボタンをクリックします。

 

利用可能なメモリ容量

右上の「アイテムの作成」ボタンをクリックします。
アイテムの作成画面では、監視したい項目に合わせて設定します。
名前:30.利用可能なメモリ容量
タイプ:Zabbixエージェント
キー:vm.memory.size[available]
データ型:数値(整数)
単位:B
監視間隔:1m
アプリケーション:Memory
「追加」ボタンをクリックします。

 

メモリ使用率

右上の「アイテムの作成」ボタンをクリックします。
アイテムの作成画面では、監視したい項目に合わせて設定します。
名前:35.メモリ使用率
タイプ:Zabbixエージェント
キー:vm.memory.size[pused]
データ型:数値(浮動小数)
単位:%
監視間隔:1m
アプリケーション:Memory
「追加」ボタンをクリックします。

 

トリガーを作成する

テンプレートの「トリガー」をクリックします。
CentOSでメモリ使用率を監視してみた

 

右上の「トリガーの作成」ボタンをクリックします。
トリガーの作成画面では、監視したい項目に合わせて設定します。
名前:メモリ使用率の閾値超え
深刻度:警告
条件式:{T_Memory_05:vm.memory.size[pused].last()}>90
条件式は、「メモリ使用率が90パーセントを超えた時」という意味です。
「追加」ボタンをクリックします。

 

テンプレートをホストにリンクする

左サイドバーから [設定] - [ホスト] をクリックします。
作成したテンプレートをリンクするホストを選択します。ここでは「CentOS8-2」を選択しています。
「テンプレート」をクリックします。
新規テンプレートをリンク欄で、「T_Memory_05」をリンクします。

動作確認

「stress」ツールでメモリ負荷を増やしたり減らしたりして変動を確認します。

$ stress --vm 3 --vm-bytes 256M --vm-keep
3つのプロセスで256MBを確保させます。

 

[監視データ]-[最新データ]をクリックします。
ホストは「CentOS8-2」を選択し、「適用」ボタンをクリックします。

 

メモリの各種情報が取得できています。
CentOSでメモリ使用率を監視してみた

 

メモリ使用率のグラフです。
CentOSでメモリ使用率を監視してみた

 

ダッシュボードを見るとメモリ使用率が閾値を超えた時にアラートを検知しています。
CentOSでメモリ使用率を監視してみた

トップへ戻る