原点回帰!元PMが技術力でフルリモートワークを目指すブログ

思わせぶりなタイトルですがただのフリーエンジニアの備忘録です。。

指定したプロセスのCPU使用率をZabbixで取得する

業務で特定のプロセスのCPU使用率を取得する必要があったので、その時実施した内容をメモ
プロセス毎のCPU使用率はpsコマンドで取得しているのですが、プロセスによっては出力結果が複数行にわたる為、出力結果を全て集計しています。

環境

■Zabbixサーバ
 ・CentOS7.4
 ・Zabbix-Server3.4.5

■Zabbixクライアント
 ・CentOS7.4
 ・Zabbix-Agent3.4.5

クライアントの設定を行う

Zabbixクライアントのzabbix_agentd.confに以下を追記する。

# vi /etc/zabbix/zabbix_agentd.conf

UnsafeUserParameters=1
UserParameter=proc_info_cpu[*],ps auwx | grep -v grep | grep $1 | awk '{sum += $$3}END{print sum}'


UnsafeUserParameters=1
↑これを追記する事でによりUserParameterの引数に特殊文字を渡せる様になる。

UserParameter=proc_info_cpu[*],ps auwx | grep -v grep | grep $1 | awk '{sum += $$3}END{print sum}'
↑これを追記する事で、指定プロセスのCPU使用率を取得する「proc_info_cpu[プロセス名]」アイテムが使用できる

設定値を反映させる為、Zabbix-agentdを再起動する

# systemctl restart zabbix-agent

これでクライアント側の設定は完了です。
続いてWebコンソールからアイテムを追加します。

WEBコンソールからアイテムを追加する

ZabbixのWEBコンソールにログインし、「設定 > ホスト > アイテムの作成」にてアイテム追加画面を表示させる

以下の通り設定を入力し、アイテムを作成する。

名前:任意
タイプ:Zabbixエージェント
キー:proc_info_cpu[プロセス名]
データ型:浮動小数点数
単位:%

それ以外の項目:任意で設定下さい

以上で完了です。

今回、業務環境での作業だったので、スクリーンショットは取れずテキストのみの説明ですみません。
また時間がある時にローカルに環境を構築してスクショ撮って貼り付けますのでしばしお待ち下さい。