2013年2月22日金曜日

CloudStackはCentOSベースの仮想アプライアンスと相性悪い

CloudStackにCentOS6.2ベースの仮想アプライアンスを入れて運用を始めた時の話。

まず、予備知識のおさらい。
CloudStackにCentOS6系のテンプレートを作成する際には、事前に
/etc/udev/rules.d/70-persistent-net.rules
を削除しておくのがお約束である。これをやっておかないと、テンプレートからインスタンスを作成した時に、NICを認識できなかったり、eth0のはずのNICがeth1やeth2として認識されたりと、色々な問題が起こる。
うっかり70-persistent-net.rulesを削除せずにテンプレートを作ってしまった場合、インスタンス作成後にファイルの中身を直してあげれば復旧可能である。

また、CloudStackにはインスタンスのSnapshotを取る機能があるが、そのSnapshotを復元するためには、Snapshotを元にしてテンプレートを作成し、そのテンプレートからインスタンスを作成するという手順を踏む必要がある。ここが素のHypervisorと違うところである。
すなわち、複製目的でテンプレートを作る時ばかりでなく、システム状態のバックアップを取る目的でSnapshotを取る際にも、
/etc/udev/rules.d/70-persistent-net.rules
を削除する必要がある。

で、仮想アプライアンスである。
今回私が取り扱ったそいつは、CentOSベースであるものの、好き勝手にいじれないように、CLIで使用できるコマンドはガチガチに制限されている(製品オリジナルのコマンドしか使えない)し、ファイルシステムの操作など一切できない。まあ、仮想アプライアンスって、そういうものである。
で、ファイルシステムが操作できないということは、
/etc/udev/rules.d/70-persistent-net.rules
を消したり編集することが一切できないのである。
これは困る。

実際にSnapshot作成⇒テンプレート作成⇒インスタンス作成を何度もやってみたところ、毎回結果が変わる。ほとんどの場合、NICの順番がおかしくなる(eth0とeth1が入れ替わるなど)。で、何度も試していると、たまに元通りのNICの順番になってくれることがある。なんだこの運ゲー。

以上、CloudStackと仮想アプライアンスの相性は決してよくない、というお話。

2012年12月8日土曜日

『たっぷり遊ぼう!ソーサリアン』 のプレゼントが来てた

無料配信のお知らせ他、長年の感謝の意を込めて期間限定キャンペーン開催に告知された通り、現在、ソーサリアン for iOSは無料でダウンロードできる。すでに購入しているユーザーには2,800円分のアイテムがプレゼントされる。

さっきApp Storeを覗いたら、ソーサリアン for iOSのアップデート(1.0.5)通知が来てた。アップデートし、数か月振りに起動してみたら…。
「ストック」の中にプレゼントが届いておりましたよ。
Figure.1 「ストック」の中

2012年9月12日水曜日

logstash 1.1.1で複数のサーバからApacheログを収集する

前回の続き。
前回は同一サーバ上のApacheログを直接読み込んでlogstashに貯め込む構成を作ったので、今回は次のステップとして、複数サーバのApacheログをlogstashで収集する構成を作ってみる。
…といっても、まずはひとつのサーバ上で試してみることとする。

公式ページのCentralized Setup with Event Parsingを参考にする。

動作させるコンポーネントとデータの流れは、こんな感じ。
Figure.1 logstashのアーキテクチャ

2012年9月11日火曜日

logstash1.1.1でApacheのログを集めてみる

先日のfluentd+MongoDBに続き、OSSのログ収集&検索ソリューション、logstashを試してみた。
前提と仕様
今回はひとまず、同一サーバ上のApacheのログを収集し検索することを目標とする。
環境はCentOS 5.5。

2012年9月7日金曜日

PMシンポジウム2012参戦レポ(1日目)

9月6日、PMシンポジウム2012(1日目)に行ってまいりました。
参加したセッションについてPostしておきます。
内容を詳細に書くのはとりあえず控えておいて、要点と感想を簡単に。
Posted in 

fluentd+MongoDBで集めたApacheログの検索システムをRailsで試作

Apacheのアクセスログをfluentdで集めてきてMongoDBに突っ込んで、Webで検索するシステムの試作品を作ったので、作業ログを残す。
WebにはRuby on Railsを使うことにした。
Ruby on Railsのインストール手順は、本Postでは省略。
前提と仕様
今回はテスト用のため、fluentdで集めるのは同一サーバ上のApacheのアクセスログのみ。
環境はCentOS 5.5。
とりあえず、検索条件としてクライアントIPアドレスと期間を指定できるようにしてみる。検索条件の入力省略も許容する。
クライアントIPアドレスには正規表現を使えるようにする。