2010年11月22日月曜日

MacBook Air 11インチを購入しました


MacBook Air 11インチモデルを購入しました。Apple Storeで以下のカスタマイズを行っています。
  • CPU: 1.6GHz
  • メモリ: 4GB
  • SSD: 128MB
  • USキーボード
もともとはMacBook Pro 13インチを常に持ち歩いてメインマシンとして使っていました。おそらく同じパターンで乗り換えを検討している人も多いだろうということで、実際に数日使ってみた感想を書いておきます。

良い点

  • とにかく軽い。MacBook Pro 13インチは2kg程度あるので、約半分の重さは持ち歩く際にかなり変わってきます。加えてMacBook AirはACアダプタも小さくて軽いので、両方持ち歩いている人はACアダプタ分も軽量化できます。
  • パフォーマンスはとてもよいです。私は基本的にオフィス用途とLinux関連のソフトウェア検証/開発を行っていますが、CPUパワーが必要ではない環境だとSSD効果もあって逆に1つ1つの操作は反応が良いかもしれません。
  • バッテリーは公称通り4〜5時間程度もっています。テキスト入力など軽い操作を行っているときは上部のバッテリーアイコンには残り時間が5:30とか6:30と出るときもあります。E-Mobileを使うと2〜3時間程度になりますが、思っていたよりも十分実用に耐えそうです。
  • USBポートが両側に別れているのは使いやすいです。MacBook Proのようにポートが2つ並んでいるためにUSB機器が干渉することがありません。

不満点

  • キーボードが打ちづらい。キーピッチはMacBook Pro 13インチと同じなのですが、ストロークがとても浅いのでキー入力の感覚はかなり変わります。慣れれば気にならないかもしれませんが日々のメインマシンとして使うにはつらそうです。
  • 液晶がグレードダウン。MacBook Proと比べると液晶のコントラストが低くて暗いように感じます。全体に色が淡い感じになったイメージです。MacBook Proとは異なる形式のパネルを使っているという情報もあるのでそのためでしょうか。
  • ディスク容量が小さい。これはSSDなので仕方がないですね。富士通からMacBook Airに搭載されているものと同タイプのSSDが販売されることも決まっているようなので、数年後にはより大容量のSSDに交換できるようになっていることを期待しています。

いくつか不満な所はありますが、パフォーマンスはMacBook Proとそれほど変わらず薄く軽くなっているわけですから、トータルで見るとオススメです。私の場合は普段使いにはキーボードとディスプレイを外付けするようにして上記の不満点はカバーするようにしています。

その他、MacBook Airについていくつか使ってみて分かった情報を書いておきます。
  • VMware FusionをインストールしてLinuxを動作させています。パフォーマンスにも問題なく、十分実用に耐えます
  • 会社では21インチのディスプレイにつないで使っています。グラフィックまわりはもたつくことなく表示できています
  • 会社でモニターに接続するためにminiDisplayPort-DVIアダプタを購入しました。純正品3,400円するのですが、楽天のRoydsで購入すると1,420円+送料210円で購入できました。安いので粗悪品かもしれないと心配していたのですが、見た目も悪くなく特に問題なく利用できています。

サードパーティ製品企業に対しても極秘に開発されていたのか、MacBook Air用のケースはほとんどない状態か、あっても高価だったりして気軽に購入できるものがありません。ヨドバシカメラを探してみたところELECOMのアクセサリケースBMA-B5がサイズ的にちょうど良さそうだったので購入しました。



入り口がぴったりすぎて入れるときに傷をつけてしまいそうだったので、普段はファスナーを全開にして使用しています。少し使用していれば緩んできて良い具合になっています。価格も5〜600円程度なのでとあえず傷防止のケースを探している人にはオススメです。


アップル (2010-10-21)
売り上げランキング: 10481


エレコム B5ノートPC対応 アクセサリーケース BMA-B5
エレコム
売り上げランキング: 15813

2010年8月18日水曜日

Zabbixでfpingを使うときの注意点

Zabbixサーバの設定ファイルzabbix_server.confにはSourceIPというオプションがあり、これを設定しておくとエージェントやSNMP、シンプルチェックなどのポーリング監視の際に利用するソースIPを設定できるようになっています。

この設定を利用した場合、pingを利用した監視(icmppingやicmppingsec)の場合にはfpingの-Sオプションを利用するようになっています。ところが-SオプションはDebian/Ubuntuに含まれているfpingには存在するのですが、標準のfpingやFedoraに含まれるfpingパッケージ、FrdoraパッケージをRHEL/CentOS用にリビルドしたepelリポジトリのパッケージには存在していません。

