2012年5月31日木曜日

Zabbix SIAのオフィシャルRPMパッケージの事前公開

2013/3/7更新: Zabbix SIAオフィシャルのRPM/Debパッケージリポジトリが公開されました。yumやaptも利用できます。今後はこちらのマニュアルを参考に2.0パッケージのインストールを行ってください。

Zabbix SIAでは現在オフィシャルRPM/Debパッケージを公開するべく作業を進めています。

本当は2.0のリリースにあわせてパッケージを公開できれば良かったのですが、パッケージ公開サーバの準備が遅れているため公開することができませんでした。

とはいえある程度パッケージは完成していますし、できるだけ早めに使い始めてもらいたいということで、会社に許可を得てこのblogで先行してテスト版パッケージを公開できることになりました。

とりあえずRHEL/CentOS向けのRPMのみですが、準備ができ次第Debianパッケージも公開しようと思います。また、テスト版と言っているのはまだGPG署名が入っていないからで、パッケージ構成や基本的な部分はリリース版と変わらないと思います。何か問題や提案があればこのblogにコメントいただくか、Twitterの@kodai74までご連絡ください。

多言語に対応しなければいけないので、これまであったFedora, EPEL, ZABBIX-JPなどのパッケージとは構成が多少異なります。インストールは以下の方法を参考にしてください。

RPMファイル一式のダウンロード

こちら(Zabbix SIAからオフィシャルリポジトリが公開されました。yum/aptリポジトリを利用する方法はこちらを参照してください。)から適切なOS, アーキテクチャのものをダウンロードしてください。Zabbix関連のパッケージはzabbixディレクトリ以下に、Zabbixの動作に必要な関連パッケージはnon-supportedディレクトリ以下に置いてあります。

Zabbixサーバ, Webインターフェース、Zabbixエージェントのインストール

先に必要となるパッケージをインストールします。まずはOSの標準リポジトリから必要なものをインストール

# yum install mysql-server curl net-snmp unixODBC OpenIPMI-libs httpd php php-bcmath php-gd php-mbstring php-mysql php-xml ipa-pgothic-fonts

※RHEL6系の場合はipa-pgothic-fontsの代わりにvlgothic-p-fontsをインストールしてください

次に上記URLからダウンロードした以下のRPMをインストールします。

# rpm -ivh fping-2.4b2-16xxx.rpm \
           iksemel-1.4-2.xxx.rpm \
           libssh2-1.4.0-2xxx.rpm

最後にZabbix関連のパッケージをインストールします。下記はデータベースとしてMySQLを利用する場合です。

# rpm -ivh zabbix-2.0.0-1.xxx.rpm \
           zabbix-agent-2.0.0-1.xxx.rpm \
           zabbix-server-2.0.0-1.xxx.rpm \
           zabbix-server-mysql-2.0.0-1.xxx.rpm \
           zabbix-web-2.0.0-1.xxx.rpm \
           zabbix-web-mysql-2.0.0-1.xxx.rpm \
           zabbix-web-japanese-2.0.0-1.xxx.rpm

zabbix-web-japaneseパッケージがWebインターフェースの日本語フォント設定を行うようになっているので、日本語環境ではこのパッケージを入れないとグラフやマップなどで文字化けが発生します。

インストールが完了したら、続いて初期設定を行います。

データベースの設定と初期データのインポート

初めてMySQLを起動する場合、起動前に/etc/my.cnfには最低限以下のチューニング設定を行っておきましょう。

[mysqld]
...

innodb_file_per_table
innodb_buffer_pool_size=512M # 搭載メモリによって適切な値を設定
innodb_log_file_size=64M  # innodb_buffer_pool_sizeを増やしたらこちらも増やしておく

...
[mysqld_safe]

データベースがZabbix専用であれば、同じく[mysqld]セクションに以下の設定も入れておくとMySQLサーバ全体でエンコードをUTF-8にできるのでトラブルが少なくなると思います。

default-character-set=utf8

