Open SourceIoT Data Router

IoTを、もっと小さく、
自由に。

クラウドが重すぎる現場に、ちょうどいい選択肢。

Krakenは、Kraken CollectorKraken Broker を組み合わせて、IoTデータの収集・加工・保存・通知までを柔軟に構築できるオープンソースのIoTデータルーターです。

Raspberry Piのような小さな環境から、コンテナベースのスケーラブルな構成まで、用途とコストに応じて育てられます。大規模クラウドIoT基盤が必要な案件もある一方で、Krakenは、より小さく、より自由に始めたい現場のための選択肢です。

  • LicenseMIT
  • CollectorRust
  • BrokerPython
  • TransportgRPC
  • Runs onRaspberry Pi 〜 Container
Sensors / Devices / Apps から Kraken Collector へ、gRPC で Kraken Broker へ、そして DB / Notification / Apps へデータが流れる構成図 Sensors Devices External Apps gRPC Kraken Collector Rust Kraken Broker Python DB Notification Apps

Devices / Sensors → Kraken Collector → gRPC → Kraken Broker → DB / Notification / Apps

クラウドIoTが、少し大きすぎる現場へ。

IoTを始めたいのに、クラウド、アプリケーション、運用基盤まで含めると構成が大掛かりになりすぎる。
そんな悩みは、現場主導でIoTを導入したい企業や、小規模PoCから始めたいチームほど強くなります。

コスト・専有性

サブスクリプションコストをできるだけ抑えたい。クラウド前提の構成に不安がある。

オンプレミス志向

すべてのリソースを作業現場内(閉域網など)で管理したい。

ミニマルな要件

まずは小さく始めたいのに構成がtoo muchになりやすい。多機能さより、必要な機能をすぐ組めることを重視したい。

Krakenはこうした背景から生まれました。クラウドIoT基盤の豊富な機能が必要な案件もある一方で、運用コストや専有性を重視し、よりコンパクトな構成を求める現場も多くあります。Krakenは、そのために「小さくIoTをスタートする」ことを目的として開発されています。

収集から処理まで、IoTデータの流れをシンプルに。

Krakenは、Collector が多様なプロトコルやデータソースからデータを受け取り、Broker がそのデータを加工・保存・通知・外部連携へつなぐ、2層構成のIoTバックエンドです。
入力と出力を選んで、あなたの現場の構成を組んでみてください。

1入力を選ぶCollector

2出力を選ぶBroker

HTTP Webhooks Collector Broker Slack

                    

※ データの流れのイメージです。入力・出力はそれぞれ複数を同時に構成できます。

Kraken Collector

Rust

多様な入力を受け止める、軽量データ収集レイヤー。

エッジIoTセンサや周辺システムからデータを収集するアプリケーションです。Rustで実装されており、Kraken Brokerに対応するgRPCクライアントとして軽量かつスケーラブルに動作します。必要に応じて新しいcollectorを追加して拡張できます。

Kraken Broker

Python

受信データを業務処理へつなぐ、柔軟なブローカーレイヤー。

Collectorからのデータを受信し、加工、保存、通知などのカスタム処理を実行するデータブローカーです。業務に必要な処理はbrokerとして記述・追加でき、イベントドリブンで非同期に実行されます。現状はPython版が提供されています。機械学習をはじめとするデータ分析系のライブラリが豊富で、処理を簡潔に記述できることからPythonを採用しています。

3ステップで、最初のデータが届く。

Brokerを起動し、Collectorを起動し、curlで1件送る。それだけでSlackに通知が届きます。
READMEの手順をそのまま抜粋しています。

1

Brokerを起動する

Python

Slack通知を行うBrokerとして起動します。Webhook URLはご自身のSlackのものに置き換えてください。

# clone
git clone https://github.com/bathtimefish/kraken_broker_python
cd kraken_broker_python

# Slack broker として設定
export PYTHONDONTWRITEBYTECODE=1
export KRAKENB_DEBUG=1
export KRAKENB_GRPC_HOST=[::]:50051
export KRAKENB_SLACK_URL=[YOUR_SLACK_WEBHOOK_URL]

python ./src/main.py
起動ログ
INFO:root:gRPC server was started on `[::]:50051`
INFO:root:KRAKEN BROKER is running as debug mode.
2

Collectorを起動する

Rust

HTTP Webhookを受け付けるCollectorとしてビルド・起動します。

# clone & build
git clone https://github.com/bathtimefish/kraken_collector
cd kraken_collector
cargo build

