ソフト屋がFluentdへのログ転送クライアントをSynthesijerで作ってみた

MIDIメッセージをW5300でネットワークに流し
ログ収集ツールFluentdでロギング!
ソフ
ト
FPG 感覚で
A開
発!
ソフト屋がFluentdへのログ転送クライアントをSynthesijerで作ってみた
佐藤 一憲
Kazunori Sato
Intel社によるAltera社の買収や,Microsoft社によるWeb検索サービスBingへのFPGAの導入などで,FPGAはいまやソフトウェア・
エンジニアにとっ ても注 目の技 術です. ここでは, ログ収 集ツー ル Fluentd へのログ転 送クライアントを, 高 位 合 成ツー ル
Synthesijer を用いて FPGA に実装する例を通じて,「ソフト屋なら FPGA はこう使う」という新しい視点を紹介します.
1
Fluentd で MIDI 信号を
ログ収集する
拾って,Fluentd が動作するサーバに MIDI メッセー
ジをログとして転送するクライアントを FPGA で実
装しました.MIDI 信号を Fluentd に変換すること自
● ログ収集ツール Fluentd とは
体にはあまり使い道はありません.ここでのポイント
Fluentd(http://www.fluentd.org/)は,日本人
は,Fluentd というアプリケーション層のロジックを
エンジニアが中心となって開発されたオープン・ソー
ハードウェアで直接扱っている点,そしてオープン・
スのログ収集ツールです(図 1).Ruby で実装されて
ソースの高位合成ツール Synthesijer を用いて実装し
おり,Linux や Mac,Windows 上で稼働します.オー
た点です.
プン・ソース・コミュニティによってさまざまな種類
● オール・ハードウェアで実装できたのは
の プ ラ グ イ ン が 実 装 さ れ て お り,Apache httpd や
Synthesijer のおかげ
Nginx のようなWebサーバ・ソフトウェアをはじめ,
本実装では,MIDI 信号のデコードから TCP/IP 通
MongoDB,Amazon S3,Google BigQuery などのデー
信,Fluentd の msgpack プロトコルのエンコードに至
タベースやクラウド・サービスとも簡単に接続できるの
るまで CPU や OS を使わず,全てハードウェアのみで
が特徴です.
実装しています.ちなみに,筆者の本業はソフトウェ
その 手 軽 さ と プ ラ グ イ ン の 便 利 さ か ら, 国 内 の
ア開発やクラウド分野で,ハードウェア開発は全くの
Web 開発では業界標準ツールとして普及しているほ
素人です.それでもなんとか動くものを作れたのは,
か,Google がクラウド・プラットホームの標準ログ・
Java 言語の構文でハードウェアの振る舞いを記述で
コレクタとして採用するなどの世界的な広がりを見せ
きる Synthesijer のおかげです.
ています.
コストの下がった FPGA と高位合成ツールの組み合
● MIDI 信号をネットワークへ送信
わせによって,アプリケーション層のロジックをハー
今回筆者は,MIDI キーボードからの MIDI 信号を
ドウェアで直接実装するハードルがぐんと下がってい
ることを示したい!という思いから実装しました.
● デモの様子と動画
写真 1 にデモの様子を示します.このデモ動画では,
図 1 ログ収集ツール Fluentd
88
写真 1 MIDI キーボード+ FPGA 評価ボード DE0 + Fluentd デモ
デモ動画は https://www.youtube.com/watch?v=SEr9_NqvpBM
ソフト屋が Fluentd へのログ転送クライアントを Synthesijer で作ってみた