そのため、SourceIPオプションを利用した場合はfpingの返り値が「3」(そんなオプションはない!というエラーメッセージのリターンコード)になってしまい、Zabbixの画面上では必ずping監視が失敗してしまいます。

  • Fedora(epelパッケージ)のfpingオプション
Usage: /usr/sbin/fping [options] [targets...]
   -a         show targets that are alive
   -A         show targets by address
   -b n       amount of ping data to send, in bytes (default 68)
   -B f       set exponential backoff factor to f
   -c n       count of pings to send to each target (default 1)
   -C n       same as -c, report results in verbose format
   -e         show elapsed time on return packets
   -f file    read list of targets from a file ( - means stdin) (only if no -g specified)
   -g         generate target list (only if no -f specified)
                (specify the start and end IP in the target list, or supply a IP netmask)
                (ex. /usr/sbin/fping -g 192.168.1.0 192.168.1.255 or /usr/sbin/fping -g 192.168.1.0/24)
   -i n       interval between sending ping packets (in millisec) (default 25)
   -l         loop sending pings forever
   -m         ping multiple interfaces on target host
   -n         show targets by name (-d is equivalent)
   -p n       interval between ping packets to one target (in millisec)
                (in looping and counting modes, default 1000)
   -q         quiet (don't show per-target/per-ping results)
   -Q n       same as -q, but show summary every n seconds
   -r n       number of retries (default 3)
   -s         print final stats
   -t n       individual target initial timeout (in millisec) (default 500)
   -u         show targets that are unreachable
   -v         show version
   targets    list of targets to check (if no -f specified)
  • Ubuntuのfpingオプション
Usage: fping [options] [targets...]
   -a         show targets that are alive
   -A         show targets by address
   -b n       amount of ping data to send, in bytes (default 68)
   -B f       set exponential backoff factor to f
   -c n       count of pings to send to each target (default 1)
   -C n       same as -c, report results in verbose format
   -e         show elapsed time on return packets
   -f file    read list of targets from a file ( - means stdin) (only if no -g specified)
   -g         generate target list (only if no -f specified)
                (specify the start and end IP in the target list, or supply a IP netmask)
                (ex. fping -g 192.168.1.0 192.168.1.255 or fping -g 192.168.1.0/24)
   -i n       interval between sending ping packets (in millisec) (default 25)
   -l         loop sending pings forever
   -m         ping multiple interfaces on target host
   -n         show targets by name (-d is equivalent)
   -p n       interval between ping packets to one target (in millisec)
                (in looping and counting modes, default 1000)
   -q         quiet (don't show per-target/per-ping results)
   -Q n       same as -q, but show summary every n seconds
   -r n       number of retries (default 3)
   -s         print final stats
   -S addr    set source address
   -t n       individual target initial timeout (in millisec) (default 500)
   -T n       set select timeout (default 10)
   -u         show targets that are unreachable
   -v         show version
   targets    list of targets to check (if no -f specified)

また、監視対象ホストのIPアドレスがIPv4とIPv6混在の場合に、IPv6ホストへのPingが失敗する問題もあります。これも同様にDebianパッチで修正されていました。詳細はZABBIX-JPフォーラムへの投稿を参照してください。

ということで、Debianからパッチを持ってきてZABBIX-JP版のRPMに含めてリリースをするようにしました。

Fedoraには標準でZabbixパッケージが含まれているのですが、そのままインストールするとfpingは-Sオプションに対応していないので注意が必要です。

同様にDAGリポジトリなどで公開されているfpingパッケージを利用する場合でも、-Sオプションが利用できるパッチが適用されているかを確認してから使った方が良いです。

そもそも本家のfping自体、2002年からアップデートされていないんですね。利用ユーザもそれなりに多いだろうソフトウェアなのに、各ディストリビューションにはフォークに近いような形で含まれているのはオープンソースの考え方からすると残念な感じがします。

何か理由があるのかもしれませんが、本家にはパッチが反映されないんですかね。

参考情報:

2010年5月22日土曜日

AndroidのZabbixクライアントを試してみた

AndroidにはZabbixクライアントアプリケーションがあるらしいというWebの情報は以前から知っていたのですが、私はAndroid端末を持っていないので試すことができませんでした。今回@BlueSkyDetectorさんからお借りすることができましたのでインストールしてみたのでレポートしておきます。

AndroidマーケットでZabbixと検索すると「Zabbix」と「Zabbix on the go」の2つのアプリが出てきたので、両方ともダウンロードしてインストールしてみました。



Zabbix

まずは「Zabbix」の方から。起動した画面はとてもシンプルです。

「Options」をタッチすると基本的な設定を行う画面が開きます。

「API URL」からWebインターフェースのapi_jsonrpc.phpのURLを、「Username」「Password」にAPIアクセスを許可したユーザのアカウントとパスワードを設定すれば完了です。設定の作りとしては1つのZabbixサーバのクライアントにしかなれないようです。

ホーム画面に戻って「Active Triggers」をタッチするとトリガーの一覧が表示されます。ただこれは現在「障害」の状態になっているトリガーではなく、どうやら設定が有効の状態になっているトリガーの一覧のようです。

テンプレートのトリガー設定まで表示されてしまっているので、あまり使う場面が想像できないのですが、まだ開発途中なのでしょうか。各トリガーの設定をタッチしても何も起こらなかったので、ここから設定が変更できるというわけでもなさそうです。

ホーム画面に戻って、今度はHostsをタッチすると設定されているサーバの一覧が表示されました。

「Zabbix server」をタッチすると、設定されているアイテムの最新データが一覧で表示されます。ZabbixのWebインターフェースから「最新データ」を表示したような感じです。

いまのところ機能としてはこれだけのようです。まだまだ開発途中といった印象でした。

Zabbix on the go

続いて「Zabbix on the go」を起動してみます。起動するとポップアップでZabbixサーバの設定がないことが表示され、設定の追加を促されます。

Zabbixサーバの設定追加画面。こちらはWebインターフェースにアクセスする場合と同じURL(api_jsonrpc.phpまでは含めない)を設定して、アカウントとパスワードを入れれば設定できました。試していないですが、複数のZabbixサーバにも対応しているようです。

設定が完了するとホーム画面に登録したZabbixサーバが表示され、右側に△!マークが出ています。

Zabbixサーバ名をタッチすると下側に現在障害の状態になっているトリガーのリストがスライド表示されました。障害が発生しているかどうかが分かりやすくて良い感じです。

この状態でトリガーのリストをタッチすると「Items」と「Triggers」のタブがある新規画面が開くのですが、エラーが出て先に進むことができませんでした。Zabbixサーバ側のバージョンの問題かと思い1.8.1のサーバに接続してみたのですが変化なしでした。

この画面からより詳細な情報を見れそうな感じなのですが使えずに残念です。開発者のサイトでは他にも以下のことができると解説されています。

  • バックグラウンドで動作させて障害発生時にアラート通知
  • SSL自己証明書を使ったhttps通信をサポート

現時点ではZabbix on the goの方が開発は進んでいて、障害の有無をAndroidから手軽に確認する程度であれば使えると思います。障害の詳細を見たりグラフの表示までできる機能はない(エラーで見れないだけかもしれませんが)ので、結局はブラウザからWebインターフェース経由で確認したり、メールで通知を受けとる必要が出てくるでしょう。まだ両方とも企業のシステムで実用的とはいえないですが、今後に期待したいところです。

ところで、今回初めてAndroidを使ったのですが、iPhoneと違って標準ではスクリーンショットを取る機能がないようでした。結局いつも使っているMacBook Pro(Snow Leopard)にAndroid SDKを入れて、Dalvic Debug Monitor(ddms)からスクリーンショットを取りました。

最初ddms自体が起動しなかったのですが、色々なサイトを参考にして私の環境ではddmsを開いて以下のように修正することで起動できました。

os_opts="-XstartOnFirstThread"
  ↓
os_opts="-XstartOnFirstThread"

私のMacBook Proは64ビットカーネルで起動するようにしているので、32ビットカーネルの場合は"-d32"を追加する必要があるかもしれません。

2010年5月11日火曜日

日経Linux 2010/6月号に「1万円で作る鉄壁のWebサーバ」を執筆しました

2010/5/8日発売の日経Linux第1特集「ケース別最適サーバ自作術」 のPart3に「1万円で作る鉄壁のWebサーバ」を執筆しました。

CentOS 5.4を使ってCMSを使ったセキュアなWebサーバを作るをコンセプトに、インストールから初期設定、ssh、ntp、sudoの活用方法、apache/php、drupal、postfix、logwatch、munin、awstats、バックアップまでを解説してます。

題材としてはとても基本的なことの集まりですが、できるだけシンプルかつセキュアになるように、運用もふまえた設定方法を解説しているつもりです。Linuxを使ったWebサーバを公開しようと考えている人や、今の時期ですとサーバ構築・運用管理を勉強している新人エンジニアにも参考にしていただける内容になっていますので、ご参考ください。

2010年5月2日日曜日

CentOSの最小構成ライブCDを作成しました

ZabbixのパッケージテストやちょっとしたLinux上のアプリケーションテストのためにCentOSが最小構成で起動するライブCDを自作して、いつでも何も設定されていない最小構成の状態が作れるようにしていたのですが、自分だけで使っておくのも広がりがないので公開してみようと思います。

テストで使用する環境はMac上のVMwareFusionを使うことがほとんどなので、VMwareでインストール直後のスナップショットを取っておく、という方法もあるのですが、たまに実サーバでテストする必要があったりするのでライブCD形式であればVMware上でも実サーバ上でも動かせて何かと便利です。

ライブCDは以下の作りになってます。

  • CentOS 5.4ベース (とりあえずは32bit版だけ)
  • インストールされているパッケージはkernel + 最低限必要となるdhclient、passwd、yumとそれらに依存関係があるものだけ。計104パッケージ350MBほど
  • それらをinitrdに全部突っ込んでオンメモリ起動
  • SELinuxは無効
  • ハードディスクにswap領域があれば自動的に利用
  • DHCPでアドレスを取ってくる
  • CentOS標準のパッケージで構成 (もともとテスト用なので当然)
  • LiveCDにありがちな、コンパクトにするためにbusybox使ったり、uClibc使ったりせず、起動したら普通のCentOSと同じ
  • 不要なサービスは全部停止。ただしログだけは吐いておいてほしいのでsyslogは動かす(最小構成で入れるとrsyslogがインストールされるので、それを利用)
  • 英語キーボードのみの対応。最小構成では各国語のキーボード対応用のパッケージがインストールされないためですが、私は英語キーボード派なのでそのままにしてます

すべてオンメモリで起動するので、メモリは最低でも512、この上で何か作業をするなら1GBはあった方がいいです。

ディスクにswap領域があれば勝手に使うようになっていますが、そうではない場合、たとえば普段はWindowsマシンとして使っている上で起動して多数のパッケージをインストール、/homeにでっかいファイルを置いたりするとハングする可能性が高いです。

最近ではメモリを1GB搭載しているPCなんて珍しくないので、基本的には動作するはずです。

このCDは今のところ以下のような用途に利用できます。

  • 起動すると最小構成+yumが利用できる状態なので、常に同じ環境でパッケージテストを行うために利用
  • サーバを構築する際の設定テストなど
  • ハードディスクのパーティション操作
  • CentOSのインストーラは最小構成を選んでも色々とパッケージが入ってしまいますけど、このLiveCDは完全に最小構成なのでCentOSの最小構成がどんなものか試せます

ダウンロードは以下から行えます。

rootユーザのパスワードはpasswordに設定しています。

とりあえず今あるものをベースに最低限の体裁を整えて公開しただけになりますが、意見があればコメントいただけると嬉しいです。

2010年4月30日金曜日

日本UNIXユーザ会にてZabbix勉強会を行いました

2010/4/15日に日本UNIXユーザ会主催の勉強会でZabbixの話をしました。

2時間程度とこれまでで一番長い勉強会でしたが、その分いろいろと細かいところまで話ができて良かったです。セミナーのタイトルは「Zabbix1.8の概要と新機能」と他のセミナーと同じになっていますが、中身としてはこれまでで一番詳細に説明しました。当日資料は以下からダウンロードできます。

当日は導入事例の話もしたのですが、あまり公にできることではないので上記の資料には含めてません。当日聞きにきてくださった方のみの特典ということにしておこうと思います。

質疑応答の時間も30分程度取ったのですが時間ぎりぎりまで色々な質問が出てとても濃いセミナーでした。特に今回のセミナーではネットワーク系の方が多かった印象でした。普段はどちらかというとサーバ管理者系の方と話をすることがほとんどなので、普段とは違う意見や質問を聞けて良い刺激になりました。

サーバの監視と比較してネットワーク機器の監視では監視項目数が増えやすかったり、機器それぞれでSNMPのOIDが異なることで設定に手間がかかったりして、みなさん良い監視ツールがないかと真剣に探されている印象を受けました。Zabbixもサーバ系には強いのですがネットワーク機器の監視には弱いところがあるので、何か改善できることがないか探してみようと思います。

有料のセミナー&1週間前にZABBIX-JP勉強会で同じようなタイトルのセミナーを実施したこともあってどのくらいの人が集まるのかと心配していたのですが、結果は満員御礼でした。聞きに来てくださった方々、どうもありがとうございました!

2010年4月12日月曜日

第1回 ZABBIX-JP勉強会を開催しました

2010/4/8に書籍発売イベントも兼ねて第1回ZABBIX-JP勉強会を開催しました。

当初はどのくらい集客があるかと心配していたのですが、最終的には53人の申し込みがあり、実際にお越し頂いたのは44人とかなりの人に興味を持って頂くことができました。

勉強会のコンテンツは「Zabbix 1.8の概要と新機能」を中心に話しました。すでにZabbixを使っている方には多少物足りなかったのではないかと思いますが、第1回ということでご勘弁ください。勉強会でも話した通り、次回以降はより深い内容をやりたいと思っています。


今回の印象としてはスーツ率が高かったですね。私自身も本当は私服がよかったのですが、都合によりスーツで話をすることになってしまいました。できればもっとラフな感じの勉強会にしていきたいと思っています。

そのあとの懇親会は初めての懇親会ということもあって盛り上がるかな?...と不安ではあったのですがなんとかなりました(笑。スタッフの鈴木さんにLTをやってもらったのですが、Zabbixで株価を監視してグラフ化するというネタでした。懇親会ではこういうLTネタを今後もやってきたいですね。


ということで、参加いただいた皆様どうもありがとうございました!。次回以降も継続して開催していきたいと思います。

勉強会の資料はZABBIX-JPサイトのセミナー資料ページからダウンロードいただけます。

Zabbix書籍『Zabbix統合監視「実践」入門』を出版しました

少し前よりすでにサイドメニューには表示していましたが、2010/4/8に私が執筆を行った『Zabbix統合監視「実践」入門 〜障害通知・傾向分析・可視化による省力運用〜』が技術評論社より出版されました。

簡単に目次を紹介しておきます。全416ページ、

  • はじめに
  • 1章: 統合監視ソフトウェアZabbixとは
  • 2章: Zabbixのインストール
  • 3章: クイックスタートガイド
  • 4章: 監視対象と監視項目の設定
  • 5章: 障害検知と障害通知の設定
  • 6章: グラフィカル表示の設定
  • 7章: テンプレートの利用とエクスポート/インポート
  • 8章: 一般設定とユーザ設定
  • 9章: Zabbixによるシステム監視サーバ構築実践
  • 10章: 障害発生時のスクリプト実行機能の活用
  • 11章: アプリケーションの詳細監視
  • 12章: Zabbixサーバの運用とメンテナンス
  • 13章: 大規模システムの監視
  • 14章: Appendix

書籍の編集者と最初に打ち合わせをしたのが2009年の1月8日、書籍の最終原稿を提出したのが2010年の1月前半なので、ちょうど執筆に1年かかったことになります。

その間、本来2009年5月にリリースされる予定だったZabbix 1.8が10月に延期になり、10月にもリリースされずに最終的に12月にリリースされたりとZabbixのバージョンにも翻弄された1年でした。

書籍自体は最初から1.8をベースに書くことが決まっていたので、1.8のベータバージョンを使いながら書くわけですが、途中で大幅な仕様変更や機能の追加があったり、12月から1月までの間は1.8の最終リリース版とつきあわせて内容の更新やスクリーンショットを取り直しを行ったりといろいろ大変でした。

当初400ページに収めるという話だったのですが、最後のAppendixはZabbixを使う上では必ず必要だろうと思い、どうしても付けたいと私がムリを言ってつけてもらった結果、書籍の価格が少し高くなってしまったことはご勘弁ください。

書籍を書き終えてから発売までに1.8.1、1.8.2とマイナーバージョンがリリースされ、各バージョンでは機能追加も行われているので、発売当初は最新版の機能に対してすでに不足がある状態になってしまっています。

今後は改訂版を出したり、ZABBIX-JPサイト上やTwitter上で書籍の追記修正情報を出したりという形で対応をしていきたいと思っています。

書籍の誤記や誤字脱字、分かりにくい点や要望などはこのブログのコメントやZABBIX-JPサイトで書き込んで頂ければと思います。

ZABBIX-JPスタッフ花見会をやりました

2010/4/3に靖国神社でZABBIX-JPスタッフの花見会をやりました。

天気もよく桜もちょうど満開で花見日和でした。靖国神社に入ったのは初めてでしたが屋台が多く飲食には困らないですし、屋台がテーブルと椅子を出しているので、そこに陣取ればレジャーシートなどもいらず、かなり気軽に花見ができる感じでした。

今回はZABBIX-JPサイトでも告知してユーザも自由参加にしたのですが、結局スタッフメンバーのうち私を含め4名の参加...だと思っていたのですが、あとからフォーラムでよく見かけるTNKさんが来ていたにも関わらずうまく連絡が取り合えていなかったことが判明!大変すみませんでしたm(__)m

ということで花見の写真をいくつか。




2010年3月31日水曜日

Zabbix 1.6.9のリリース

Zabbix 1.6.9がリリースされてます。

今回の修正はセキュリティフィックスがメインで、リリースノートには以下の2つが記載されています。

  • [ZBX-2062] 複数アイテムのリカバリメッセージの送信処理を修正
  • [ZBX-1030] Zabbixサーバが認証されていないユーザからのスクリプト実行を許可してしまうセキュリティ脆弱性を修正。Nicobに感謝

ただ、Subversionのコミット履歴を追っていくと、リリースノートには1.6.8がリリースされた2009/12/07から2010/01/18までの以下の5件の修正が記載されてませんでした。せっかくなので翻訳しておきます。

  • [ZBX-1063] zabbix_agentdのログレベルに指定可能な最大値のチェック処理を修正
  • [ZBX-1544] ダッシュボードにすべてのノードからのディス化なりが表示される問題を修正
  • [ZBX-1539] フルスクリーンモードにした際にグラフの表示時間がリセットされる問題を修正
  • [ZBX-1470] 名前に「:」が含まれるトリガーをインポートした際の問題を修正
  • [ZBX-1530] スクリーン画面でダイナミックアイテムを使用したシンプルグラフをクリックした際に間違ったホストが選択される問題を修正

2010年3月17日水曜日

Zabbix 1.8の新機能

このところZabbix 1.8の新機能の紹介や説明を行うことが多くなってきたのでまとめておきます。Zabbix 1.8.1で追加された機能も含めておきます。

UTF-8対応

マルチバイトに正式対応されました。表面的には1.6と変わらない部分も1.8でソースがまるごと書き換えられている箇所もあります。一番大きいのはログ/イベントログのマルチバイト対応でしょうか。以下のようにアイテムのキーにオプションが追加されています。

  • log[ファイル名,検索文字列,エンコード]
  • eventlog[イベントログ名,検索文字列,エンコード]

パフォーマンスの改善

データベースキャッシュモジュールが追加され、ZabbixサーバやZabbixプロキシサーバがデータをデータベースに書き込む処理のパフォーマンスが改善されています。

1.6ではpollerなどの各プロセスが個別にデータベースにコネクトしていたのが、1.8ではデータベース書き込み用のプロセスが作成されました。キャッシュモジュールの設定はzabbix_server.confやzabbix_proxy.confの以下の項目で調整できます。(以下はデフォルト値)

  • CacheSize=8M
  • CacheUpdateFrequency=60

メンテナンス期間の機能

メンテナンス中の監視の停止をスケジューリングする「メンテナンス」機能が追加されています。期間はワンタイムだけでなく時間、曜日、日にちなどを指定して繰り返し設定を行うことができます。

また、メンテナンス中は以下の2つから動作を選択することができます。

  • 監視データは受信、アクションの実行を行わない
  • 監視データを受信しない

正規表現機能

複雑なログ監視文字列をユーザ定義の正規表現として作成できる「正規表現」機能が追加されています。たとえば、「Error」と「Warn」の両方が含まれていて「AAA」が含まれていない場合、といった条件式を作成することができます。作成した正規表現をテストする機能もあるので、設定ミスの防止や文字列判定のテストにも効果があります。

自動登録機能

Zabbixエージェントがインストールされたサーバを自動的に監視対象に追加するための機能です。Zabbixエージェントはアクティブチェックが有効になっている必要がありますが、1.6以前にもあったディスカバリとは異なり、Zabbixエージェントから通信が発生したときに登録される仕組みなので、Zabbixサーバ側から定期的にPingなどで探索する必要がありません。

登録時にはホスト名などを条件にテンプレート適用が行えるので、大規模システムではホスト登録の手間が削減できます。

ユーザ定義マクロ機能

Zabbix全体、ホスト、テンプレート単位でユーザ定義のマクロを設定することができます。マクロはアイテムのキーやトリガーの条件式で利用できるので、以下のように利用することで、同じテンプレートを利用しつつホストごとにアイテムのオプションやトリガーの閾値を変えることができるようになりました。

  • テンプレートでトリガーの条件式を「{hostname:item[param].func}>{$USER_MACRO}」のように設定する
  • ホスト単位のマクロで「{$USER_MACRO}=10」のように設定する

エージェントレス監視

SSHとTelnetを利用したエージェントレス監視のアイテムが追加されています。SSHやTelnet接続でログインして、アイテム設定画面で設定したコマンドを実行してその結果を監視することができます。

API機能

JSON-RPCを利用したAPI機能が追加されました。API経由で監視設定を行ったり、監視データを取得することができます。まだAPIが用意されているだけなので、実際に操作するユーザインターフェースは別途開発する必要があります。

Zabbix本体とは別プロジェクトでRubyを使ったAPI用コマンドラインツール「Zabcon」が開発されています。たとえば以下のような形式でコマンドラインから設定情報を取得することができます。

+> get user
User result set
+--------+-------+
| userid | alias |
+--------+-------+
| 1      | Admin |
| 2      | guest |
+--------+-------+
2 rows total
  • Zabcon: http://trac.red-tux.net/wiki/zbx_api/interactive

APIはTechnical Preview、Zabconはまだ開発が始まったばかりという状況なので、仕様変更やバグが多く実際に実運用環境で利用できるまでにはまだ時間がかかりそうです。

マップの改善

マップ設定がドラッグアンドドロップで行えるようになっています。また、マップ画面ではアイコンの背景に障害の深刻度で色を表示できるようになったので、障害の発生がより分かりやすくなりました。

スクリーン設定画面の改善

スクリーン設定がドラッグアンドドロップでセルを移動したり、行と列にセルを追加削除できるようになりました。

グラフ表示の変更

表示形式が全面的に変更され、見た目や操作も大きく変わっています。フォントにアンチエイリアスを使うようになっており、ソースからインストールした場合はフォントを自身で入れて設定を行う必要があります。ZABBIX-JP版のRPMにはフォントを含めた状態で配布しています。

メニューやホスト画面の変更

メニューが変更され、1.6では独立していたアイテム、トリガー、グラフのメニューがホストに移動されました。その代わりにホストグループがサブメニューに昇格しています。

それにあわせてホスト設定画面も変更され、アイテム、トリガー、グラフの各設定画面へのショートカットができていたり、複数テンプレートをリンクしても画面が横に長くならないようになっています。

アイテムのフィルタ機能

アイテムのフィルタ機能が大幅に強化され、様々な条件で絞り込みを行うことができるようになっています。

トリガー画面の表示変更

トリガー画面(現在の障害一覧画面)でイベントを表示した際に、トリガーごとの折畳み機能や障害対応コメント一括処理機能が追加されています。

バーグラフ機能

複数の監視データを利用して比較や分布を見ることができるバーグラフ機能が追加されています。いまのところ設定を保存することはできないため、都度作成する必要があります。

トリガー条件式作成補助機能

複雑なトリガーの条件式を設定する際に、条件式を分かりやすく表示できるようになりました。入力補助機能も追加されています。また、ログ監視の場合はアイテム一覧画面にログ監視用のトリガー入力画面へのショートカットが表示されるようになっています。

Web監視がBasic認証に対応

Web監視がBasic認証に対応しました。

監視機能の強化

以下のZabbixエージェント用アイテムのキーが追加されています

  • net.tcp.dns.query: DNSクエリを発行した結果の文字列監視

また、これまであったicmpping(ping監視)のキーも種類が増え、利用できるオプションが追加されています。

  • icmpping[<,packets><,interval><,size><,timeout>]
  • icmppingsec[<,packets><,interval><,size><,timeout><,mode>]
  • icmppingloss[<,packets><,interval><,size><,timeout>]

Zabbix 1.8.1の機能追加

Zabbix 1.8.1では以下の2つの機能が追加されています。

  • 取得したアイテムのデータを元に計算を行って監視をする機能(計算アイテム)
  • ダッシュボードに「ホストステータス」画面の追加

その他の改善

その他、細かいところでは以下の機能追加や改善が行われています

  • イベント画面が期間指定で表示可能に(1.6までは日にち単位の表示)
  • マップの線上にアイテムを表示
  • 利用できるマクロの増加
  • ホスト、ホストグループ、テンプレートの検索機能
  • エージェントの表示がアイコン表示に
  • Webインターフェースのデバッグ機能の追加
  • SNMPのIPv6対応
  • Windowsイベントログの表示にイベントIDのカラムを追加

Software Design 2010年3月号「Linuxサーバ危機管理対策」を執筆しました

2010年2月18日発売のSoftware Design 2010年3月号第1特集「Linuxサーバ危機管理対策」の1章「正常と異常の見える化」を執筆しました。

Zabbixを使ったシステムの可視化という視点で執筆しています。目次は以下のようになってます。

1章: 正常と異常の「見える化」

  • はじめに~システムの運用とシステムの可視化
  • システム監視の種類とポイント
  • 統合監視ソフトウェアZABBIXとは
  • ZABBIXのセットアップとテンプレートによる可視化
  • システムの稼働状況を可視化する
  • サービスの稼働状況を可視化する
  • 障害通知とマップの設定
  • まとめ
2章は中満英男さんが執筆されているのですが、Zabbixを使ったログ監視についても触れて頂いています。

2章: ログファイルから見る異常事態
  • はじめに
  • ログが出力されるしくみ
  • syslogdの基本的な設定
  • ログの読み方 ~Postfix編~
  • ログから異常を検知するには
  • ZABBIXでログ監視
  • tail使っている?
  • syslogdの置き換え
  • まとめ

2010年1月30日土曜日

Zabbix 1.8.1のリリース

先週末にZABBIX-JPでZabbix 1.8のパッケージをリリースしたと思ったらすぐに1.8.1がリリースされました。 1.8.1の大きな修正としてはアイテムの計算機能が追加されています。
Support of calculated items

Calculated items make possible creation of virtual items based on arithmetical expressions. The items are built on top of other items and use data stored in Zabbix database. See documentation for more details.

具体的な機能はまだ確認できていないので後で試してみようと思います。 

リリースノート(英語)を見てもらうと分かるのですが、1.8.1のOther Improvements(要するにバグフィックス)は165件あります。1.8のリリースのときが99件ですから、かなり多くのバグフィックスが行われてますね。

これで基本的なバグ修正が落ち着けばいいんですが。現在リリースノートの翻訳とZABBIX-JP版のRPMパッケージリリース作業を進めてます。

2010年1月20日水曜日

Zabbix 1.8のWindowsエージェントのコンパイルの問題

Zabbix 1.8のWindowsエージェントをコンパイルしようとしたところ、いろいろと壁にぶつかりました。

Zabbix 1.8のリリースファイルにeventlog.c/hが含まれていない

Zabbix SIAのリリースファイル(zabbix-1.8.tar.gz)のsrc/zabbix_agentディレクトリにはeventlog.c/hが含まれていないために以下のようなエラーが出てコンパイルが通りません。

Subversionの方には含まれているので、何らかの理由でリリース用のtar.gzファイルを作成するときに削除されてしまったようです。(なぜそんなことになってしまったのかは不明ですが)

active.c(28) : fatal error C1083: include ファイルを開けません。'eventlog.h': No such file or directory

Subversionからeventlog.c/hをダウンロードしてディレクトリに配置してコンパイルを行うと、とりあえず上記エラーは出なくなります。

afxres.hのincludeエラー

上記対応をしても今度は以下のエラーが出るようになります。

fatal error C1083: include ファイルを開けません。'afxres.h': No such file or directory

ネットを検索するとVS2008 Express Editionを使っている場合はeventlog.cを以下のように書き換えればいいよ、ということのようだけど、修正点が理解できていないのでこれが正しいのかどうかは分からないです。

75  //#include "afxres.h"  ← コメントアウト
76 #include   ← 追加

77 #defind IDC_STATIC -1  ;← 追加

ひとまず上記でコンパイルは通りました。あとでVS2008のGUI画面の方からコンパイルしたところafxres.hエラーは出なかったので、コマンドラインからコンパイルしたときにライブラリのパスが通っていなかっただけかもしれません。

zbx_read関数のリンクエラー

最終的にはこのエラーにたどり着きました。

logfiles.obj : error LNK2019: 未解決の外部シンボル _zbx_read が関数 _process_logrt で参照されました。
file.obj : error LNK2001: 外部シンボル "_zbx_read" は未解決です。
../../../bin/win32/zabbix_agentd.exe : fatal error LNK1120: 外部参照 1 が未解決です。

ただいま原因を調査中です...