【Zabbix】Zabbixサーバの構築_06_サービスの起動と停止

Keepalived

はじめに

前回までの記事で構築までの一連の手順を記載しました。あとは起動するだけですが、サービスの起動の順番を間違えると正常にサービス起動が出来ません。今回構築したZabbixはすべて手動起動を想定しているので、構成を理解していない人が触ると、トラブルにつながることでしょう。
本記事で紹介したZabbixサーバの構成での起動手順を紹介したいと思います。起動した後は、正常に停止する方法も紹介したいと思います。

※本手順にはどのサーバで実施するか記載していませんが、本番稼働用の手順書を作る場合は記載しておくと良いでしょう。

構成図

ホスト名:zabbix-ap01
IP:172.16.1.101
構成:AlmaLinux 9、Zabbix6.0

ホスト名:zabbix-ap02
IP:172.16.1.102
構成:AlmaLinux 9、Zabbix6.0

ホスト名:zabbix-db01
IP:172.16.1.104
構成:AlmaLinux 9、PostgreSQL 13

ホスト名:zabbix-db02
IP:172.16.1.105
構成:AlmaLinux 9、PostgreSQL 13

起動手順

起動の順序は以下の通りです。

1. DBの起動
2. Zabbix関連サービスの起動
3. Keepalivedサービスの起動

それぞれのサービス起動手順を確認します。それぞれのサービス起動時に正常に起動していないと、後続の起動に影響があるので、その都度サービスの起動状況の確認も行います。

DBの起動

DBを起動する場合、Pacemakerのサービスを起動します。直接DBの起動させないよう注意します。
レプリケーションされているか不明な場合、主系からコピーしてから起動させます。本手順では主系から副系にコピーする手順から記載しています。

主系DBの起動確認

主系DBを手動で起動します。当たり前ですが、この時点で起動しなければ、Pacemakerで起動しても失敗します。失敗時に切り分けしやすくするためにも、事前に確認することをおすすめします。

副系DBへのデータコピー

次に副系にDBをコピーします。すでに同期されている場合は不要ですが、障害発生時から復旧する場合などにはこの手順が必要となります。なお、予め$PGDATAのファイルは削除している必要があるので、実施前に削除しておきましょう。rootユーザで実行しないように注意してください。$PGDATAの所有者がrootになっている場合、DBの起動に失敗します。

PacemakerでDBを起動させるため、問題なく副系がコピーされた後に、主系のDBを停止させておきます。

なお、このときに副系DBの起動確認は行いません。Pacemakerで起動させてVIPを持たせるため、あくまでも手動で実施するのは「主系のDB起動確認」と「副系へのデータコピー」にとどめます。

PacemakerによるDBの起動

DBのコピーが完了したあと、PacemakerでDBを起動させます。先に起動させた方が主系となるため、起動の順番は運用方針に従って起動させてください。

DBの正常性確認

主系を起動した後、副系を起動する前に正常性確認をしておきましょう。主系DBが起動していない状況で副系のみが問題なく起動した場合、主副が逆になります。ポリシーに合わせるために主副を入れ替える必要が出た場合は、余計な作業が出来てしまうので、まずは主系のみで問題なく起動しているかを確認します。

確認箇所は「Node Attributes」の部分で、「-INFINITY」や「DISCONNECT」値が出てしまっている場合は正常に稼働していない状況です。
問題なく起動できていることを確認したら、副系も同様に起動します。両方とも起動できた場合、以下のような結果になります。

実は本記事を書くために検証環境のDBを起動させた際も、エラーが出て起動できなかったため、ログを追いました。PacemakerかPostgreSQLのログのいずれかにヒントがあると思うので、エラーの際はログを追って解決してみてください。

IP確認

VIPが想定通りに付与されているか確認してみましょう。主系に「172.16.1.103」が付与されています。

Zabbix関連サービスの起動

Zabbix関連と書いたのは、Zabbixサーバ以外にもhttpd、php-fpmといったサービスの起動も必要です。
正直DB起動まで問題なくできれば、これ以降のZabbix関連のサービス確認は割と容易にできるかと思います。

Zabbixサーバ、httpd、php-fpm、Zabbixエージェントサービスの起動

以下のコマンドでサービスを起動します。

各サービスの状態確認

以下のコマンドを実行して、アクティブになっていることを確認します。以下はzabbix-server.serviceの確認です。

問題なく主系を起動出来たら、副系も起動します。

Zabbix HA の状態確認

先に起動した方がHAのActiveになっています。以下のコマンドで確認します。ap01がactiveになっていることを確認できます。

Keepalivedの起動

最後にKeepalivedサービスを起動します。こちらも起動に順に応じて主副が決定されます。

以下のコマンドで起動します。

以下のコマンドで起動状態を確認し、アクティブになっているか確認します。

IPも確認しておきましょう。以下は主系で実行した結果です。「172.16.1.100」が付与されています。

問題なく起動出来たら、副系でも起動します。

これで起動は完了です。ブラウザでZabbixのGUI画面にアクセスできると思います。

停止手順

サービスを停止する手順は以下の通りです。

1. Keepalivedの停止
2. Zabbix関連サービスの停止
3. DBの停止

停止は起動とは逆の順序で、副系を停止後に主系も停止します。当然と言えばそれまでですが、手動起動のシステムを構築した場合は明確にしておきましょう。運用担当者が停止手順を間違えて、起動時にトラブルになることは避けたいところです。

Keepalivedの停止

以下のコマンドで停止します。※副系から先に停止します。

起動時と同じコマンドで停止できているか確認します。

Zabbix関連サービスの停止

以下のコマンドで停止します。副系を停止後、主系を停止します。

同様に、サービスの状態を確認します。

DBの停止

副系のDBを停止します。以下のコマンドを実行します。

停止後、ステータスを確認します。

問題なく停止できた後、主系のDBを停止させます。
主系停止時は「–force」オプションを付与します。

以上が起動から停止までの手順です。
同じ構成で構築されていることは少ないかもしれませんが、部分的に活用できる場面があれば幸いです。

タイトルとURLをコピーしました