Zabbix Server を入れてみる(kusanagi 8.0編)

祝 KUSANAGI 8.0 リリース

さて、先週無事にKUSANAGIの新バージョンがリリースされました。
KUSANAGI 8.0では、WordPressだけではなく、LAMP環境を構築することもできます。
また、kusanagi initkusanagi provision コマンドで、オプション指定でパラメータを選択することが可能です。
ということで、LAMPアプリケーションの例として、以前行ったZabbix Server 3.0 をKUSANAGI 8.0で入れてみましょう。

Zabbix 3.0 インストール

KUSANAGI 8.0では、以下のようにすればKUSANAGIでLAMP環境を構築できます。

また、KUSANAGI8.0では、Zabbix社公式リポジトリを使用してZabbix3.0 agent が入るので、以下のように zabbix server をインストールするだけです。

あとは、以前の手順と同様に、NGINX、PHP7、Zabbixの設定を行えば、Zabbix serverの設定が完了します。

さくらのクラウドのスクリプトで入れてみる

以前、「KUSANAGI for さくらのクラウド」でconcrete5を簡単に利用できるスタートアップスクリプトの紹介という記事を見つけましたが、さくらのクラウドではスタートアップスクリプトを使用して、初期設定を行うことができます。
今回このスクリプト機能を使用して、上記のZabbix serverのインストールを一撃!で行いたいと思います。

用意したスクリプトは以下の通りです。このスクリプトは、先ほどの記事のconcrete5 用のスクリプトを基に作成しています。
このスクリプトを、さくらのクラウドのスクリプトとして登録してください。

さくらのクラウドでサーバ作成時に、アーカイブからKUSANAGI7.8のイメージを指定してください。

zabbix_sakura
上記スクリプトをスタートアップスクリプトとして使用してください。

このとき、以下のようなパラメータを入力します。

パラメータ 説明
kusanagiのパスワード kusanagi ユーザのパスワード
DB の rootパスワード MySQLへ ユーザ root で接続するときのパスワード
サイトのドメイン kusanagi provide で指定する FQDN
メールアドレス 使用しない(後述)
DB名 MySQLデータベースの名前(デフォルトは zabbix)
DBユーザ名 上記データベースのアクセスに使用するユーザ名
DBパスワード 上記DBユーザ名のパスワード

zabbix_sakura_script

作成してしばらく(性能にもよりますが10~15分ほど)待つと、zabbix server 3.0 がデプロイされた状態でインスタンスが起動します。
起動したサーバのIPアドレスをDNS登録するか、hostsファイルに書いて、指定したドメイン名にブラウザでアクセスしましょう。

zabbix

スクリプトの解説

今回のスタートアップスクリプトで何を行っているかを解説します。

yum update

yum コマンドでパッケージを最新版にします。ここで、KUSANAGI 8.0、Zabbix 3.0へのアップデートが行われます。
sleep を入れているのは、Zabbix 3.0にしている弊害で、最初のKUSANAGI 8.0へのアップデート完了後にzabbix 3.0 へのアップデートが行われるため、少し待っています。

firewalld 設定

firewalld を起動し、有効化しています。
http、httpsのポート(80、443)とともに、zabbix server用のポート(10051)を開放しています。

kusanagi 設定

kusanagi init および kusanagi provision で、zabbix用のLAMP環境を作成しています。
いくつかのパラメータは決め打ちになります。
また、本来ここでLet’s Encrypt SSL証明書を発行できるのですが、この時点でIPアドレスが確定しておらず、DNSへの登録もできないことから、ここではSSL証明書発行を行っていません。
DNS登録を終えたら、以下のコマンドを使用して Let’s EncryptのSSL証明書を発行してください。

zabbix インストール・設定

zabbix server のパッケージをインストールし、以下のように設定を自動的に追加しています。

  • DBへのテーブル情報や初期テンプレートの展開
  • PHP7 の設定追加
  • zabbix_server.conf への設定変更
  • /home/kusanagi/zabbix/DocumentRoot へ、Zabbix Web Server用のPHPファイルをコピー
  • ファイル権限の変更
  • zabbix serverの起動、有効化

今回は、以前行ったZabbix Server 3.0 とは異なり、DocumentRoot にPHPファイルをコピーしています。

reboot

最後に reboot します。
ここで注意しないといけないのが、このスクリプトを一度だけ起動するために @sacloud-once と指定しているのですが、exit 0で終了しないと終了しないと再起動のたびに読み込まれます。
そのため、スクリプト中で単に reboot するとスクリプトが終了したとみなされず、無限に再起動することになってしまいます。
これを回避するために、以下のようにバックグラウンド処理でrebootを行う必要があります。

さいごに

これで、Zabbix Server 3.0 を簡単インストールすることができますね。
このスクリプトは、さくらのクラウド用ですが、当然ほかのクラウドにも流用可能ですので、お試しください。
また、このスクリプトを基にして、色々なLAMPアプリケーションをインストールできると思います。これもお試しください。