MySQLを起動して、データベースの作成とユーザの作成、初期データの登録を行います。ここではデータベース名は「zabbix」、接続ユーザ名も「zabbix」、パスワードは「zabbixpass」で設定しています。

# service mysqld start
# mysql -uroot
mysql> create database zabbix character set utf8;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbixpass';
mysql> exit
# mysql -uroot zabbix < /usr/share/doc/zabbix-server-mysql-2.0.0/create/schema.sql
# mysql -uroot zabbix < /usr/share/doc/zabbix-server-mysql-2.0.0/create/images.sql
# mysql -uroot zabbix < /usr/share/doc/zabbix-server-mysql-2.0.0/create/data.sql

my.cnfでdefault-character-setを設定していない場合は、データベース作成時のcharacter setの指定を忘れないようにしてください。忘れるとWebインターフェース上で一部の日本語が文字化けします。

Zabbixサーバとエージェントの設定

/etc/zabbix/zabbix_server.confの以下の箇所を変更します。

DBPassword=zabbixpass

Zabbixエージェントはデフォルト設定のままで問題ありません。ここまでできたらZabbixサーバとエージェントを起動します。

# service zabbix-server start
# service zabbix-agent start

Webインターフェースの設定

/etc/httpd/conf.d/zabbix.confのdate.timezone設定のコメントアウトを外し、以下のように設定します。

php_value date.timezone Asia/Tokyo

httpdを起動します。すでにhttpdが起動していた場合は、上記設定を反映させるためにhttpdを再起動してください。

# service httpd start

ブラウザからWebインターフェースにアクセスします。サーバのIPが192.168.1.10の場合はhttp://192.168.1.10/zabbixのように/zabbixをつけてアクセスしてください。

インストーラが表示されるので、画面の通りに従っていけば問題なく完了するはずです。途中データベースの設定を入力する必要がありますが、ここは上記のMySQL設定の値を入力します。

ちなみに、2.0はインストーラ画面もカッコ良くなっています。

Webインターフェースへのログインと日本語化

Webインストーラが完了したらログインが面が表示されますので、ユーザ名に「Admin」、パスワードに「zabbix」と入力してログインしてください。

最初の画面は英語ですが、右上の「Profile」をクリックして、

Language設定でJapanese(ja_JP)を選択してSaveボタンを押せば、インターフェースが日本語で表示されるようになります。

ローカルホストの監視

設定に問題がなければ、すでに監視が始められる状態になっています。上部メニューの[設定]-[ホスト]をクリックして、ホストリストの「Zabbix server」の「無効」をクリックして有効化するとローカルホストの監視が開始されます。

収集されたデータはメニューの[監視データ]-[最新データ]から確認することができます。

この画面からリストの右にある「グラフ」をクリックすることでグラフを表示することもできます。インターフェースには色々な画面があるので、Zabbix 2.0でどのようなことができるのか、ぜひ一度インストールして試してみてください。

Zabbix SIAのサイトにはZabbix 2.0のその他のページのスクリーンショットも公開されています。こちらもご参考にどうぞ。

7 件のコメント:

Mineyuki Shimabukuro さんのコメント...

パッケージの配布ありがとうございます。ソースでインストールしてみようかと思ってたところだったので、
さっそく、CentOS release 6.2 64bitにインストールを実施しました。
インストール時にいくつか引っかかった点があったので参考として記載しておきます。


1. libssh2、libssh2-develは、OS標準のパッケージが既にインストールされていました。

※OS標準のものをそのまま使用しました。

# rpm -e --test libssh2 libssh2-devel
エラー: 依存性の欠如:
libssh2.so.1()(64bit) は (インストール済み)libcurl-7.19.7-26.el6_2.4.x86_64 に必要とされています
libssh2.so.1()(64bit) は (インストール済み)curl-7.19.7-26.el6_2.4.x86_64 に必要とされています
libssh2 >= 1.2 は (インストール済み)libcurl-7.19.7-26.el6_2.4.x86_64 に必要とされています


