2013年11月15日金曜日

Zabbix 2.2をリリースしました!

11月12日、Zabbixの新メジャーバージョンとなるZabbix 2.2をリリースしました。このバージョンではVMware仮想環境の監視機能と、Windows WMIサポートなどの新機能が追加されています。

Zabbix 2.2の新機能の一覧はZabbixドキュメントのWhat's New 2.2.0のページに記載されています。

OSC Kyotoで私が講演した「Zabbix 2.2の新機能とオフィシャルサービスの紹介」の資料はSlideShareで公開していますので、こちらもどうぞ。

あとはZabbix認定パートナーのSRA OSSさんがZabbix 2.2の評価レポートを公開されています。新機能を使ううえでポイントとなるところがまとまっています。

Zabbix 2.2では100以上の新機能と機能改善を行っています。新たな監視機能はもちろん、パフォーマンスも一層向上し、1台の監視サーバーから数万オーダーの監視対象を監視できるようになりました。これまで世界中の大規模システムのカスタマーから寄せられた具体的な報告をベースに改善を行ってきているため、そのパフォーマンス改善はすでに実証済みのものがほとんどです。

1つ前のメジャーバージョンとなるZabbix 2.0リリース以降、世界中のカスタマーやパートナー、コミュニティからおよそ3,000にのぼる機能修正、機能追加要望がありました。Zabbix 2.2リリースまでの1年半の間にそのうちおよそ2,000件の修正、コミット数にして12,000コミットを達成することができました。

外からわからない部分でも内部的には大きく作り替えられているところもあり、大小さまざまな点で改善が行われています。Zabbix 2.2のRPMパッケージ、Debパッケージもすでに公開していますので、ぜひ使ってみてください。yum/aptを使って簡単にインストールできます。インストールなどはドキュメントをご参考ください。

Zabbix 2.2のリリースまでの道のり

本来はZabbix 2.0のリリースから1年後の今年5月に2.2をリリース予定だったのですが、いくつか大きな機能の追加があり、今回は1年リリースは達成できませんでした。長い間待っていただいたユーザーの方々、大変お待たせしました。

今回はZabbix Japan設立後初、かつオフィシャルRPM/Debパッケージを公開してからも初のメジャーバージョンのリリースということもあり、いろいろと準備に奔走しました。リリースは予定より半年遅れたものの、私個人やZabbix Japanとしては多少時間的に余裕があって逆に良かったのかもしれません。

9月にはZabbixパートナー会でZabbix 2.2の共同検証を行い、細かな問題点を洗い出すことができましたし、この時点でZabbix認定パートナーとは2.2の細かな改善点や修正点も共有でき、Zabbix 2.2の活用に向けてもパートナー含め準備を整えることができました。

Zabbix 2.2のリリース前にはBug Squashing Eventを開催し、コミュニティユーザーと共同でRC前の1日の間に159コミット、37件のバグ修正を行いました。クオリティもこれまでのリリースに比べて向上しています。イベント前後でWebインターフェースの翻訳も完了させることができ、日本語のインターフェースは翻訳率100%に1番乗りでした。

今回はこのイベント自体も初開催だったためアナウンスが十分ではなかったこともあり、私も参加していた夕方以降(日本時間)で知っている限り、残念ながら日本からの参加や報告はなかったように思います。次回2.4のときも同じようにリリース前のクオリティ向上のためのイベントが開催されると思いますので、ぜひ参加してみてください。英語で海外のエンジニアとコミュニケーションできる絶好のチャンスですし、不安なところがあればサポートしたいと思います。

Bug Squashing Event中、隣の席で参加いただいた@qryuuさん、あとインターフェースの日本語訳などを細かく改善していただいた@atanakaさん、どうもありがとうございました!

次の2.4でも再度、1年後のリリースを目指します。以前よりも社内でのワークフローの流れも良くなり、開発スピードは上がってきているので、次回は達成できるのではないかと思っています。期待して待っていてください!

旧バージョンからのアップグレード

