2011年5月29日日曜日

ブロンドパレード&スポーツバーに行ってきました

今日はラトビア市内でブロンドパレードがあるということで見に行ってきました。

ブロンドパレードは、例のサブプライム問題を発端にした世界金融危機の影響で大不況に見舞われたラトビアを盛り上げるために、2009年から行われているイベントだそうです。ラトビアはサブプライム問題でアイスランドやトルコなどと並んで最も経済への影響を受けた国らしく、日本とは比にならないくらいの不況を経験したのだと思います。

イベントは名前の通り金髪の美女がパレードをする、というものなのですが、ドレスコードは"ピンク"だそうです。イベント会場もピンク一色。イベントらしく食べ物やアルコールを売るお店もあり、メインのパレード開始は18:00と少し遅かったので、BRITOSというものを食べつつビールを飲みながら待ってました。

いよいよパレードが開始され、バイクやバスを先頭に始まり金髪のおねえさんたちの行進が始まります。

パレードはチームを組んで行われているようで、先頭は企業の広告などもあり、どうやらスポンサー企業の団体がメインのようです。イベントではモンローに似ている人コンテストも行われていて、この写真の先頭の人はそのコンテストの参加者ですね。

チームによってもコンセプトがあるようで、中世ヨーロッパ風の衣装を着たチームもあれば、

赤い風船と衣装のチームもありました。こちらはお酒の企業のチームのようです。

化粧品のL'OREALのチームです。

こちらのチームは三輪車に乗った子供がリードしてます。

農具らしきものに乗った、昔美女だったチーム。

お約束の女装。こういうのは世界共通なんですね。

なんだかすごい車に乗ったおじさんと犬もいました。犬はやたらと吠えてるし、おじさんはスピーカーとマイクで何かをわめき散らしてるし、もはやイベントとはまったく関係ない組み合わせです。

パレードが終わったあとは中央のステージでイベントが開催されていました。MCの人はラトビア語と英語を使い分けながら解説していたので、内容も理解できて楽しめました。このMCの人、実はラトビアでは有名な歌手だったらしく、途中で2,3度歌を歌いつつイベントを盛り上げてました。

モンローコンテストがあったり、

パフォーマンスがあったりと楽しめるイベントでした。

このイベント、インターナショナル・ブロンド・アソシエーションという団体が企画・主催しています。世界No1ブロンドパレード!と宣伝しているのですが、イベントはそれほど大きくありません(笑)。まぁブロンドパレードという企画自体あちこちで開催されるものでもないですしね。

イベント自体が珍しいからか、おとなりのエストニアやリトアニアからだけでなく、アメリカ、オーストラリア、ブラジル、ヨーロッパ各国、なんと中国からも来ている人がいました。このイベント目的なのか、観光にきたらイベントがやっていたのかは不明ですが、イベントの効果はありそうですね。

イベントの様子はいろいろなサイトで取り上げられていますので、もっと詳しく見たい人はこちらもどうぞ。最後のリンクは動画もあります。

イベントが終わったあと、今日はちょうどサッカーのUEFAチャンピオンズリーグの決勝戦があるということで、普段はワールドカップ以外でサッカーはあまり見ないのですがTwitterでお勧め頂いたこともあり市内のスポーツパブに行ってみました。

本当は探していたアイリッシュパブに行きたかったのですが、すでに込み合っていたため聖ペテロ教会の近くにあるKIWI BARというバーに入りました。

21:45開始の15分前、さすがに込んできてます。ビールを買うにも一苦労、空いている席もないので立ち見です。

決勝戦はマンチェスター・ユナイテッドとFCバルセロナで、店内はマンチェスター・ユナイテッドの応援が7割、FCバルセロナが3割くらいでしょうか。ゴールが決まりそうになるとあちこちで声が上がってます。

前半途中でマンチェスター・ユナイテッドがゴールを決めた瞬間です。かなり盛り上がってました。