2. iksemel-develなどもまとめてインストールしようとするとエラーとなりました。

# rpm -ivh iksemel-*
エラー: 依存性の欠如:
gnutls-devel は iksemel-devel-1.4-2.el6.x86_64 に必要とされています


★単体インストールでOK

# rpm -ivh iksemel-1.4-2.el6.x86_64.rpm
準備中... ########################################### [100%]
1:iksemel ########################################### [100%]



3. service mysqld startのスタート時に[Warning]が出力されました。
※'--default-character-set'は近い将来使えなくなるという警告のようなので問題はないと思ってます。

# service mysqld start
MySQL データベースを初期化中:

・・・略 ・・・

Installing MySQL system tables...
120607 17:04:05 [Warning] '--default-character-set' is deprecated and will be removed in a future release. Please use '--character-set-server' instead.
OK
Filling help tables...
120607 17:04:05 [Warning] '--default-character-set' is deprecated and will be removed in a future release. Please use '--character-set-server' instead.
OK



4. WEBインターフェースのアクセスができない。
※原因はデフォルトでiptablesが有効になっていたためでした。iptablesを無効に。
本来であればTCP 80,10050,10051を有効?

# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

# service iptables stop
iptables: ファイアウォールルールを消去中: [ OK ]
iptables: チェインをポリシー ACCEPT へ設定中filter [ OK ]
iptables: モジュールを取り外し中: [ OK ]



5. WEBインターフェース上でPHPのエラー

date(): It is not safe to rely on the system's timezone settings.
You are *required* to use the date.timezone setting or the date_default_timezone_set() function.
In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier.
We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead [include/page_header.php:184]


※PHPの設定でタイムゾーンが指定しないと出力される模様
以下手順で回避

# vi /etc/httpd/conf.d/zabbix.conf
--------------------------------------------------------------------
# php_value date.timezone Europe/Riga
php_value date.timezone Asia/Tokyo
--------------------------------------------------------------------
※上記設定変更後、httpdを再起動


6. SELINUXの無効
以前、1.8でインストールが上手く行かなかった経緯があるので念のため。

# vi /etc/sysconfig/selinux
--------------------------------------------------------------------
#SELINUX=enforcing
SELINUX=disabled
--------------------------------------------------------------------
※上記設定後、サーバの再起動


上記を実施し、でWEBインターフェースにログインできるところまで確認しました。
これから監視設定等もさわっていきたいと思います。

taikimen さんのコメント...

私もソースインストールを考えていたところこのPostを見つけました。
早速最新rpmにてインストールを試してみたのですが
CentOS 6系にて

error: Failed dependencies:
   zabbix-server-implementation = 2.0.3-1.el6 is needed by zabbix-server-2.0.3-1.el6.x86_64

という依存関係が解決できずにいます。
zabbix-server-implementationというパッケージがあるのでしょうか?

Shida さんのコメント...

お世話様です。

RHEL6.2 64bitで
ヒストリが「ヒストリ:??????>??????>」となります。英語だと正常なのです。
グラフ等の日本語も正常です。ここだけ文字化けます。

Kodai さんのコメント...

taikimenさん、

返信遅くなりすみません。zabbix-server-2.0.xと、zabbix-server-mysql-2.0.xを同時にインストールしてみてください。

Kodai さんのコメント...

Shidaさん、

MySQLのテーブル作成時にcharacter set utf8を指定しないと、データベースのキャラクタセットがlatin1になり文字化けします。

記事中のMySQLのパラメータやデータベース作成時の手順を再度試してみてください。

千葉直 さんのコメント...

RPMファイル一式のダウンロード「こちらから」のリンク先「http://www.kodai74.net/packages/」に問題があるようです。

Kodai さんのコメント...

千葉直さん、記事の最初にZabbix SIAオフィシャルリポジトリの情報を追記しました。そこに記載しているオフィシャルのリポジトリからダウンロードできます。