日本ではまだZabbix 1.8を利用されているユーザーも多いのではないかと思います。Zabbix 2.0ではローレベルディスカバリによるアイテム/トリガー/グラフ設定の自動作成や、SNMPトラップの設定方法/パフォーマンスの改善、トリガーのメモリキャッシュによるZabbixサーバーのパフォーマンス改善など、Zabbix 2.2では加えてVMware監視機能、Web監視の改善、WMIサポート、さらなるパフォーマンス改善などさまざまな機能追加と改善が行われています。

Zabbix 2.0/2.2にアップグレードすると監視のパフォーマンスが改善されることによってより多くの監視設定ができるようになり、設定管理の手間も大幅に改善されます。ぜひこれを機会にアップグレードを検討してみてください。

ただ、残念ながら1.8以前のバージョンから2.0以降にアップグレードするためには、Zabbixデータベースの過去の監視データが保存されている領域の変換処理が必要となり、多くのデータが保存されている場合は変換処理に数時間を要します。その間、Zabbixサーバーは停止する必要が出てきてしまいます。(この機能改善はZabbix 1.8の時代にNTTコムテクノロジーさんからの協力で行われたものですので、ZABICOM 1.8を使われている場合はアップグレードの時間はかかりません。)

Zabbix社では世界中の大規模ユーザーのサポートを行う中で、1.8以前から2.0以降へ、監視の停止時間を最大で数分までに抑えてアップグレードするノウハウがあり、Zabbixパートナー会で日本国内のZabbix認定パートナーにはその技術をお伝えしてあります。

Zabbix 2.2リリースにあわせて、Zabbix 2.0/2.2ファストアップグレードサービスも開始しますので、アップグレードしたいけれども不安がある場合はご活用ください。

Zabbix 2.4に向けて

社内でひたすらバグ修正と機能追加を行っている開発チーム、世界中のカスタマーやパートナーからのサポートに答えつつ、コミュニティの対応も行っているサポートチームにひとまずお疲れさまと言いたいところですが、これからZabbix社では次の2.4リリースに向けて議論を行っていきます。

日本国内から要望として多く上がっている機能については、次の2.4リリースに追加すべく私から社内でpushしていきますので、何か要望がある方はイベントなどで私を捕まえていただくとか、twitterで@kodai74もしくは@zabbix_jp宛にメッセージを送るか、公式サポートを利用いただいているユーザー様はパートナー経由でぜひ意見を上げてください。Zabbixはこれまで、ユーザーからの意見を着実に反映して機能強化/改善を行ってきています。

Zabbix 2.4に必ず追加して欲しいという機能があれば、開発サービスも提供しています。2.2で追加されたVMware監視機能、Web監視機能の改善などは、世界中のユーザーから開発サービスを利用して頂いて実現した機能です。Zabbixを個別カスタマイズするくらいなら、開発サービスを利用した方がコミュニティへの還元と、以降のメンテナンスコストの大幅削減を実現できると思います。

最後に

とにもかくにも、Zabbixは世界中の協力的なコミュニティ、ユーザー、カスタマー、パートナーに支えられて日々、順調に開発が進んでいます。引き続き、ご期待&ご協力をよろしくお願いします!

2013年11月3日日曜日

Zabbixで10,000台のサーバーを監視する

Zabbixは重い!というツイートや情報があったりするのですが、海外ユーザーのサポート経験からZabbixのパフォーマンスは驚くほど良くなっていると思っていて、どこに違いがあるのか不思議に思っていたりします。

Zabbix社で大規模システムというと、監視対象が数千台規模以上、1秒あたりの監視項目数(Zabbixのダッシュボードやレポートメニューから見れる値、以降nvpsと書きます)が1000を超えるくらいからです。本社ではこのnvpsの値が1万に到達しようとしているユーザーをサポートしています。

