CentOSでCPU使用率を監視してみた

CentOSでCPU使用率を監視してみた

はじめに

CentOSでCPU使用率を監視してみた

CentOSでCPU使用率を監視します。

 

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


環境

Zabbixサーバ

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

 

検証サーバ

OS:CentOS 8.2.2004

監視内容

CPUの監視項目は、以下の値を取得します。なお、1分/5分/15分の平均値を監視できます。

監視項目 説明
user ユーザレベルでCPUが消費された時間の割合
nice 優先度(ナイス値)によるユーザーレベルでCPUが消費された時間の割合
system システムレベル(kernel)でCPUが消費された時間の割合
iowait CPUがディスクI/O待ちのためにアイドル状態で消費した時間の割合
steal XenなどのOSの仮想化を利用している場合に、ほかの仮装CPUの計算で待たされた時間の割合
idle CPUのアイドル時間の割合(ディスクI/Oの待機時間は除く)

操作手順

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

 

テンプレートを作成する

左サイドバーから [設定] - [テンプレート] をクリックします。
「テンプレートの作成」ボタンをクリックします。
以下の通り入力します。
テンプレート名:T_CPU_05
グループ:Templates
説明:user/nice/system/iowait/steal/idle
「追加」ボタンをクリックします。

 

アイテムを作成する

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

 

user

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

 

nice

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

 

system

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

 

iowait

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

 

steal

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

 

idle

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

 

トリガーを作成する

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

 

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

 

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

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

動作確認

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

$ stress -c 1 -t 30s
stressプロセスを1個起動し30秒負荷を与えます。

 

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

 

CPU使用率が取得できています。
CentOSでCPU使用率を監視してみた

 

グラフです。
CentOSでCPU使用率を監視してみた

 

 

ダッシュボードを見るとCPU使用率(user)のアラートを検知しています。
CentOSでCPU使用率を監視してみた

設定例

条件

  • CPU使用率は5分ごとにデータを収集する。
  • CPU使用率の閾値は90パーセントとする。
  • 6回連続で閾値を超えたらアラートメールを送信する。
  • 閾値を超えている限り、2時間毎にアラートメールを送信する。

 

アイテムの作成

名前:CPU使用率
タイプ:Zabbixエージェント
キー:system.cpu.util[,user,avg1]
データ型:数値(浮動小数)
単位:%
監視間隔:5m
アプリケーション:CPU

 

トリガーの作成

名前:CPU使用率
深刻度:警告
条件式:{CentOS8-2:system.cpu.util[,user,avg1].min(#6)}>90
※6回連続で最小値が90パーセントを超えていたらという意味です。

 

min関数以外にもcount関数を使うことも可能です。
条件式:{CentOS8-2:system.cpu.util[,user,avg1].count(#6,90,gt)}=6

 

アクションの設定

メールを送信する」の設定が完了しているものとします。

 

デフォルトのアクション実行ステップの間隔:2h

トップへ戻る