# Webhook receiver として設定
export KRKNC_BROKER_HOST=http://[::1]:50051
export KRKNC_WEBHOOK_PATH=webhook
export KRKNC_WEBHOOK_PORT=3000

RUST_LOG=error,main=debug cargo run --bin main
起動ログ
[INFO  main] KRAKEN Collector -- The Highlevel Data Collector -- boot sequence start.
[DEBUG main::collectors::webhook] Webhook server was started and is listening on http://0.0.0.0:3000
3

データを送る

センサーの代わりにcurlで1件POSTします。

curl -X POST -H "Content-Type: application/json" \
  -d '{"id":"101", "name":"env-sensor", "temp":"25.6", "hum":"52.4"}' \
  http://localhost:3000/webhook
Slackに届くメッセージ
kind=collector, provider=webhook, payload={"id":"101", "name":"env-sensor", "temp":"25.6", "hum":"52.4"}

ビルドにはRust(cargo)とPython、およびREADME記載のパッケージ(protobuf-compiler など)が必要です。詳細は GitHubのGetting Started をご覧ください。

BathTimeFish ならでは

BraveJIGの現場データを、
すぐ業務フローへ。

BathTimeFishは、Krakenの開発元であり、BraveJIGの組み込みパートナーです。BraveJIG本体の販売から導入、現場データの取得、その後の活用基盤づくりまで一貫して提供できます。

BathTimeFish提供の BraveJIG CLI(有償) を介して、BraveJIGのセンサーデータを Kraken Collector に接続し、Kraken Broker を通じて前処理、蓄積、通知、外部連携まで一気通貫で構築できます。

センサーをつないで終わりではなく、取得したデータを実際の業務で使える形に整え、保存し、通知し、外部システムへ渡す。BraveJIGと自社システムとのデータ連携や、BraveJIGのセンサー値をもとに機器を動かすデータドリブンな制御の自動化も、Kraken Brokerの処理として実装できます。現場でデータを取れる状態を作るだけでなく、その先の保存・通知・外部連携まで設計することで、IoT導入をPoCで終わらせず実運用につなげやすくします。

  1. BraveJIG 集める LANから始められるモジュラー型IoTデバイス
  2. BraveJIG CLI・有償 つなぐ BathTimeFish提供。センサーデータをKraken Collectorへ
  3. Kraken・OSS 活かす 前処理・蓄積・通知・外部連携まで一気通貫
導入支援 BraveJIG本体の販売・導入からKraken連携、運用設計までBathTimeFishがまとめて提供します。

※ BraveJIGは、インターネットに繋がずLANからスタートでき、モジュール構成で導入しやすい現場向けのIoTデバイスシリーズとして案内されています。BathTimeFishはBraveJIG組み込みパートナーとして、本体の販売と導入支援を行っています。

Krakenが選ばれる理由

  • 小さく始められる

    Raspberry Piのような低リソース環境でも動作し、オンプレミスで小さくIoTをスタートできます。

  • クラウド前提ではない

    クラウド依存を前提とせず、現場内・閉域網・専有環境での運用にも向いています。

  • 必要な機能を迅速に構築

    多機能性よりも、IoTバックグラウンドシステムに必要最低限の機能を素早く構築できることにフォーカスしています。

  • 入力経路が広い

    Webhook、MQTT、BLE、シリアル、ファイル、カメラ、メール、TCPなど、多様な現場入力に対応できます。

  • 自由に拡張できる

    CollectorやBrokerを追加・カスタマイズすることで、自社業務や現場要件に合わせた拡張が可能です。

  • 無料で使えるOSS

    オープンライセンスのため無料で利用でき、必要に応じて独自実装・独自運用へ発展できます。

こんな現場でKrakenは活躍します

工場設備の監視と通知

センサーデータを収集し、Brokerで閾値判定や整形を行い、InfluxDBへの保存やSlack通知につなげる。

Serial / MQTT → InfluxDB + Slack

閉域環境でのIoT導入

クラウド前提にしづらい現場で、Collector/Brokerをオンプレミスに構築し、データ収集から処理までを完結させる。

閉域網内で完結

PoC・実証実験

Raspberry PiやMini PC上で最小構成を作り、まずデータを集めて試すところから素早く始められる。

Raspberry Pi 1台から

レガシー設備との接続

シリアル通信、テキストファイル監視、TCP Serverなどを使い、既存設備のデータを段階的に取り込む。

Serial / TextFile / TCP

BLEビーコンやメール起点

iBeaconやSMTP受信といった少し特殊な入口も扱え、現場要件に応じたデータ連携を組みやすい。