海外のZabbixサポートユーザーはボトルネックになっている点についてZabbix本体に修正要望を出し、Zabbix本体のパフォーマンスを上げつつ監視規模を拡大していっています。(自分たちである程度修正できるだけの技術力は持ちながらも)そうやって自社での個別ソース修正などを避けることで不要な運用コストを削減しているようです。本社に行ってサポートの仕事をし始めたころ、海外のユーザーはOSSをよく理解し、サポートをうまく活用してるんだなぁと関心したものでした。(バグについても同様です)

そうやってマイナーバージョン、メジャーバージョンごとにパフォーマンスが改善されて今があります。実際にユーザーが大規模環境で使っている以上、パフォーマンスが悪いはずはないと思ってます。

ちなみに、海外のユーザーはZabbixサーバーを複数台に分けることはあまり好まないようです。そもそも複数台に分けると監視設定の管理などの運用コストが高くなるため、それを嫌っているのだろうと思っているのですが実際に聞いたことはないので真相は不明です。

ということで、Zabbixのパフォーマンスはそんなに悪くないよ!ということを自分でも確認するためにも、今回はそこそこのハードウェアで10,000台の監視ができるかどうか?というパフォーマンステストを行ってみました。

利用したサーバーのスペックはこちら。1Uタイプのサーバーを購入したことを想定して、それほど高価にならないスペックで構成してみました。

  • CPU: Intel Xeon E3-1240 v2 (4C/8T 3.4GHz)
  • メモリ: DDR3-1600 16GB
  • RAIDカード: LSI MegaRAID SAS 8708EM2 (3GBps/BBWC付き 128MBキャッシュ)
  • ディスク: Seagate 3.5inch SATA HDD 64Mキャッシュ x2 RAID 1構成

RAIDカードだけ古いのですが、手元に余っていたのがこれだけだったのでご勘弁を。SATAを利用しているのでそれほどパフォーマンスに影響はないかなと思っています。

パフォーマンスの測定方法

日本ではRHELやCentOSが使われることが多いと思うので、上記サーバーにCentOS 6.4 x86_64をインストルし、MySQL 5.1、Zabbix 2.0.9をインストールしてテストを行います。

さすがに監視対象を数千台も用意できないので、VMware上で3台ほどLinuxサーバーを起動してZabbixエージェントをインストール、Zabbixに同じIPで異なるホストを登録していきます。Zabbixのエージェントは動作が軽量なので、これでも十分耐えられます。

監視にはZabbix 2.0.9に標準で付属するTemplate OS Linuxを利用します。デフォルトでは監視間隔が短めなので、すべての監視項目を5分間隔の監視に変え、過去データの削除処理の負荷を見るためにヒストリの保存期間を7日に変更しています。ローレベルディスカバリも動作するとだいたい1ホストあたり45監視項目になります。

MySQLの初期設定

MySQLには以下の基本的な設定を入れてから起動してます。他にもパフォーマンス改善のためのチューニング設定はありますが、とりあえずはベーシックなチューニングを行っています。

innodb_file_per_table
innodb_buffer_pool_size=12G
innodb_log_file_size=256M
innodb_log_files_in_group=2
innodb_flush_method=O_DIRECT

また、RHEL/CentOSに付属のMySQLはRHEL/CentOS 6.3以降でInnoDB Pluginが利用できるようになっています。InnoDB Pluginを利用することで、内部の書き込みスレッドを複数起動し書き込みパフォーマンスが向上します。

/etc/my.cnfに以下の行を追加するだけでInnoDB Pluginを有効にすることができるので、これを設定しない手はありません。今回は最初からInnoDB Pluginを有効にした状態でテストを行っています。

ignore-builtin-innodb
plugin-load=innodb=ha_innodb_plugin.so;innodb_trx=ha_innodb_plugin.so;innodb_locks=ha_innodb_plugin.so;innodb_lock_waits=ha_innodb_plugin.so;innodb_cmp=ha_innodb_plugin.so;innodb_cmp_reset=ha_innodb_plugin.so;innodb_cmpmem=ha_innodb_plugin.so;innodb_cmpmem_reset=ha_innodb_plugin.so

RAIDカードの設定

