ホーム » 技術 » Zabbix4.0アップデートが簡単すぎた

Zabbix4.0アップデートが簡単すぎた

918

サーバ管理のお供といえばZabbix。ただ、長いこと運用をやっていると保守的な思考になってしまい、最新版が出たからといってホイホイとアップデートする気にはならなくなる。自分の環境で使っているZabbixも、ずっと長いこと3.0系のままで何年も使っていてほったらかしになっていた。

ところが、先日さくらのクラウドの運用チームの監視システムを見たら、長いこと2.4系や3.0系だったのが4.0にアップグレードされていた。それだけでなく、そのダッシュボードがかっこいいこと! ちょっとしびれてしまったので、さっそく自分のZabbixも4.0にアップデートすることにした。

さて、Zabbixのアップデートに躊躇するのには理由がある。実は以前、3.0へのアップデートのときに、データベースの変換をするステップで失敗したことがあったのだ。原因は判然としないのだが、変換後に起動すると設定がめちゃくちゃになっていて動かないとか、何度トライしても正常に変換できず、結局古いデータを全部捨ててゼロからやり直したのだ。4.0にするにあたって、同じようにやり直しになったりしたら面倒だ。

だがクラウドチームのダッシュボードがかっこよかったので、今回仮に失敗してもやり直す価値はあるかもしれない。それにもしかしたら成功するかも? ということで挑戦してみることにした。

以下の手順の前提だが、本家リポジトリを利用したyumインストールをベースにしている。一応、自分の場合はサーバを丸ごとバックアップしてから試しているので失敗しても戻れるようにしている。読者の皆さんも自己責任でどうぞ。

念のためバックアップ

まずは現環境をバックアップする。どの程度バックアップするかはお好みに合わせていただければと思う。自分の場合、現行のZabbixサーバはクラウドなので、ボタンひとつでサーバのディスクイメージをバックアップコピーできる。

それから、/etc/zabbixを丸ごとコピーしておく。これはconfファイルを予防的に保管するために行う。

cp -rp /etc/zabbix /root/zabbix-backup

アップデート開始

続いてアップデートを始める。サーバではzabbix-serverとzabbix-agentが動作しているので、これを止める。

systemctl stop zabbix-server zabbix-agent

次に新しいリポジトリをダウンロードしてインストールする。

yum install https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

次のようにしてアップグレードする。

yum clean all  # 2019-06-07 追記
yum upgrade zabbix-server zabbix-agent

これで、まずはコードのアップデートが完了する。

confの見直し

アップデート完了直後は、新しいconfファイルは .rpmnew という拡張子で置いてあるので、これを古いconfファイルとマージしなければならない。古いファイルは元の名前でそのまま置いてあるので、こんな風にしてやるとよい。

cd /etc/zabbix
mv zabbix_server.conf zabbix_server.conf.old
mv zabbix_server.conf.rpmnew zabbix_server.conf
diff -u zabbix_server.conf.old zabbix_server.conf

差分を見ながら、新しいconfファイルを修正する。とはいえ、修正ポイントはそれほど多くないと思う。

  • Hostname
  • Server
  • ServerActive

ぐらいなものだろうか。他にサイト特有の設定があるのなら、diffで明らかになると思うので設定を引き継いでほしい。zabbix_agent.confについても同様に設定を引き継ぐ。

mv zabbix_agentd.conf zabbix_agentd.conf.old
mv zabbix_agentd.conf.rpmnew zabbix_agentd.conf
diff -u zabbix_agentd.conf.old zabbix_agentd.conf

起動とチェック

完了したら再起動する。なんか、再インストールのときにdisabledになっているっぽいので念のためにenableにするほうがいいようだ。

systemctl start zabbix-server zabbix-agent
systemctl enable zabbix-server zabbix-agent

起動時にエラーがないか確認する。

systemctl status -l zabbix-server zabbix-proxy
tail -f /var/log/zabbix/zabbix_server.log
tail -f /var/log/zabbix/zabbix_agent.log

tail -f の場合は、しばらくログを眺めてエラーが出ていないかを確認する。

最後に、ZabbixのWebサイトにアクセスし、きちんと画面が表示されているかを確認できたらOKだ。

新しいダッシュボード(カスタマイズ後)。タイムラインがかっちょいい。

おわりに

これまで失敗ばかりだったZabbixのアップデートが、今回うまくいった理由が何なのかはわからない。これまでも概ね同じような手順でやってきているので失敗する理由も成功する理由も分からない。まあ、成功したのでこれ以上追及はしないのだが。

今のところプライベートのZabbixサーバの負荷状況は上記のスナップショットの通りであるが、参考までにさくらのクラウドの1つのゾーンを監視しているサーバは Number of items 90278 (enabled)、Required server performance 684.77 だった。文字通り桁違いだ。

参考リンク