ZabbixAgentの起動/停止

監視対象サーバ(OS:RHEL7.2、ZabbixAgent:2.4.7)にて
ZabbixAgentの確認したのですが、

-----------------------------
               :
PID file /run/zabbix/zabbix_agentd.pid not readable (yet?) after start.
zabbix-agent.service: Supervising process 56634 which is not our child. ...exits.
-----------------------------

と表示されています。
※「56634」は、MainProcessIDです。

この表示が影響しているのか定かではないのですが、
ZabbixAgentを停止(systemctl使用)すると、MainProcessは停止するのですが、
 ・collector
 ・listener(×3)
 ・active check(×3)
が停止せずに残ったままとなります。

この後、起動する場合は、これらをkillしてからでないと起動不可となります。

PIDファイルについてのメッセージなので確認したところ、
zabbix_agentd.confに記載の通り、/var/run/zabbixに作成されており、
パーミッションも「zabbix zabbix 664」となっていることから、
なぜ〝not readable〟と表示されているのかが分かりません。

先ずはこのメッセージの原因をクリアしたく、どなたかご助勢願います。

コメント表示オプション

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

そのZabbixエージェントはどのようにしてインストールされました
か?

ソースからインストールされたのであれば、起動スクリプトの内容
が誤っているかもしれませんので、Zabbix LLCが提供しているRHEL
7用のパッケージ内のファイルを参考に入れ替えてみてください。
http://repo.zabbix.com/zabbix/2.4/rhel/7/x86_64/zabbix-agent-2.4.7-1.el7...

ユーザー Didier0802 の写真

TNK様

返信ありがとうございます。

>そのZabbixエージェントはどのようにしてインストールされましたか?

⇒rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/7/x86_64/zabbix-release-2.4-1.el7...
 を実施した後、
 yum install zabbix-agent
 を行っています。
 (ZabbixAgent2.4.7がインストールされる)

 返信にあった内容と同じものがインストールされている認識です。
 

ユーザー Didier0802 の写真

ちなみに起動時のメッセージの中に下記の記述があります。

--------------------------------
                 :
/usr/lib/systemd/system/zabbix-agent.service; disabled; vendor preset: disabled
                 :
--------------------------------

<zabbix-agent.service>
  [Unit]
  Description=Zabbix Agent
  After=syslog.target
  After=network.target

  [Service]
  Environment="CONFFILE=/etc/zabbix/zabbix_agentd.conf"
  EnvironmentFile=-/etc/sysconfig/zabbix-agent
  Type=forking
  Restart=always
  PIDFile=/run/zabbix/zabbix_agentd.pid
  KillMode=process
  ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE

  [Install]
  WantedBy=multi-user.target

となっています。

ユーザー TNK の写真

起動時のメッセージには問題はありません。
enableにして自動起動するように設定すれば、zabbix-agent.service
の部分がenabledと表示されます。

試しに、まっさらなCentOS 7.2.1511をインストールして、SELinux
も有効のまま、同じバージョンのZabbixエージェントをインストー
ルしてみましたが、正常に起動・停止・状態確認ができています。

インストールされているサーバは、物理サーバですか?
それとも仮想サーバですか?

一応、Zabbixエージェントを起動して、

 /var/run/zabbix

 /run/zabbix

のディレクトリを比較してみてください。

あとは、/var/run/zabbixのオーナーやパーミッションも確認して
みてください。

ご提示頂いたzabbix-agent.serviceの中身は古く、3.0ではより確
実に起動や停止ができるよう改善されています。
2.4系はすでにサポートが終了しているので、3.0へのアップグレー
ドもご検討ください。

ユーザー Didier0802 の写真

TNK様

>インストールされているサーバは、物理サーバですか?
>それとも仮想サーバですか?

⇒物理サーバです。

>/var/run/zabbixと/run/zabbixのディレクトリを比較してみてください。
>あとは、/var/run/zabbixのオーナーやパーミッションも確認してみてください。