ライトキャッシュの効果を見たかったので、最初はRAIDカードをWrite Throughモードで動かしています。負荷が高くなったときにライトキャッシュをONに設定してみます。

パフォーマンスの見方

パフォーマンステストはCPUロードアベレージ、CPU使用率、Zabbixのプロセスのビジー率、監視アイテムのキューを見ながら、

  • CPUロードアベレージ、CPU使用率が高くなっていないか
  • Zabbixプロセスのビジー率が高くなっていないか(70%以下が目安)
  • アイテムのキューが溜まっていないか

という点を見ていきます。基本的にはアイテムのキューの数が増えなければ遅延なく監視できていると判断できます。

では、パフォーマンステストを行っていきます。

MySQL 5.1、5000監視対象

とりあえず5000ホストを登録。アイテム数が22万、720nvpsほどになってます。

mysql51-5000-status

このときのパフォーマンスグラフです。まだロードアベレージやCPU使用率は余裕があります(上の2つのグラフ)。キューも溜まっていません(右下のグラフの赤い線)が、housekeeperプロセスのビジー率が1時間に1回高くなっていることが分かります(右真ん中のグラフの黄色線)。

housekeeperというのは過去のデータを削除するためのプロセスなのですが、大規模になるとデータ数も多くなり、削除するデータを探す->削除するという処理に負荷がかかっていることが分かります。

Mysql51 5000 screen

housekeeperが重くなることは想定済みなので、あとでDBのパーティショニングを行いたいと思います。この時点では他の点ではほとんど負荷がない状況なので、とりあえずこのまま1万台までホストを追加してみます。

MySQL 5.1、10000監視対象

ホストを10000台まで追加してみました。アイテム数45万、1400nvpsほどになっています。

Mysql51 10000 status

さすがにこのくらいになるとキューが溜まっていて、スムーズに処理ができないようになってきました。ただ、ロードアベレージとCPU使用率はそれほど高くないですが、history syncerのビジー率が100%になっている(右真ん中グラフの赤線)ことと、history write cacheの空き率(左下グラフの青線)がときどき0%になっています。

history syncerは収集したデータをメモリキャッシュからDBに書き込むためのプロセスで、DBへの書き込みがボトルネックになっていることが分かります。

Mysql51 10000 screen

実はこのあとhousekeeperを止めてDBのパーティショニングを行ったのですが、パフォーマンスの改善は見られませんでした。上記のグラフの通り、housekeeperプロセスが1時間に1回動いたとき、housekeeperのビジー率は高いものの、そのときにCPUやI/O負荷に与える影響はそれほど大きくなっていないため、止めてもそれほどシステムへの負荷は変わらなかったようです。(ちなみにこの時点でZabbixのDBはトータル100GBほどありました。)

MySQL 5.1、10000監視対象、ライトキャッシュ有効

ここでRAIDカードのライトキャッシュを有効にしてみたところ、負荷が大幅に下がりました。グラフ真ん中の少し途切れているところがライトキャッシュを有効にするためにサーバーを再起動したところです。

ライトキャッシュを有効にする前のCPUのI/O waitの値はそれほど高くないものの(およそ25%程度)、RAIDカードを搭載してライトキャッシュを有効にすることでパフォーマンスは大幅に改善されることが分かりました。

Mysql51 writecache

MySQL 5.1、10000監視対象、ライトキャッシュ有効、より細かなチューニング

上記でもかなりパフォーマンスは改善されたのですが、まだ1時間に1度history syncerのビジー率が高くなっていることが分かります。これはトレンド(グラフ用に収集データをサマリしたもの)の計算を行う処理が1時間に1度動作するためです。

デフォルトのTempate OS Linuxに含まれている監視設定には数値データのものが多いため、トレンドデータの計算にも負荷がかかりやすい状況になっているようです。

キューに溜まっているアイテムは0になっているため監視の処理自体はスムーズに行われているものの、このトレンド計算のための負荷が気になります。もうちょっと負荷を抑えられないかということでOS、MySQL含めいろいろとパラメータ調整を行ってみたところ、ある程度まで負荷を落ち着かせることができました。