帰りのバスがなくなってしまうのでハーフタイムで帰ってしまいましたが、変える途中もいくつかの店では店内でサッカーを観戦しているようでした。市内のスポーツバーでは他にもいろいろなスポーツ中継をやっているようなので、また機会があれば行ってみようと思います。

2011年5月23日月曜日

リガマラソンを見に行ってきました

今日は天気も良いので早めに家を出て、買い物のついでにリガ市内で開催されているリガマラソンを観に行ってきました。

市内の中心部、聖ペテロ教会、ブラックヘッド会館がある市庁舎広場近くがスタート/ゴール地点です。

これが市庁舎前広場の風景。時期が良く天気も良いからか、今日はいつもよりも観光客も多かったです。

市庁舎前を通って、川沿いの方向にランナーが走っていく様子です。マラソンは5km、10km、21km、42.195kmと4つの距離で行われているようでした。ゼッケンが色分けされているのですが、どれがどの走者か分からず。

これがゴール地点です。けっこうな人ごみで、走り終わった走者と観戦者でごった返してました。付近ではサンドイッチやリンゴなどが無料で配られているようでした。

今日は最高気温は22度とそれほど暑くはなかったのですが、ラトビアは日差しが強いです。5kmや10kmくらいなら走ってみてもいいかな?とも思ったのですが、この日差しでは練習をしていないと日射病になってしまいそうです。

2011年5月20日金曜日

Zabbix 1.6と1.8の時刻設定の注意点

Zabbixには何ヶ所か時刻を設定する項目があります。

たとえば通知に利用するメールアドレスの設定であるメディアや、監視データを受信する設定の例外の更新間隔などがそれです。それぞれのヶ所には以下のように曜日と時刻を設定する決まりになっています。

0-7,00:00-23:59

最初の0-7が月曜から日曜、後ろが時間と分を指します。デフォルトは上記のように0-7,00:00-23:59になっているので、Zabbixを触ったことがある方は見かけたことがあると思います。

実は1.6と1.8にはこの設定に落とし穴があって、上記のデフォルトでは23:59-24:00の間の1分間が無効の状態になってしまいます。この問題で一番影響があるのは通知に利用するメールアドレスの設定で、デフォルトの設定では23:59-24:00の間の1分間に発生した障害についてはメールが送信されない状態になってしまいます。

この問題を回避するためには、0-7,00:00-24:00と設定しておけばすべての曜日と時間で有効になります。

ZABBIX-JP版ではの1.8.3以降、本家Zabbix SIA版では次のマイナーバージョンアップである1.8.6から上記のデフォルト値が0-7,00:00-24:00になるように修正が行われています。

バージョンアップでデフォルト値が変わったとしても、すでにいちどメディアを設定している場合は00:00-23:59の値がデータベースに保存されているので、特に気にしていなかった人は設定を見直しておいた方が良いでしょう。

ところで、この問題は1.6移行で発生し、1.4以前では発生しません。問題となるソースは、1.4.7では以下のようになっています。

src/libs/zbxcommon/misc.c 753行目あたり check_time_peroid関数内

