LoginSignup
0
1

More than 1 year has passed since last update.

Zabbix6でPostgreSQL15を使用したらOSがシャットダウンしてくれない

Last updated at Posted at 2023-02-10

RockyLinux-9.1Zabbix-6.0.13PostgreSQL-15.2ApacheHttpd-2.4.53

発生した問題

ZabbixをインストールしたRockyLinuxサーバが、なぜかシャットダウンが完了しなくなりました。rebootpoweroffを実行すると、輪っかのアイコンがぐるぐるしている画面から進まないのです...

悲しみの画面
なんでー!?

試したこと・確認したこと

  • カーネルアップデート
    • 特に変化なし。
  • ミドルウェアのバージョン確認
  • 追加したサービスを一つ一つ停止しながらシャットダウンテスト
    • zabbix-server.serviceを止めていれば問題が再発しないことに気づく。
  • OS及びZabbixバージョンが同一で、本事象が発生していない環境と見比べる。
    • 問題ない環境はDBとしてMariaDBを使っている。

このことから、zabbix-serverのサービスと、データベースの種類の組み合わせにより起きていると判断。

解決方法

zabbix-server.serviceのUnitファイルを見たところ、以下の記載でした。

[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target
After=mysql.service
After=mysqld.service
After=mariadb.service
After=postgresql.service
After=pgbouncer.service
After=postgresql-9.4.service
After=postgresql-9.5.service
After=postgresql-9.6.service
After=postgresql-10.service
After=postgresql-11.service
After=postgresql-12.service
After=postgresql-13.service
After=postgresql-14.service

[Service]
Environment="CONFFILE=/etc/zabbix/zabbix_server.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-server
Type=forking
Restart=on-failure
PIDFile=/run/zabbix/zabbix_server.pid
KillMode=control-group
ExecStart=/usr/sbin/zabbix_server -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=0

[Install]
WantedBy=multi-user.target

[Unit]セクションの配下にあるAfter=サービス名が、zabbix-server.serviceより先に起動/停止すべきサービスを定義しています。※Zabbixは、zabbix-server.serviceより先にDBが停止してしまうと永遠に待機状態に陥ります。

あれ?DBとして使用しているのはPostgreSQL15なのに、After=postgresql-15.serviceがないじゃん...
ということで以下の様に修正してリロードしました。

# cp -p /etc/systemd/system/multi-user.target.wants/zabbix-server.service ~/
# vim /etc/systemd/system/multi-user.target.wants/zabbix-server.service
--------------------------------------------zabbix-server.service
[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target
After=mysql.service
After=mysqld.service
After=mariadb.service
After=postgresql.service
After=pgbouncer.service
After=postgresql-9.4.service
After=postgresql-9.5.service
After=postgresql-9.6.service
After=postgresql-10.service
After=postgresql-11.service
After=postgresql-12.service
After=postgresql-13.service
After=postgresql-14.service
After=postgresql-15.service ← 追記

[Service]
Environment="CONFFILE=/etc/zabbix/zabbix_server.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-server
Type=forking
Restart=on-failure
PIDFile=/run/zabbix/zabbix_server.pid
KillMode=control-group
ExecStart=/usr/sbin/zabbix_server -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=0

[Install]
WantedBy=multi-user.target
--------------------------------------------
# systemctl daemon-reload
# systemctl restart zabbix-server

あっさり問題解決。よかったー!

はじめはめちゃくちゃRockyLinuxを疑ってしまいました。ごめんなさい。

多分Zabbixアップデートでそのうち対応されると思いますが、未対応の場合は手動で対応を。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1