Mysql51 10000 tuned

ところどころキューが出ていますが(右下グラフの赤線)、多くても2個程度ですし、すぐに0に戻っているためあまり問題にはならなさそうです。

グラフの後ろの方でhistory syncerの負荷が上がっているタイミングがありますが、これは直前にWebインターフェースから長い期間のスクリーンを表示したことによる影響が出ているのだと思われます。I/O負荷などはまだ低いのでもっと監視対象を増やせそうな気もしますが、Webインターフェースからの負荷の影響があることを考えると、このくらいに止めておいた方が良さそうです。

MySQL 5.5、10000監視対象

さて、いろいろなところでMySQL 5.5のパフォーマンスが良いという情報がありますし、海外の大規模Zabbixユーザーの多くはMySQL 5.5(そろそろMySQL 5.6に移行中)です。MySQLを5.5にアップグレードするとパフォーマンスがより改善され、Webインターフェースからのアクセスがあっても安定するのでは、という期待をこめてテストをしてみました。MySQLの設定は上記と同条件で、InnoDB Pluginは5.5でデフォルトとして採用されたためパラメータをコメントアウトしています。

Mysql55 10000 screen

個人的にかなり期待してアップグレードしたのですが...。あまりパフォーマンスが改善された様子はなく、なんだか逆に少し悪くなっているような気もします。5.5で追加されたパラメータなども調整してみたのですがあまり変わらずでした。

history syncerが発行するクエリは単純なinsertですし、InnoDB PluginとMySQL 5.5ではZabbixサーバーが使う部分ではそれほど大きな違いはないのかもしれません。

結論

Zabbix 2.0.9とMySQL 5.1で10,000台、45万アイテム/5分間隔という規模でも監視できることを確認できました。正直、このハードウェアでこれだけ監視できれば十分なのではと思ってます。

また、今回テストした環境ではMySQL 5.1ユーザーは少なくともInnoDB Pluginを利用していれば十分パフォーマンスは得られそうです。苦労してMySQL 5.5にアップグレードしてもあまり効果はないかもしれません。それよりも、適切なハードウェアを選択し、適切なチューニング設定を行う方が大切に見えます。

今回のテストでは主に数値データを収集していますので、ログ、トラップデータ監視が大量にある場合はまた違った結果になるかもしれません。余力があれば、ログやトラップデータを中心に監視した場合のテストと、MySQL 5.6を利用したテストも行ってみたいと思います。

2013年10月30日水曜日

Zabbix Japan 1周年&Zabbix Conference Japanを開催します

気づいたらZabbix Japanを設立してから1年が経ちました。ちょうど昨年の10月1日に設立をしたので、今月の1日に1周年でした。

ラトビアから帰ってきてその日に法務局に設立申請を出しに行ったのがつい最近のようなそうでないような。いずれにしても、なんとか1年無事に過ごすことができました。20社まで増えたパートナーさんや関係者の方々にも色々と助けていただき、会社としても順調に成長できています。どうもありがとうございます!

1周年を記念して、というわけではないですが11月22日に日本で初開催となるZabbix Conference Japanを開催します。

Zabbix conference japan 2013 banner

予想を超えて申し込み開始後すぐに埋まってしまったので来れない方も多いのではないかと思います。会場の都合上どうしても定員は増やせないものでして、来年はもう少し広いところで開催できないか、早いうちから検討したいと思います。

いろいろな企業の方に登壇いただくことができ、パートナーさんからスポンサー協力もたくさん頂きましてどうもありがとうございます。あとは当日、来場いただく方に満足していただけるよう着々と準備を進めていますので楽しみにしていてください。

カンファレンスのあとは懇親会を行います。今回は初開催ということもあり、ちょっと豪華なレストランでの開催を予定してます。懇親会ではZabbixグッズなど当たるイベントを企画中なのですが、なんと、弊社のアプライアンスのハードウェアをご提供頂いているぷらっとホームさんからZabbix Enterprise Appliance ZS-5200を1年の保守までつけて1等賞としてご提供いただけることになりました!ということで懇親会もお楽しみに!

