2012年5月31日木曜日

Zabbix 2.0をAmazon Linux上で動かしてみよう

これは、Zabbix 2.0のRPMを作成する手順の紹介です。

いつものように、SRPMをgithub上に置いておきました。
https://github.com/atanaka7/zabbix-jp-amzn1

これを利用して、RPMでのインストールを行います。

まずは、RPMの作成です。
先のgithub上の「zabbix-2.0.0-1.amzn1.src.rpm」をダウンロードしておきま
す。
あと、Amazon Linuxでは標準的に用意されていない、もしくはより適したRPM
をZABBIX-JPのダウンロードサイトからダウンロードしておきます。

i386用:
 http://www.zabbix.jp/binaries/relatedpkgs/rhel6/i386/fping-2.4b2-16.el6.JP.i686.rpm
 http://www.zabbix.jp/binaries/relatedpkgs/rhel6/i386/iksemel-1.4-2.el6.JP.i686.rpm
 http://www.zabbix.jp/binaries/relatedpkgs/rhel6/i386/iksemel-devel-1.4-2.el6.JP.i686.rpm

x86_64用:
 http://www.zabbix.jp/binaries/relatedpkgs/rhel6/x86_64/fping-2.4b2-16.el6.JP.x86_64.rpm
 http://www.zabbix.jp/binaries/relatedpkgs/rhel6/x86_64/iksemel-1.4-2.el6.JP.x86_64.rpm
 http://www.zabbix.jp/binaries/relatedpkgs/rhel6/x86_64/iksemel-devel-1.4-2.el6.JP.x86_64.rpm

これらのファイルをEC2上のAmazon Linuxのインスタンスにアップロードしま
す。
ここでは、ec2-userを利用して作業を行うこととします。

まず、アーキテクチャに合わせて上記の3つのRPMを

 $ sudo yum localinstall RPMファイル名 .....

でインストールしておきます。
続いて、RPMをビルドするための環境構築です。

 $ sudo yum install rpm-build
 $ sudo yum groupinstall 'Development tools'
 $ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
 $ vi ~/.rpmmacrosを作成して、以下の記述を行います。

-----
%_topdir /home/ec2-user/rpmbuild
%_builddir %{_topdir}/BUILD
%_rpmdir %{_topdir}/RPMS
%_sourcedir %{_topdir}/SOURCES
%_specdir %{_topdir}/SPECS
%_srcrpmdir %{_topdir}/SRPMS
-----

そして、RPMのビルドです。

 $ rpmbuild --rebuild zabbix-2.0.0-1.amzn1.src.rpm

と実行すると、

-----
Installing zabbix-2.0.0-1.amzn1.src.rpm
error: Failed build dependencies:
        mysql-devel is needed by zabbix-2.0.0-1.amzn1.i386
        postgresql-devel is needed by zabbix-2.0.0-1.amzn1.i386
        net-snmp-devel is needed by zabbix-2.0.0-1.amzn1.i386
        openldap-devel is needed by zabbix-2.0.0-1.amzn1.i386
        gnutls-devel is needed by zabbix-2.0.0-1.amzn1.i386
        iksemel-devel is needed by zabbix-2.0.0-1.amzn1.i386
        sqlite-devel is needed by zabbix-2.0.0-1.amzn1.i386
        unixODBC-devel is needed by zabbix-2.0.0-1.amzn1.i386
        libssh2-devel >= 1.0.0 is needed by zabbix-2.0.0-1.amzn1.i386
        java-devel >= 1.6.0 is needed by zabbix-2.0.0-1.amzn1.i386
        curl-devel >= 7.13.1 is needed by zabbix-2.0.0-1.amzn1.i386
        OpenIPMI-devel >= 2.0.14 is needed by zabbix-2.0.0-1.amzn1.i386
        gettext is needed by zabbix-2.0.0-1.amzn1.i386
$
-----

のように足りないものがあった場合は、上記のように表示されますので、それ
ぞれをインストールします。

 $ sudo yum install mysql-devel postgresql-devel net-snmp-devel .....

インストールできたら、再度ビルドの実行です。

 $ rpmbuild --rebuild zabbix-2.0.0-1.amzn1.src.rpm

正常にビルドが終了すると、/home/ec2-user/rpmbuild/RPMS/ 以下にRPMファ
イルが作成されます。
注:Zabbix 2.0.0からzabbix-webパッケージがnoarchの下に出力されます。

ビルドできた各RPMも、

 $ sudo yum localinstall RPMファイル名

でインストールすると、依存関係を解決して依存するRPMも一緒にインストー
ルできるので便利です。

i386用とx86_64用は、それぞれの環境でビルドしてください。
全てx86_64の環境なら1台だけビルド用に構築して、他のサーバはビルドでき
たRPMを利用すれば大丈夫です。

RPMができたら、インストールや設定は以下のURLなどをご参照あれ。
http://www.slideshare.net/BlueSkyDetector/zabbix20
http://thinkit.co.jp/book/2012/04/13/3503