ZabbixAgent停止時のエラーについて

いつも参考にさせていただいております。

クラスタ構成のLinuxサーバにZabbixAgentを導入しまして
systemctlにてサービスを停止したところ、以下のようなエラーを確認しました。
クラスタ用にユニットファイルやZabbixAgent設定ファイル等をそれぞれ2つ作成しています。

実行コマンド:systemctl status zabbix-agent_active.service
---------------------------------------------------------
Active:failed(Result: exit-code) since [停止した日時の情報]
Process:[プロセス番号] ExecStop=/bin/kill -SIGTERM $MAINPID (code=exited, status=1/FAILURE)
---------------------------------------------------------

実行コマンド:tail /var/log/messages
---------------------------------------------------------
systemd: Stopping Zabbix Agent...
Kill: Usage:
Kill: Kill [options] [...]
Kill: オプション:
Kill: -a, --all do not restrict the name-to-pid concersion to processes
<中略>
Kill: For more details see kill(1)
systemd: zabbix-agent_active.service failed.
---------------------------------------------------------
※/zabbix_agentログには特にサービス停止時のエラーは出力されていませんでした。

停止後にpsにてzabbixプロセスを確認したところ、プロセスは存在しませんでした。
また、この後にAgentを起動すると問題なく使用できております。
/var/log/messagesを確認したところ、プロセスのkillに失敗しているように見えるのですが
pidファイルは問題なくアクティブ、スタンバイ用にそれぞれ作成できております。

なぜ停止時にエラーが発生してしまうのかご教授頂けると幸いでございます。

/etc/systemd/system/zabbix-agent_active.serviceの修正箇所
---------------------------------------------------------
[Service]
Environment="CONFILE=/etc/zabbix/zabbbix_agentd_active.conf"

PIDFile=/run/zabbix/zabbix_agentd_active.pid
---------------------------------------------------------
※クラスタ用に作成したzabbix_agentd_active.confも上記のpidに修正しております。

Zabbixバージョン:4.4.8
Zabbix環境:RHEL7.6
ZabbixAgent導入サーバ:RHEL7.6

以上、よろしくお願い致します。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー Yasumi の写真

確認ですが、これは再現性がある事象なのでしょうか。

ユーザー adammu の写真

Yasumi様

こちらのエラーですが、systemctlにてAgentの停止をする度に
発生しております。

ユーザー Yasumi の写真

通常のプロセス名は「zabbix-agentd.service」だと思うのですが「zabbix-agent_active.service」になっています。
これはクラスタ構成にしていることと関係あるのでしょうか。
何かZabbixエージェントの機構にオリジナルな修正をくわえているのでしょうか。

ユーザー adammu の写真

Yasumi様

クラスタ構成を組んでいるサーバに対して
アクティブ時用の「zabbix-agent_active.service」、
スタンバイ時用の「zabbix-agent_standby.service」のように
1つのサーバにユニットファイルを2つ作成しており、Zabbixにもそれぞれホスト登録をしております。

設定ファイルも「zabbix_agentd_active.conf」、「zabbix_agentd_standby.conf」のようにそれぞれ作成しておりまして、
以下のような設定を入れております。(抜粋)

zabbix_agentd_active.conf
-------------------------------------------------------
PidFile=/var/run/zabbix/zabbix_agentd_active.pid
LogFile=/var/log/zabbix/zabbix_agentd_active.log
ListenPort=10050
Hostname=〇〇_active
-------------------------------------------------------

zabbix_agentd_standby.conf
-------------------------------------------------------
PidFile=/var/run/zabbix/zabbix_agentd_standby.pid
LogFile=/var/log/zabbix/zabbix_agentd_standby.log
ListenPort=10051
Hostname=〇〇_standby
-------------------------------------------------------

ユーザー Yasumi の写真

こういう工夫をしているものを私は初めて見ました。
Zabbixエージェントの機構に手を加えているので、あまり力になれないかもしれませんね。

systemctlと何かしらの紐づけがうまくいっていないのではないでしょうか。
調査のために、下記コマンドは実行しましたか?

journalctl -xe

ユーザー TNK の写真

CentOS 7.8.2003上のZabbix 4.4.10であれば、

 /etc/systemd/system/zabbix-agent_active.service
 /etc/zabbix/zabbbix_agentd_active.conf

内の設定を合わせれば、そのようなエラーは発生せずに起動と停止
を行うことができています。
両ファイルのPidファイルの指定(PIDFile, PidFile)が同じファイ
ルを指しているかを再度確認してみてください。

私の例:
PIDFile=/run/zabbix/zabbix_agentd_active.pid
PidFile=/var/run/zabbix/zabbix_agentd_active.pid

もしくは、RHEL 7.6上のsystemdのバージョンが古いのかもしれま
せん。