4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Zabbix 3.0をCentOS 6上で動かす(ビルド編)

Last updated at Posted at 2016-04-01

※先日利用していたSRPMに問題があることを確認しました。
※修正したSRPMを改めて公開しなおしましたので、記述もそれに合わせて修正しました。

はじめに

Zabbix 3.0がリリースされ、RHEL/CentOS 6用のパッケージも公開されましたが、Zabbixサーバーのモジュールは公開されていません。
先日のOSCでもお話しした通り、Zabbix 3.0の機能を利用するためには、RHEL/CentOS 6の標準のパッケージ構成では対応できないからのようです。

ご参考:

インストールする際の方針

とはいえ、まだRHEL/CentOS 6を利用されている方も多いと思われるので、RHEL/CentOS 6対応を検討してみました。

Zabbix 3.0をCentOS 6上で動かす方法として、epelやremiを利用する方法が散見されますが、本番環境でRHEL 6を使用している場合、標準外のリポジトリやパッケージを利用してしまうと、それらのソフトウェアのサポートが受けられなくなってしまう可能性があります。

ですので、極力OS標準のパッケージを利用する手順として整理します。

方針:

  • libcurlは、標準のパッケージだとバージョンが古いので、SMTP認証はなし
  • PHPは、SCLを利用してPHP 5.4にして対応する。

SCLというのは、Software Collectionsと呼ばれるパッケージ群で、RHELやCentOS標準の拡張パッケージ群として提供されています。
ただし、CentOSで利用できるのは、RHEL用で利用できるもののうちのごく一部です。
CentOSでも利用できるバージョンということで、今回は、PHP 5.4(php54)を利用します。

独自パッケージのご紹介

そこで、機能的な制限はあるものの、極力標準のパッケージを利用してCentOS 6上でZabbix 3.0.1のZabbixサーバーのパッケージをビルドするためのSRPMを作成してみました。
SRPMは、Amazon Linuxでもビルドできるようにしてありますので、以前の私のAmazon Linux用のパッケージのビルドの記事を参考にすればAmazon Linuxでも使えます。

ご参考:

制限事項

先ほども書かせて頂きましたが、RHEL/CentOS 6標準のlibcurlのバージョンが古いのでSMTP認証は利用不可です。

PHPは、SCLのphp54を利用します。
標準のphpパッケージとの共存は難しいので、phpを利用している他のアプリケーションと同じサーバにインストールしない方が良いと思います。

また、RHELのSCLならより新しいPHPのバージョンが利用できるかもしれません。
その場合は、zabbix.spec内のパッケージの依存関係をより新しいバージョン用に変更してからビルドしてください。

CentOS 6用パッケージのビルド

ビルド環境用OSのインストール

インストール予定のアーキテクチャ(i586 or x86_64)と同じCentOS 6の環境を用意します。
OSをインストールしたら、yum updateなどを利用して、OSを最新の状態に更新しておきます。

OSの準備ができたら、開発ツールをインストールしておきます。

# yum groupinstall 'Development tools'

ビルド環境の準備

ビルド用のアカウントを作成します。
今回は、builduserという名前のアカウントを作成して、パスワードも設定しておきます。

# useradd builduser
# passwd builduser

作成したアカウントでログインし、ビルド用のディレクトリ作成と環境設定を行います。

$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
$ vi ~/.rpmmacros

.rpmmacrosファイルに記述する内容は以下のような内容です。

%_topdir /home/builduser/rpmbuild

異なるアカウント名を利用される場合は、そのアカウント名のディレクトリにパスを変更してください。

次に私がカスタマイズしたZabbix 3.0.1のパッケージを取得します。

$ wget https://github.com/atanaka7/zabbix-jp-amzn1/raw/master/zabbix-3.0.1-3.amzn1.src.rpm

新しいバージョンが出たら更新するかもしれないのでご注意ください。

このパッケージは、RHEL 7用の3.0.1用のパッケージをベースに、
RHEL 6(CentOS 6)とAmazon Linux用のサーバも含めたパッケージを
構築するできるようにカスタマイズしてあります。

内容を確認して頂くためにも、ビルド用アカウントのビルド用ディレクトリに、このSRPMを展開します。

$ rpm -ivh zabbix-3.0.1-3.amzn1.src.rpm

別途、RHEL 7用の内容、特にzabbix.specの内容と比較してみて頂きたいのですが、CentOS 6用とAmazon Linux用の処理分岐を変更・追記してあります。

特に、phpの依存関係の部分ですが、RHEL 7以上やAmazon Linuxなら、パッケージphpのバージョン5.4以上で、それ以外は、php54-phpのバージョン5.4以上としてあります。
php54としてあるのは、CentOS 6用のSCLでは、php54というPHP 5.4のパッケージまでしか公開されていないからです。

RHELを使用されているのであれば、SCLにPHP 5.5やPHP 5.6など、もっと新しいバージョンのパッケージがあるようですので、より新しいPHPを利用されるのであれば、そのパッケージ名称に合わせてzabbix.spec内の依存関係の部分を変更してください。

ご参考:

必要パッケージの事前インストール

iksemelとか必要になるので、RHEL 6の3.0用リポジトリを登録しておきます。

# yum install http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm

それ以外のビルドに必要な各種パッケージもインストールしておきます。

# yum install mysql-devel postgresql-devel net-snmp-devel openldap-devel gnutls-devel iksemel-devel sqlite-devel unixODBC-devel curl-devel OpenIPMI-devel libssh2-devel java-devel libxml2-devel

ビルド実行。

ビルドする環境の準備が終了したら、パッケージをビルドします。

srpmに変更を行わないなら、ソースをインストールしないで以下のように実行するだけで直接パッケージをビルドすることができます。

$ rpmbuild --rebuild zabbix-3.0.1-3.amzn1.src.rpm

zabbix.specファイルなどを変更したのであれば、その変更したファイルを引数に指定して以下のように実行します。

$ cd ~/rpmbuild/SPEC/
$ rpmbuild -ba zabbix.spec

正常にビルドが終了したら、以下のようなパッケージがビルドできているはずです。

~/rpmbuild/RPMS/x86_64/

zabbix-agent-3.0.1-3.el6.x86_64.rpm
zabbix-debuginfo-3.0.1-3.el6.x86_64.rpm
zabbix-get-3.0.1-3.el6.x86_64.rpm
zabbix-java-gateway-3.0.1-3.el6.x86_64.rpm
zabbix-proxy-mysql-3.0.1-3.el6.x86_64.rpm
zabbix-proxy-pgsql-3.0.1-3.el6.x86_64.rpm
zabbix-proxy-sqlite3-3.0.1-3.el6.x86_64.rpm
zabbix-sender-3.0.1-3.el6.x86_64.rpm
zabbix-server-mysql-3.0.1-3.el6.x86_64.rpm
zabbix-server-pgsql-3.0.1-3.el6.x86_64.rpm

~/rpmbuild/RPMS/noarch/

zabbix-web-3.0.1-3.el6.noarch.rpm
zabbix-web-japanese-3.0.1-3.el6.noarch.rpm
zabbix-web-mysql-3.0.1-3.el6.noarch.rpm
zabbix-web-pgsql-3.0.1-3.el6.noarch.rpm

次回予告

次回はビルドしたパッケージをインストールするインストール編を公開しようと思います。

4
4
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
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?