忙しさにかまけてこの1年はあまりコミュニティ活動や勉強会などに割ける時間がほとんどなかったのですが、次の1年はもう少し自由になる時間が欲しいなぁと思ってます。

2013年10月2日水曜日

Zabbix Conference 2013に参加してきました

2013年9月6日(金)から7(土)にラトビアで開催されたZabbix Conference 2013に参加してきました。

参加してきましたというよりは主催者側でもあるのですが、今年はラトビアにいたときとは違って準備の手伝いなどはあまりしていないため、参加者側の気分で参加してました。

今年も20カ国から152人の参加と世界各国からたくさんのユーザーに来ていただきました。Zabbix Conferenceは今年で3回目です。どちらかというと技術トピックが多く回を重ねるごとに内容が濃くなってきているように思います。ユーザーが増えてきて、より深いところまで活用している人が増えてきているのだと思います。

2日間あるトピックのうち2つがZabbix社からのセッション、2つがスポンサーからのセッションで、それ以外はユーザーからのセッションでした。今年日本からはZabbixのパートナーでもあるNTTコムテクノロジーさんとSRA-OSSさんがスポンサーになっていただきました。どうもありがとうございました!

セッションの数は非常に多かったので、個人的に面白いと思ったのは以下のセッションです。

  • Zabby - Zabbix Agent Written in Python : ZabbixエージェントのPython実装 (Evgeniy Petrovさん)
  • Which Database is Better for Zabbix? PostgreSQL vs. MySQL : ZabbixバックエンドDBとしてのPostgreSQLとMySQLのパフォーマンス測定 (SRA-OSS 盛さん)
  • Monitoring Outside the Box. External Factors in Your Datacenter : Zabbixから温湿度、振動、光などのセンサーを監視 (Alf Solliさん)
  • Why on Earth Was I Not Notified!? : Zabbixのアクション実行確認機能 (Volker Fröhlichさん)

あとはZabbixからも以下の2つのセッションがありました。

  • Zabbix: Where We Are (Alexei)
  • The Highlights of Zabbix 2.2 (Pavel)

すべてのプレゼンテーションは以下のページから閲覧できます。今後動画の公開も予定されているので、編集が完了次第同じページにアップロードされるはずです。

あとは私が各セッション中にツイートしたものを@snowy_morningさんがまとめてくださったものがあります。

Zabbix Conferenceは毎年開催期間中に参加者も交えたファンスタッフアジェンダという企画があり、今年もボーリングやパーティ、観光など盛りだくさんでした。

いくつか写真を貼っておきます。すべての写真はZabbix社サイトのフォトギャラリーに掲載されているのでこちらもよろしければどうぞ。

Zabbix Conferenceイベントの前夜祭はボーリング

勝ったチームには特大ビールというのは昨年からのお約束ですね

次の日からが本番。今年は開催期間中本当に天気が良かったです。

会場の様子です。

1日目が終わったあとのパーティー

ラトビアでは超有名なバンドらしいのですが…ごめんなさい、知らないです。

パーティーの最中、投票が多い新機能追加要望から1つ選んで2.2に実装しますよ!という企画をやってました。ZBXNEXT-581はローレベルディスカバリに複数のフィルタを追加できる機能です。ただいま絶賛開発中です。

2日目。パーティーの次の日ですけどみなさん真剣に質問してました。

会場ではZabbixグッズも販売してました。このマグカップはいくつか日本に持って帰ってきましたが、大量に持って帰ってこれないので日本国内には20個もないレア物です

最後はAlexeiのクロージングスピーチで終了しました。

これで終わりではなく、そのあと有志をつのってバスに乗り込みルンダーレ宮殿の観光にいきました。

内部はこんな感じ。ベルサイユ宮殿を小さくしたような建築物です。ラトビア観光ではお勧めできる1つです。

そのあとも打ち上げと称した飲み会で結局夜中まで飲んでました。

