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 - 投稿数: 380
確認ですが、これは再現性がある事象なのでしょうか。
adammu - 投稿数: 8
Yasumi様
こちらのエラーですが、systemctlにてAgentの停止をする度に
発生しております。
Yasumi - 投稿数: 380
通常のプロセス名は「zabbix-agentd.service」だと思うのですが「zabbix-agent_active.service」になっています。
これはクラスタ構成にしていることと関係あるのでしょうか。
何かZabbixエージェントの機構にオリジナルな修正をくわえているのでしょうか。
adammu - 投稿数: 8
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 - 投稿数: 380
こういう工夫をしているものを私は初めて見ました。
Zabbixエージェントの機構に手を加えているので、あまり力になれないかもしれませんね。
systemctlと何かしらの紐づけがうまくいっていないのではないでしょうか。
調査のために、下記コマンドは実行しましたか?
journalctl -xe
TNK - 投稿数: 4769
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のバージョンが古いのかもしれま
せん。