int     check_time_period(char *period, time_t now)
{
...

        if(now == (time_t)NULL) now = time(NULL);
        
        tm = localtime(&now);

        day=tm->tm_wday;
        if(0 == day)    day=7;
        hour = tm->tm_hour;
        min = tm->tm_min;

ここで現在の時間を取得して、曜日、時間、分をそれぞれ変数に代入してます。

...

        if(sscanf(s,"%d-%d,%d:%d-%d:%d",&d1,&d2,&h1,&m1,&h2,&m2) == 6)
        {
                zabbix_log( LOG_LEVEL_DEBUG, "%d-%d,%d:%d-%d:%d",d1,d2,h1,m1,h2,m2);
                if( (day>=d1) && (day<=d2) && (60*hour+min>=60*h1+m1) && (60*hour+min<=60*h2+m2))

そしてここでWebインターフェースから入力された時刻と比較しているわけです。分単位なので23:59:30でも23:59と計算されます。

これが1.6移行では、同じsrc/libs/zbxcommon/misc.c 282行目あたり check_time_period関数内

int     check_time_period(const char *period, time_t now)
{

...

        if (now == (time_t)NULL)
                now = time(NULL);

        tm = localtime(&now);
        day = 0 == tm->tm_wday ? 7 : tm->tm_wday;
        sec = 3600 * tm->tm_hour + 60 * tm->tm_min + tm->tm_sec;

ここで1.4とは違い秒まで変数に入れたうえで、

        {
                zabbix_log(LOG_LEVEL_DEBUG, "%d-%d,%d:%d-%d:%d", d1, d2, h1, m1, h2, m2);

                if (day >= d1 && day <= d2 && sec >= 3600 * h1 + 60 * m1 && sec <= 3600 * h2 + 60 * m2)
                {
                        ret = 1;
                        break;
                }
        }

秒単位で計算しています。結果として、現在時刻が23:59:30>23:59:00となってしまい時間外と判定されてしまうというわけです。

2011年5月19日木曜日

リポジトリから最新版のZabbixをダウンロードして利用する方法

Zabbix 1.9(開発版)の開発も日々進んできているので、最近は定期的に最新版をダウンロードしてコンパイル、動作を確認するようにしています。最新版を利用するためには少し手順が必要なのですが、安定版の1.8の最新でバグフィックスが修正されているかを確認するために利用する人もいるかもしれない、と思い書いておこうと思います。

ZabbixのソースコードはSubversionで管理されています。リポジトリには誰でもアクセスすることができ、以下のコマンドで最新版をチェックアウトすることができます。

svn checkout svn://svn.zabbix.com

上記のコマンドではリポジトリ全体をチェックアウトすることができますが、Zabbixのリポジトリはbranches/dev以下に個々のバグフィックス用のブランチが切られていたり、日本とラトビアの回線が遅いためにダウンロードに時間がかかってしまいますので、よく利用するディレクトリだけを個別にチェックアウトしておくのが良いです。私が普段からチェックアウトしているのは以下の2つのディレクトリです。

  • 1.8系(安定版)の最新: svn checkout svn://svn.zabbix.com/brunches/1.8
  • 1.9系(開発版)の最新: svn checkout svn://svn.zabbix.com/trunk

チェックアウトしたものをコンパイルして動作させるためには、以下の手順でリリース用のtarファイルを作成します。作業には automakeとautoconfが必要なのであらかじめインストールしておいてください。以下の例ではSOURCE_DIR以下にチェックアウトしたソースファイルがあり、/tmp/workディレクトリで作業をするものとして書いています。

cp -a SOURCE_DIR  /tmp/work        # ソースを/tmp/workにコピー
cd /tmp/work

./bootstrap.sh                     # configureファイルを作成

ここでそのまま通常のインストールと同じように./configure --enable-server --enable-agent...と実行してmakeでも問題ないのですが、環境によっては失敗したり、DB用のスキーマがなかったり、できあがったファイル群を他のサーバにコピーしても正しくconfigureが実行できなかったりしますので、ここからリリース版と同じtar.gzファイルを作成する方法も紹介しておきます。上記に続けて、

./configure                        # オプションなしで実行します
make dbschema                      # dbスキーマを生成します
make dist                          # 配布用ファイルを生成します

これでカレントディレクトリにzabbix-X.X.X.tar.gzファイルができあがっているはずなので、通常のリリース版と同様にインストールすることができます。

5/19追記:

./bootstrapの直前に書いていた.svnファイルの削除の作業の記述を消しました。make distの中でsvn infoコマンドを実行してリビジョン番号をinclude/common.hに書き込んでいるので、.svnファイルを先に消してしまうと問題がありました。

2011年5月13日金曜日

Nagios統合監視[実践]リファレンスを献本いただきました

技術評論社さんより2011/3/25発売の「Nagios統合監視[実践]リファレンス」を献本いただきました。

実は3/25日以前に献本頂いていたのですが、ラトビアへの引っ越しなどでバタバタしていて読むのが遅くなってしまいました。

すでに絶版になってしまっている「Nagios 2.0オープンソースではじめるシステム&ネットワーク監視」と同じ著者さんですね。私が知らないだけかもしれませんが、Nagiosのリファレンス本は初なのではないでしょうか。

プラグインの使い方や設定をリファレンス形式でまとめた本ですが、それでも368ページと結構なボリュームがあります。全5章とAppndixが2つあり構成は以下のようになっています。

  • 1章: Nagiosクイックスタート
  • 2章: Nagios標準プラグイン
  • 3章: メイン設定ファイル
  • 4章: CGI設定ファイル
  • 5章: オブジェクト設定ファイル
  • Appendix A: Nagiosと周辺ツールの導入
  • Appendix B: リソース設定ファイルとNagios標準マクロの概要

書籍のタイトルの通り初心者を対象としたインストール&設定本ではなく、Nagiosを構築・活用する際に辞書的に使える書籍だと思います。リファレンス形式なので目的から探しやすいですし、ここどうだっけな?というちょっとした時にもWebを探し回るより簡単に調べられそうです。

すでにNagiosを導入済みでより活用したいという方や、Nagiosでは具体的にどのような監視が行えるのかを知りたい方には丁度よい本ではないでしょうか。Nagiosはインターネットで検索すればインストールの情報はどはたくさんありますので、この本のように導入したあとの監視設定に活用できるように書かれている方がより長く使えると思います。

Nagiosを活用している方は手元に1冊あると便利な本ではないかと思いました。

Nagios統合監視[実践]リファレンス (Software Design plus)
株式会社エクストランス 佐藤 省吾 Team-Nagios
技術評論社
売り上げランキング: 16229

2011年5月10日火曜日

居住ビザ&ワークビザが取れました!

ラトビアに来て1ヶ月、やっと居住ビザ&ワークビザが取れました。

思い返せば日本で書類をそろえ始めたのが1月末ごろ。ここまで長い時間と手間がかかりました。だいたいの流れを説明しておくと、

  • 大学から卒業証明書と警視庁から渡航証明書(犯罪経歴証明書)を取得してラトビアに送る
  • アポスティーユが必要と送り返される(アポスティーユって何?という状況になる)
  • アポスティーユは外務省が出してくれるらしいということで、外務省に電話してみる。犯罪経歴証明書は問題ない。大学の卒業証明書は国の機関が発行したものではないのでアポスティーユがつけられない。公証役場に持っていく必要があるとのこと。(国立大学も今は独立行政法人化されているので=国立ではないのでダメとのこと!)
  • この間、外務省と在日ラトビア大使館とZabbix SIAに色々と聞ききつつ、どうするのが良いのかを調べる
  • ついでに胸部X線写真も必要なので取得しにいく
  • 全部まとめて外務省に持っていったところ、渡航証明書は問題なくOK、胸部X線写真は国立もしくは公立(都立、市立などの)病院で撮ったものでないのでダメ。どうやら公立病院と思っていた病院は社団法人で、これは対象外とのこと。公立病院と書かれているWebサイトを鵜呑みにしてしまったのがいけなかったようです。
  • Zabbix SIAにX線写真がダメだったことを伝えると、ラトビアで撮りなおすことになる。
  • 最寄りの公証役場に卒業証明書を持っていく。一緒にアポスティーユまで付けてくれ、公証人って何者?という気分になる。
  • とりあえず準備できたものをラトビアに送付
  • ラトビアに行く
  • ラトビアで胸部X線写真を撮りにいく
  • ラトビア移民局に書類を提出にいく
  • 予定されていた日にビザを撮りにいくものの、住んでいる住所の貸主からの書類が不足していたために受け取れず
  • 今日やっと全部の書類が整ったので取りに行きました。

これが今日で3回目のラトビアの移民局です。

3ヶ月かかってやっと取れたビザです。左上にはユーロのホログラムが。まだ調べていないですが、ラトビアの居住権というだけでなく、ユーロ全域に通用する滞在ビザになるはずです。

ついでに、ラトビアの個人ID番号とラトビア名までもらいましたw

私のラトビア名は"Kodai Terašimam"だそうです。šの発音は英語のshと同じようなのですが、最後のmは不明です。会社の人に聞いたとことendianだと言ってましたがやっぱりよく分かりません。

とりあえず、無事ビザも取得できたので、やっと正式に仕事ができ、給料をもらうことができまるようになりました。次は銀行口座を開設しに行く必要がありますね。

2011年5月9日月曜日

ラトビアのアジア食材事情

今週も食材の買い出しに近くのスーパーに来ています。そろそろラトビアに来て1ヶ月ほどが経ち、だいぶん生活にも慣れたのですが、何か作り慣れた料理の調味料が手に入らないかと探して回ってみました。

ラトビアには日本やアジアの食材もいくつか売られています。これは近くのスーパーにあるアジア食材コーナーです。

大抵のラトビアのスーパーでは醤油や寿司酢、寿司米が売られています。このスーパーでは米酢もありました。日本食といえば寿司なのか、手巻き寿司を巻くための巻きすもよく見かけます。逆にみりんと味噌、料理酒は今のところ見たことがありません。

意外と中華用の食材はあまり見かけず、このスーパーではタイ料理とインドカレーの食材がたくさんありました。タイ料理に至ってはトムヤムスープの素やココナッツミルク、ヌードルまで売られていました。

今回の買い物で見つけた品、ゴマ油と片栗粉です。片栗粉はないだろうと思っていたのですが、何気に手に取ったモノの障り心地が片栗粉で、裏を返すと"POTATO STARCH"の文字が。ともに中華料理をらしくするためには必須の品です。

2011年5月7日土曜日

ZabbixのiPhone用ビューワアプリを作成してみました

iPhoneからZabbixの監視ステータスを見るためのアプリを作成してみました。昨年夏くらいから勉強しながら開発してきたのがだいぶん形になってきたので、そろそろ公開してみようと思っています。

"Zabbix"という言葉はOSSかつ無料でないとドメインやアプリの名前には利用できないので、アプリの名前をどうしようかなーと1ヶ月くらい悩んでいたのですが、Mobile+ZabbixでMozabyに決めました。これがとりあえず作ったアイコンと起動画面です。

最初はObjective-Cでも開発してみたのですが、どうも取っ付きにくく慣れるまでに時間がかかりそうだったことと、コードを他に使い回せることから、開発はPhoneGapを使っています。そのため動きが多少緩慢なところがあったり、細かいところでiPhoneらしい操作性が実現できない部分があるのものの、そういった部分は今後改善していこうと思います。

機能としては以下の画面があります。

  • 障害が発生しているトリガー一覧画面
  • 最新50件のイベント画面
  • Zabbixサーバ一覧画面
  • ホスト/アイテム/トリガー一覧画面
  • ホスト/アイテム/トリガー詳細画面
  • プロファイル表示画面
  • ヒストリ表示画面

障害が発生しているトリガー一覧がこのような画面です。

主な特徴

  • iPhoneネイティブアプリケーション
  • 複数のZabbixサーバの情報を一括で取得可能
  • オフラインでも閲覧可能(ヒストリデータだけはオンラインの必要があります)
  • Zabbix 1.8 - 1.8.4対応(1.8.5は未テストです)

誰もが欲しいなぁと思うだろう機能で、いまのところ実装していないもの

  • グラフ表示
  • 障害対応コメントの内容確認と送信
  • プッシュ通知

これから紹介サイトを作ったりAppStoreの審査を出したりするのですが、その前にちょっと使ってみて使用感やバグレポートできるよ!という人がいればテスト用のアプリをお渡しできます。ただし、以下の条件があります。

  • iOS 4.3以上のiPhoneまたはiPod Touchを持っていること
  • APIを利用できるZabbix 1.8以上が定常的に動作している環境があること
  • 2週間ほど利用してみて、感想、バグ報告(あれば)、要望などをTwitterでいただけること

あまり形にはこだわらないので、ちょっと試してみてTwitterで感想を言ってもらえる程度で問題ありません。お渡しするアプリは証明書の期限の関係で数ヶ月後には使用できなくなりますし、特にお礼などはありませんので緩い感じでお願いします。

メールでやりとりすると堅苦しくなりがちで書くのにも時間がかかるので、基本はTwitterを使ってやりとりをするようにしたいと考えています。

テストしてもいいよ!という人はiPhone Configuration UtilityのMac用またはWindows用をインストールしてiPhoneまたはiPodを接続し、デバイスの情報から見れるUUIDをコピーしてTwitterの@kodai74にダイレクトメッセージの送信をお願いします。

私にフォローされてないのでダイレクトメッセージが送れないよ、という人はアプリテストをしたいんですけど、と言っていただければフォローします。

ひとまず、試用の連絡は5/10までで一度締め切ろうと思います。それまでに申込が多かった場合は早めに締め切るかもしれませんのであらかじめご了承ください。

お米さんを食べる

前回買ってきた「お米さん」を食べました。

見た目はこんな感じ。特に違和感ありません。

味もそれほど悪くありませんでした。海外の米なのでもう少しパサパサした食感を予想していたものの、寿司用というだけあって意外と日本の米とそれほど変わりありませんでした。

炊飯器がもっと良いものだったら違いも出たかもしれませんが、何せ超シンプルな炊飯器なのでうまく違いを吸収してくれたのかもしれません。

あまり面白いネタにはなりませんでしたが、日々の食事には困らなさそうで安心しました。今度は見た目は日本米に近いけれど寿司用ではない米(こっちの方が半額以下)にもチャレンジしてみようと思います。

2011年5月1日日曜日

近所のスーパーで米を買う

今日の夕食の食材を買いに近くのスーパーへ買い物へいきました。

5/4のラトビア独立宣言記念日が近いからか、近所のほとんどのマンションやお店の入り口付近にラトビアの国旗が飾られています。

今日もラトビアの春を撮ってみました。道端に咲いていたタンポポです。つくしと言いタンポポといい、ラトビアにも日本とそれほど変わらない植物が咲いています。

最近、スーパーの近くに移動式(?)の遊園地ができ、今日は子供が遊んでいる姿がありました。

意外と怖そうです...

そろそろ日本から持ってきたお米がなくなりそうなので、寿司用の米を買ってみました。ラトビアのスーパーでは片隅にアジア料理の食材が売られています。日本の食材はそれほど多くはありませんが、米や醤油、酢などは手に入ります。

買ったお米はその名もお米さん。1kgで500円程度です。おそらく日本から輸入したものではなくて、こちらで生産されているものなのでしょう。

となりにあるのはラトビアに来てすぐの買い物で見つけたライスクッカーです。コンセントを差すと保温、スイッチを下に押すと炊飯というそれだけの超シンプル設計です。

日本の炊飯器に比べると少し柔らかくなりすぎる感はありますが、あまりお米にこだわりがない私には十分です。

Zabbix SIAの社長Alexeiは日本食大好きなので、さっそく購入したライスクッカーを勧めてみたところ、「炊くのは難しくないか?」とのこと。

どうやら以前に来日した際に米を買ってきたものの炊飯器がないため食べられず、日本の炊飯器を買おうとしたものの操作が複雑難解に見えてあきらめたそうです。

操作は十分シンプルだったよと教えてあげると、それはいいね!と言っていました。

まだ持ってきた米が1食分残っているので、お米さんは次回におあずけです。