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に設定しています。

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