日本からはちょっと遠いですが、毎年こんな形でZabbix Conferenceは開催されていますので、来年は日本からの参加者をもっと増やしたいですね。Zabbixでもなければラトビアに行く機会もないと思うので、ぜひご参加ください!

2013年4月4日木曜日

第1回Zabbixパートナー会を開催しました

本日、第1回Zabbixパートナー会を開催しました。

Zabbix Japanの設立時にもパートナー企業の方々に集まっていただいてZabbix Japanの設立目的などの説明を行ったのですが、そのときは11社28名の参加、今回は14社40名の参加とパートナー企業様も増えてきています。

今回はラトビアの本社からCEOのAlexeiにも来てもらって、冒頭の挨拶をしてもらいました。私からはこの会の設立主旨、今後Zabbix Japanから提供するサービスや、今検討しているサービス、Zabbix 2.2の新機能などについて説明を行いました。

ご存知の通りZabbix社はZabbixソフトウェアをオープンソースで公開しているわけですが、開発自体は企業で行っています。当然、自分たち(社員)が生活していくための最低限の収益が必要なわけで、その大部分はテクニカルサポートトレーニング開発サービスです。

そういった意味ではZabbixはパートナーとサポートカスタマーからのスポンサーシップで開発が継続できているんだ、という気持ちで日々仕事をしてます。

Zabbix Japanはパートナー経由でのみオフィシャルサポートを提供していますので、日本ではパートナー企業と一緒に成長し、良いサービスを継続的に提供していくことがとても大切だと考えています。「成長」にもいろいろありますが、一番重要なのは技術力ですから、

  • Zabbixの新バージョンについての情報
  • 既知の問題など
  • 私を含め、Zabbix社が持っている情報やノウハウ

などをパートナーとうまく共有できるような仕組みを作っていきたいと考えています。

一方向の情報発信だけだと長続きしないので、パートナー各社がそれぞれ実施していて、かつ手間を省きたいと考えている部分。例えば新メジャーバージョンの機能検証などは共同で実施できると良いですね。

具体的にどういったことを実施していくかなど決めなければいけないことはたくさんありますが、パートナー支援のために日本に帰ってきて支社を設立したので、今年はパートナーとどうやって密にコミュニケーションを取っていくかを考えて実行に移していく1年にしたいと思っています。

終了後には懇親会も開催しました。各パートナーの方に自己紹介いただいたりして、交流もいただけたようで良かったです。また定期的に開催していきたいと思います。

2013年3月10日日曜日

Zabbixオフィシャルリポジトリを公開しました

ZabbixオフィシャルRPM/Debリポジトリを公開しました。

以前の記事で事前公開していたものと全く同じ構成で、正式にGPG署名されたものを公開しています。

正式公開にあたってyumやaptによるインストールとアップデートができるようになっていますので、ここではリポジトリの登録方法を紹介します。正式なドキュメントの方もあわせてご参考ください。

RHEL、CentOS用yumリポジトリの登録方法

RHEL、CentOSのバージョンによって以下のようにリポジトリ登録用RPMをインストールしてください。

  • RHEL5/CentOS5
  • # rpm -ivh http://repo.zabbix.com/zabbix/2.0/rhel/5/x86_64/zabbix-release-2.0-1.el5.noarch.rpm
  • RHEL6/CentOS6
  • # rpm -ivh http://repo.zabbix.com/zabbix/2.0/rhel/6/x86_64/zabbix-release-2.0-1.el6.noarch.rpm

上記パッケージのインストールが完了したら、yumリポジトリを利用できるようになっていますので、以下のコマンドでZabbixサーバーとエージェントをインストールできます。

# yum install zabbix-agent zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese

日本語環境で利用する場合はzabbix-web-japaneseパッケージをインストールしてください。このパッケージをインストールしない場合はグラフで日本語が正しく表示されません。依存関係で必要なものはすべて自動解決されてインストールされます。Zabbixサーバーの動作に必要なfping、iksemel、libssh2パッケージなどもオフィシャルリポジトリで用意していますので、epelなど他のリポジトリを追加で登録する必要はありません。