⇒Sリンクにつき、内容は同じでした。
 また、オーナー/グループ、パーミッションも同じでした。

とりあえず、起動/停止が正常に行えるか否かを確認するため、
Ver.3(3.0.1-1)を入れるべく、下記を実施しました。

------------------------------------------

rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7...


yum install zabbix-agent
読み込んだプラグイン:product-id, search-disabled-repos, subscription-manager
This system is registered to Red Hat Subscription Management, but is not receiving updates. You can use subscription-manager to assign subscriptions.
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ zabbix-agent.x86_64 0:3.0.1-1.el7 を インストール
--> 依存性の処理をしています: libodbc.so.2()(64bit) のパッケージ: zabbix-agent-3.0.1-1.el7.x86_64
--> 依存性解決を終了しました。
エラー: パッケージ: zabbix-agent-3.0.1-1.el7.x86_64 (zabbix)
要求: libodbc.so.2()(64bit)
問題を回避するために --skip-broken を用いることができます。
これらを試行できます: rpm -Va --nofiles --nodigest
------------------------------------------

インストール不可について色々と情報がありましたので、
各々試しましたが、状況が変わりません(インストール不可のままです)。
上記メッセージへの対応について、ご教示頂けないでしょうか?

ユーザー TNK の写真

RHELを利用されているのであれば、サブスクリプションの設定を行
ってください。

サブスクリプションの設定を行っていない状態であるため、yumコ
マンドで依存関係を解決しても、該当するパッケージをダウンロー
ドできない状態なのだと思われます。

----- 追記 -----
RHEL 7をインストールしたときに利用したDVDなどのメディア上に、
 libtool-ltdl
 unixODBC
のパッケージがあれば、それをインストールしてみてください。

ユーザー Didier0802 の写真

TNK様

サブスクリプション削除⇒登録を繰り返したため、ご指摘の「未登録」状態になっています。
これについては、RedHatのサポートへの問い合わせを行っています。

Ver.3については、タイミングをみてアップデートする考えです。

しばらくはVer.2.4で運用し、子プロセスのkillについては「pgrep -f zabbix | xargs kill」を
使用して停止を行いたいと思います。

ユーザー Tulip_Marlowe の写真

全く同じメッセージでabbix_serverを起動できず、検索してこちらにたどり着きました。最後の投稿から随分日が経っているため、既に解決されているかも知れませんが、取敢えず投稿させていただきます。
私の場合、selinuxを有効にしたまま設定しようとしてselinuxの知識が足りない為にこの状況に陥っています。若しこだわらないのであれば、selinuxをPermissive、或いはDisableにすれば解決しませんでしょうか?

ユーザー TNK の写真

SELinuxを有効にしたままZabbixサーバーやZabbixエージェントを
起動する方法に関しては、私が以下のURLで書いてありますので、
そちらを参考にしてみてください。

Zabbix 3.0をCentOS 6上で動かす(インストール編)
http://qiita.com/atanaka7/items/389f796b221cc0609379
Zabbix 3.0をCentOS 7にインストール
http://qiita.com/atanaka7/items/294a639effdb804cfdaa

同じRHEL 7(CentOS 7)であっても、細かなアップデートでSELinux
のポリシーが変更されている場合があるので、SELinuxを有効にし
た状態で起動できない場合は、以下のログファイルの内容を確認し
てみてください。

/var/log/zabbix/zabbix_server.log
/var/log/zabbix/zabbix_agentd.log
/var/log/audit/audit.log

パーミッションがない(Permission denied)などのアクセスが拒否
されたというようなエラーメッセージが記録されていると思います。

監視する内容やアクセスするディレクトリやファイルによっては、
それらに対するアクセス許可が追加で必要になるかもしれませんの
で、うまく動かないときは、audit.logの内容を確認してみてくだ
さい。

あと、2.4系は上でも書いた通り起動終了用のスクリプトに適切で
はないものがあったと思いますし、すでにサポートが終了していま
すので、3.0以降のバージョンを使用されることを強くお勧めしま
す。