2013年1月アーカイブ

TokyoHackerSpaceのワークショップへ行ってきました。
本当は今日はNixie Clockのワークショップだったのですが、僕が作りたかったのは次週のVFD Displayのキットだったのですが次週は都合が悪く、主催者にFacebookで聞いてみた所、この週でOKとの事だったので行ってみました。

場所は渋谷。appleストアの正面のビルでした。

目的地に辿り着くと何やら玄関前に人が。。
キーがあるのに入れないやら何やら言って人が集まってきても誰も入れない状態がしばし続きましたが、最終的になにやら誰かに電話して入る事ができました。そしてなぜかsuicaとかpasmoがキーになっているようでどういった仕組みなのか気になりました。

で、ワークショップ。
僕が作るものはこのVFDモジュラーclock。これを作っている赤フグという集団の2人が講師でした。

macは持参でこれから始めます。手前の四角い箱のようなものは半田。こんなタイプのがあるんですね。

で黙々と資料を見ながら教わりながら約3時間くらいでしょうか。

完成(写真は家で帰ってきてから撮った)。

途中真ん中の管だけが光らなくて色々講師に見てもらい、半田付け不良やら基盤不良を直してもらいました。一人だったら絶対出来上がらなかったですね。。

こちらはケース取り付け後。

同じ場所で僕らのワークショップの後半と被って、Raspberry Piのワークショップをやっていて、かなり興味を惹かれたので、作り終わった後にちらちら見せてもらいました。かなり面白そうなので買っていじり倒そうかと思います。

Nixie Clockだと中身がarduinoだったのでファームウェアを改造できたらしいのがちょっと残念だったのと、基本外人ばかりだったので英語がやはりもっと出来なきゃなぁと思いました。

ではでは。

log4jsを使ってロギングしてみました。

参考にしたサイトは以下。
http://d.hatena.ne.jp/muddydixon/20111204
https://github.com/nomiddlename/log4js-node

まずapp.jsやserver.js以外からも同じロガーを参照する事を考え、ロガーを以下のようにライブラリ化します。

$ vi ../lib/logger.js

var log4js = require('log4js');
log4js.configure('./log4js.json', { reloadSec: 300 });
var logger = log4js.getLogger('default');
module.exports = logger;
module.exports.log4js = log4js;

ロガーの設定はルートディレクトリにlog4js.jsonという形で以下のようにしてみました。

$ vi ./log4js.json
{
  "appenders": [
    {
      "type": "dateFile",
      "filename": "logs/access.log",
      "pattern": "-yyyy-MM-dd",
      "maxLogSize": 20480,
      "backups": 3,
      "category": "default"
    },
    {
      "type": "console",
      "category": "default"
    }
  ],
  "levels": {
    "default": "INFO"
  }
}

ポイントはlevelsの部分で、対象カテゴリ(自分で定義する種類のロガー)とそれのレベルを設定するところなどでしょうか。

あとはapp.jsやその他jsから呼びます。expressと合わせるとこんな感じでしょうか。

var logger = require('./lib/logger');
    app.configure(function(){
      app.use(logger.log4js.connectLogger(logger, { level: logger.log4js.levels.INFO, nolog: ["\\.css", "\\.js", "\\.jpg", "\\.jpeg", "\\.gif"] }));
//      app.use(express.logger('dev')); // switch logger to log4js
.......
    });

細かいところは省略してます。
app.useで書いてますが、app.configureで環境に合わせて書いた方が良いでしょう。
あと、nolog設定で不要なアクセスログを切っていますが、express自体のロガーが機能していると、コンソールにそのログは出続けてしまうので、expressのロガーはコメントアウトして切ってしまっています。

こんな感じすかね。

ではでは。

行ってきました。首都圏外郭放水路。
前々から行きたかったのですが、平日に時間ができたのでここいらで。はい。
(たぶんエヴァQのクレジットで出てきたの観て思い出したんだと思います)。

案内はこちら。予約もこのサイトから可能です。平日のみなので注意ですね。

まず最寄駅は東武野田線の南桜井駅です。初めて乗りました、東武野田線。

で駅に着いたのち、ルートはこちら

大きな地図で見る

駅から徒歩で大体30〜40分くらいです。バスも出てるみたいですが、かなり本数が少ないです。
あと車があるなら車で行く方が良いかもしれません。

こちらが辿り着いた建物。

建物2Fで指定時間までに受付を済ませ、時間を待ちます。
その後時間になるとまず施設の説明やら説明ビデオ見学やら模型を使っての説明になります。だいたい15〜20分くらいだったかと思います。その後、本来なら屋上見学というのがあるらしいのですが、当日は雪が凍結していたため屋上見学は中止。そのまま屋外に出て調圧水槽に向かいます。
屋外の入り口から入り、地下4〜5F分くらいでしょうか、階段を降りるとそこには。

どどん。

見事ですね。巷では神殿と言われ、各種PVや撮影に使われるだけあります。

地下に降り立って少し説明を受けた後、行動範囲を決められた上での自由時間。大体10分くらいらしいですが、この日は時間運びが順調だったようで15分とのことでした。

第一立坑を調圧水槽から観た図。

水槽の大きさがよくわかりますね。

で時間になったら階段をまた上りまして、元の建物に戻ってアンケートを書いて終了です。

ネットでいっぱい見ていたのでそこまでの驚きはなかったのですが、なかなか良い感じでした。

ではでは。

再度挑戦

前回はmaillogはうまくいかずとりあえずapacheだけ設定して終りましたが、引き続き調べたところmaillogもいけそうでした。

参考にしたのはこちら

loggerをsyslogからrsyslogに切り替えて、以下のようにtimestampのフォーマットを変更すればokでした。

# Use default timestamp format
-$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
+$ActionFileDefaultTemplate RSYSLOG_FileFormat

$ sudo /etc/init.d/syslog stop
$ sudo /etc/init.d/rsyslog start
$ sudo chkconfig syslog off
$ sudo chkconfig rsyslog on

無事maillogがmongoに保存されました。
めでたしめでたし。
 

ちなみに

td-agent.confは以下。
<source>
  type tail
  path /var/log/maillog
  tag maillog
  format /^(?<date>[^ ]+) (?<host>[^ ]+) (?<process>[^:]+): (?<message>((?<key>[^ :]+)[ :])? ?((to|from)=<(?<address>[^>]+)>)?.*)$/
#  format syslog
  pos_file /var/log/td-agent/mail.pos
</source>

<match maillog>
  type forward
  flush_interval 10s
  <server>
    host 192.168.1.1
    port 24224
  </server>
</match>
fluentd.conf側はこんな感じ。
<source>
  type forward
  port 24224
</source>
<match maillog>
  type copy
  <store>
    type stdout
  </store>
  <store>
    type mongo
    database mail
    collection log
    host localhost
    port 27017
    flush_interval 10s
  </store>
</match>

どうも。

ハシモトです。

掲題の通り、fluentdで遊んでみようかと思います。
対象のログは自前運用のapacheログとmaillogです。

1   2