2010年11月27日土曜日

CentOS 5.5 + MySQL 5.1.53 + Zabbix 1.8.3

CentOS 5.5上にMySQL 5.1.53をインストールし、さらにそのサーバ上でZabbix 1.8.3を稼働させます。

CentOS 5.5標準のMySQLではバージョンが古いため、新しいバージョンで実装された機能を利用することができません。
ZABBIX-JPのフォーラムを見ていて、MySQL 5.1.53でInnoDB Pluginを利用した環境を構築したいという要望が挙っていたので、どうすれば簡単に構築できるか検証してみました。
極力標準のRPMそのままか、共存できることを意識して構築を進めることとします。

InnoDB Pluginを利用するメリットに関しては、検索すればすぐ出てくるので検索してみてください。

ただし、以下の手順は十分な試験を行っていませんので、ご自身で責任を持ってトライしてください。

----------
1.MySQL 5.1.53のインストール

MySQLのパッケージを
 http://dev.mysql.com/downloads/mysql/
からダウンロードします。

ダウンロードするのは、

 MySQL-server-community-5.1.53-1.rhel5.x86_64.rpm
 MySQL-client-community-5.1.53-1.rhel5.x86_64.rpm
 MySQL-devel-community-5.1.53-1.rhel5.x86_64.rpm

です。
この後の手順で、MySQLのライブラリを利用したコンパイルを行うので、develパッケージも必要です。

ダウンロードしたら、これらのパッケージをインストールします。

 # rpm -ivh MySQL-server-community-5.1.53-1.rhel5.x86_64.rpm MySQL-client-community-5.1.53-1.rhel5.x86_64.rpm MySQL-devel-community-5.1.53-1.rhel5.x86_64.rpm

インストール後、MySQLの設定を変更するため、一度サービスを停止します。

 # service mysql stop

InnoDBのエンジンとしてInnoDB Pluginを利用するため、ベースとなる設定ファイルに変更します。

 # cp /usr/share/mysql/my-small.cnf /etc/my.cnf

/etc/my.cnfのmysqldセクションに、以下のような設定を追加します。

---
[mysqld]
...
ignore-builtin-innodb
plugin-load=innodb=ha_innodb_plugin.so
default-character-set=utf8
innodb_file_per_table
...
---

設定追加後、サービスを起動します。

 # service mysql start

確認方法は、mysqlコマンドで接続してshow pluginsコマンドを実行すると以下のように表示されます。

---
mysql> show plugins;
+------------+----------+----------------+---------------------+---------+
| Name | Status | Type | Library | License |
+------------+----------+----------------+---------------------+---------+
| binlog | ACTIVE | STORAGE ENGINE | NULL | GPL |
| partition | ACTIVE | STORAGE ENGINE | NULL | GPL |
| ARCHIVE | ACTIVE | STORAGE ENGINE | NULL | GPL |
| BLACKHOLE | ACTIVE | STORAGE ENGINE | NULL | GPL |
| CSV | ACTIVE | STORAGE ENGINE | NULL | GPL |
| FEDERATED | DISABLED | STORAGE ENGINE | NULL | GPL |
| MEMORY | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MyISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
| InnoDB | ACTIVE | STORAGE ENGINE | ha_innodb_plugin.so | GPL |
+------------+----------+----------------+---------------------+---------+
10 rows in set (0.01 sec)

mysql>
---


----------
2.phpパッケージの作成

事前に、MySQLのライブラリを利用したビルドができるよう、リンクを作成しておきます。

 # ln -s /usr/bin/mysql_config /usr/lib64/mysql/

RPM作成用のアカウントを作成して、そのアカウントでRPMを作成するためのディレクトリを作成します。

 $ mkdir -p ~/rpm/{BUILD,RPMS,SOURCES,SPECS,SRPMS}

次に、~/.rpmmacrosを作成して、以下の記述を行います。

---
%_topdir /home/ユーザー名/rpm
%_builddir %{_topdir}/BUILD
%_rpmdir %{_topdir}/RPMS
%_sourcedir %{_topdir}/SOURCES
%_specdir %{_topdir}/SPECS
%_srcrpmdir %{_topdir}/SRPMS
---