zabbix_getコマンドとzabbix_senderコマンドは別パッケージに別れていますので、必要に応じてzabbix-getパッケージとzabbix-senderパッケージを指定してインストールしてください。

以降のインストール手順は事前公開の記事の「データベースの設定と初期データのインポート」以降と同様です。

Debian、Ubuntu用aptリポジトリの登録方法

ZabbixオフィシャルリポジトリではDebian 6、Ubuntu 10.04 LTS向けのdebパッケージとリポジトリも公開しています。Ubuntu 12.04 LTS向けのパッケージは現在準備中です。OSによって以下のコマンドでリポジトリ登録用debパッケージをインストールしてください。

  • Debian 6
  • # wget http://repo.zabbix.com/zabbix/2.0/debian/pool/main/z/zabbix-release/zabbix-release_2.0-1squeeze_all.deb
    # dpkg -i zabbix-release_2.0-1squeeze_all.deb
    # apt-get update
  • Ubuntu 10.04 LTS
  • # wget http://repo.zabbix.com/zabbix/2.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_2.0-1lucid_all.deb
    # dpkg -i zabbix-release_2.0-1lucid_all.deb
    # apt-get update

DebianやUbuntuの場合、dbconfigの機能によって自動的にデータベースの作成と初期DBのインポートが行われるようになっているのですが、MySQLの場合データベースのエンコードがlatin1のままになってしまいます(dbconfig側の設定で指定できないためです。PostgreSQLの場合は問題ありませんし、Debian 7もしくはUbuntu 12.04では修正されると思われます)。そのため先にMySQLデータベースのインストールとデフォルトエンコードの設定を行った上でZabbixのパッケージをインストールする必要があります。

以下のコマンドでMySQLサーバーをインストールします。インストール途中にMySQLのrootアカウントのパスワードを聞かれますので設定しておいてください。

# apt-get install mysql-server

/etc/mysql/my.cnfの設定を変更し、デフォルトのキャラクタセットを指定します。

[mysqld]
...

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

...
[mysqld_safe]

設定を反映させるためにMySQLを再起動します。

# /etc/init.d/mysql restart

また、日本語環境で利用するためにグラフ用のフォントを先にインストールしておきます。おすすめはvlgothicフォントまたはIPAフォントです。

# apt-get install ttf-vlgothic
または
# apt-get install otf-ipafont-gothic

ここまで設定したらZabbixのパッケージをインストールします。DebianやUbuntuでは日本語ゴシックフォントがインストールされていれば、自動的にそのフォントを利用するようになっています。途中でdbconfigを利用する選択を行うと、MySQLのrootアカウントのパスワードとZabbixの初期DB接続用のパスワードが聞かれますので入力してください。dbconfigがZabbixの初期DB作成とDB接続用の設定を行ってくれます。

# apt-get install zabbix-agent zabbix-server-mysql zabbix-frontend-php

以降のインストール手順は事前公開のときの記事の「Webインターフェースの設定」以降と同様です。

今後のZABBIX-JP配布のRPMパッケージについて

ZabbixからオフィシャルのRPM/Debパッケージが正式公開されましたので、今後はZABBIX-JPではRPMパッケージの作成は行いません。ZABBIX-JPではオフィシャルリポジトリの公開を待っていたためZabbix 2.0のパッケージは作成していませんでした。Zabbix 1.8はすでに古いですし、2.0で解決されている根本的な問題がいくつかあります。

また、Zabbix 1.8からZabbix 2.0のアップグレードは履歴データのテーブルの変換をともなうため、1.6->1.8や2.0->2.2のアップグレードと比較すると時間がかかります。監視を無停止でアップグレードする方法もあるのですが、通常は履歴データの量に応じて数十分から数時間程度かかると考たほうが良いです。そういったことも含め、今後Zabbixをインストールされる場合はオフィシャルのZabbix 2.0パッケージをインストールすることをお勧めします。