iBeacon / Email

BraveJIGを活用した基盤構築

BraveJIGで収集したデータを、BraveJIG CLI経由でKrakenへ接続し、前処理、DB蓄積、通知まで含めたワークフローを構築する。

BraveJIG → CLI → Kraken

向いているケース

  • 小規模から始めたい
  • オンプレミスや閉域網で運用したい
  • センサーデータの収集から前処理・蓄積までを柔軟に組みたい
  • クラウドIoT基盤が大がかりすぎると感じている
  • BraveJIGなどの現場デバイスと組み合わせて、短期間でIoT基盤を立ち上げたい

最初から向いているとは限らないケース

  • 最初から大規模なマネージドクラウド基盤を前提にしたい
  • ベンダー提供の完成済みSaaSをそのまま使いたい
  • 独自設計よりも、すぐに完成済みの業務アプリを導入したい

用途と予算に合わせて、導入規模を選べます

Krakenは、最初から大きく作るための基盤ではなく、小さく始めて必要に応じて育てていける基盤として設計されています。

Starter

最小構成

Raspberry Pi / Mini PC 1台から始める。

向いている用途PoC、検証、単拠点導入

Standard

標準構成

オンプレミスまたはVM上で安定運用する。

向いている用途複数入力、DB保存、通知連携まで視野に入れた継続利用

Scalable

拡張構成

コンテナベースでCollector/Brokerを拡張する。

向いている用途複数拠点、複数データフロー、将来的な成長を見据えた運用

どの規模でも、同じCollector / Brokerの構成のまま育てられます。

OSSだからこそ、必要なところだけプロに頼めます

Krakenはオープンソースとして無料で利用できます。一方で、実際の導入では、要件整理、既存設備との接続、Collector追加開発、Broker実装、保存先設計、通知設計、運用監視、障害対応など、現場ごとの技術判断が重要になります。

無料・OSS

自分たちで進められること

  • Collector / Brokerの利用(MIT License)
  • HTTP、MQTT、Serialなど標準入力の利用
  • InfluxDB、Redis、MongoDB、WebSocket、Slack連携
  • 独自Collector / Brokerの実装と運用
有償・BathTimeFish

開発元に頼めること

  • 導入相談・PoC立ち上げ支援
  • Collectorの新規追加開発・Brokerのカスタム処理実装
  • BraveJIG CLI提供・BraveJIG連携支援
  • DB / 通知 / 外部システム連携設計
  • オンプレミス構成支援・コンテナ化 / スケール設計
  • 運用保守 / 障害調査
BathTimeFishに相談する

BathTimeFishでは、Krakenの開発元として、導入支援・カスタマイズ開発・保守サポートを提供しています。OSSの自由さを保ちながら、必要な部分だけ実装支援を受けられます。

よくある質問

はい。KrakenはOSSとして公開されており、無料で利用できます。

HTTP Webhooks、MQTT、WebSocket、iBeacon、シリアル通信、テキストファイル監視、Camera、Email、BraveJIG、TCP Serverなどに対応しています。

はい。KrakenはRaspberry Piのような低リソースなコンピュータ上で、小さくIoTをスタートする用途を想定しています。

はい。Krakenはクラウドおよびオンプレミス環境の両方で利用できる構成として設計されています。

はい。Brokerでデータ加工、保存、通知を行えます。InfluxDB、Redis、MongoDB、WebSocket、Slackなどの連携が可能です。

はい。Collectorの追加実装やBrokerのカスタマイズにより、業務要件に応じた拡張が可能です。

はい。Kraken CollectorはBraveJIG連携に対応しており、BathTimeFishが提供するBraveJIG CLI(有償)を介してセンサーデータをKrakenへ取り込めます。これにより、前処理、DB保存、通知、外部連携まで含めたワークフローを構築できます。

はい。BathTimeFishでは導入相談、カスタマイズ開発、運用支援に加えて、BraveJIG CLIの提供およびBraveJIG連携支援も提供します。

まずはOSSとして試す。
必要なら、開発元に相談する。

Krakenは、IoTを小さく始めたい現場のために作られた、自由度の高いオープンソース基盤です。GitHubからすぐに試せます。実案件での導入や拡張が必要なら、BathTimeFishが支援します。

導入相談でわかること

  • Krakenで実現できる構成の整理
  • BraveJIG連携の可否と進め方(本体の販売もご相談いただけます)
  • PoCの最小構成
  • カスタマイズが必要な範囲
  • おおまかな導入ステップ