CentOSのミラーサイトから、phpのSRPMをダウンロードし、RPM作成用のアカウントでインストールします。

 $ rpm -ivh php-5.1.6-27.el5.src.rpm

そのままでは、コンパイル時にエラーとなってしまうので、ソースのtarball内のソースの一部を書き換えて、またもとのtarballに作成し直して置き換えます。

 $ cd ~/rpm/SOURCES/
 $ tar zxvf php-5.1.6.tar.gz
 $ cd php-5.1.6/ext/mysqli

mysqli_api.c内の「gtpr」を「char*」に変更します。

 $ cd ~/rpm/SOURCES/
 $ mv php-5.1.6.tar.gz php-5.1.6.tar.gz.org
 $ tar zcvf php-5.1.6.tar.gz php-5.1.6

置き換えたら、RPMのビルドを実行します。
足らないビルド用のRPMが不足していたら随時インストールします。

 # yum install bzip2-devel curl-devel db4-devel expat-devel gmp-devel aspell-devel httpd-devel libjpeg-devel libpng-devel pam-devel openssl-devel sqlite-devel zlib-devel pcre-devel krb5-devel libc-client-devel cyrus-sasl-devel openldap-devel postgresql-devel unixODBC-devel libxml2-devel net-snmp-devel libxslt-devel libxml2-devel ncurses-devel gd-devel freetype-devel

 $ cd ~/rpm/SPECS/
 $ rpmbuild -bb --define 'dist .el5' php.spec


----------
3.Zabbixパッケージの作成

Zabbixのパッケージを作成するために必要なパッケージをインストールします。

 # yum install gnutls-devel OpenIPMI-devel

以下のパッケージに関しては、ZABBIX-JPが公開しているRPMをダウンロードしてインストールしておきます。

 # wget http://www.zabbix.jp/binaries/relatedpkgs/rhel5/x86_64/fping-2.4b2-16.el5.JP.x86_64.rpm
 # wget http://www.zabbix.jp/binaries/relatedpkgs/rhel5/x86_64/iksemel-1.2-13.el5.JP.x86_64.rpm
 # wget http://www.zabbix.jp/binaries/relatedpkgs/rhel5/x86_64/iksemel-devel-1.2-13.el5.JP.x86_64.rpm
 # wget http://www.zabbix.jp/binaries/relatedpkgs/rhel5/x86_64/libssh2-1.2.5-1.el5.JP.x86_64.rpm
 # wget http://www.zabbix.jp/binaries/relatedpkgs/rhel5/x86_64/libssh2-devel-1.2.5-1.el5.JP.x86_64.rpm
 # rpm -ivh fping-2.4b2-16.el5.JP.x86_64.rpm iksemel-1.2-13.el5.JP.x86_64.rpm iksemel-devel-1.2-13.el5.JP.x86_64.rpm libssh2-1.2.5-1.el5.JP.x86_64.rpm libssh2-devel-1.2.5-1.el5.JP.x86_64.rpm

RPM作成用のユーザでZabbixのSRPMをインストールしてビルドを実行します。

 $ rpm -ivh zabbix-1.8.3-1.el5.JP.src.rpm
 $ cd ~/rpm/SPECS/
 $ rpmbuild -bb --define 'dist .el5' zabbix.spec


----------
4.Zabbixのインストール

Zabbixをインストールするために必要なパッケージを事前にインストールします。

 # yum install php php-bcmath php-gd php-mbstring php-xml php-common php-pdo

独自に作成したphp-mysqlをインストールします。

 # cd ~RPM作成用ユーザ/rpm/RPMS/x86_64/
 # rpm -ivh php-mysql-5.1.6-27.el5.x86_64.rpm

Zabbixをインストールします。

 # rpm -ivh zabbix-1.8.3-1.el5.x86_64.rpm zabbix-agent-1.8.3-1.el5.x86_64.rpm zabbix-server-1.8.3-1.el5.x86_64.rpm zabbix-server-mysql-1.8.3-1.el5.x86_64.rpm zabbix-web-1.8.3-1.el5.x86_64.rpm zabbix-web-mysql-1.8.3-1.el5.x86_64.rpm

以降、DBの作成などは通常のZabbixのインストールと同様です。

----------

0 件のコメント:

コメントを投稿