【Zabbix】通常のアイテム設定で取得できないプロセス数を取得する

背景

Zabbix のアイテムとしてプロセス数を取得する「proc.num[xxxx]」があります。

正しいプロセス名を指定しているにもかかわらず、取得できないことがあります。

いろんな方から同じような質問を頂くのですが、非常に簡単で設定できるので、こちらに記載します。

設定内容(画面ショットは 3.0 ですが、2.0 系でも大丈夫です)

0.作業の前に

今回監視しようとしているのは、例えば[Dovecot]を動かしているときに起動しているはずの[dovecot/anvil]です(以下のコマンド結果を参照。一部伏せ字)。

こちらを Zabbix のアイテムで「proc.num[“dovecot/anvil”]」を作っても、取得できない場合がありました

# systemctl status dovecot.service
dovecot.service - Dovecot IMAP/POP3 email server
 Loaded: loaded (/lib/systemd/system/dovecot.service; enabled)
 Active: active (running) since Tue, 15 Nov 20xx tt:mm:ss +0900; 16s ago
 Main PID: xxxx (dovecot)
 CGroup: name=systemd:/system/dovecot.service
 ├ xxxx /usr/sbin/dovecot -F
 ├ xxxx dovecot/anvil
 ├ xxxx dovecot/log
 └ xxxx dovecot/config

 

1.最初にアイテムを作成します

対象のホストにて、[アイテム]を選択し、右上にある「アイテムの作成」ボタンを押します。

以下の画面のように作って頂ければと。

名前:Process_dovecot_anvil(任意です)
タイプ:Zabbixエージェント
キー:dovecot_anvil_procnumcheck(任意です。が、ホスト内でユニークになるように設定する必要があります)

2.ホスト側の[zabbix_agent.conf]を修正します

/etc/zabbix/zabbix_agent.conf を vi とかで開きます。

セクション[UserParameter]部分に、以下のように追記します。

・UserParameter=dovecot_anvil.procnumcheck,ps aux | grep “dovecot/anvil” | grep -v “grep” | wc -l

### Option: UserParameter
# User-defined parameter to monitor. There can be several user-defined par
ameters.
# Format: UserParameter=<key>,<shell command>
# See 'zabbix_agentd' directory for examples.
#
# Mandatory: no
# Default:
# UserParameter=
UserParameter=dovecot_anvil.procnumcheck,ps aux | grep "dovecot/anvil" | grep -v
 "grep" | wc -l

何を記載しているかと言うと、文法に則ってます。

文法:UserParameter=<key>,<command>

<key>には、項番1 で作成した「キー」を記載します。これで、対応した「キー」に対してアイテムをホスト側からサーバーへ送ることが出来ます。

<command>には、取得したい「値」を 1 行コマンドラインで取得できるように記載します。この場合は、aux コマンドを使って、[dovecot/anvil]が上がっているかを確認した後に、その「行数」を返すように記載してます。

3.仕上げ

項番2 のように[zabbix_agent.conf]を記載できたら、Zabbix Agent をリスタートしましょう。でないと、設定が反映されないですね。

希望通りの「値」が取得できていることを確認できれば、あとはこのアイテムに対してトリガーをセットすれば、OK です。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です