先日業務で特定のプロセスのCPU使用率を監視する必要があったので単純にpsコマンドでの取得を考えたのですが、一筋縄では行きませんでした。
と言うのもpsコマンドの出力結果はプロセスによって複数行にわたる事もある為、全ての行の使用率を集計しないときちんとした結果にならず、仕方がないので結果が複数業行でもきちんと集計してくれるようにawkを使いワンライナーを書きました。
そのワンライナーも含めて記事にしましたので、よければご活用ください。
環境
■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[プロセス名] データ型:浮動小数点数 単位:% それ以外の項目:任意で設定下さい |
以上で完了です。