工場設備の監視と通知
センサーデータを収集し、Brokerで閾値判定や整形を行い、InfluxDBへの保存やSlack通知につなげる。
Serial / MQTT → InfluxDB + Slack
Open SourceIoT Data Router
クラウドが重すぎる現場に、ちょうどいい選択肢。
Krakenは、Kraken Collector と Kraken Broker を組み合わせて、IoTデータの収集・加工・保存・通知までを柔軟に構築できるオープンソースのIoTデータルーターです。
Raspberry Piのような小さな環境から、コンテナベースのスケーラブルな構成まで、用途とコストに応じて育てられます。大規模クラウドIoT基盤が必要な案件もある一方で、Krakenは、より小さく、より自由に始めたい現場のための選択肢です。
Devices / Sensors → Kraken Collector → gRPC → Kraken Broker → DB / Notification / Apps
IoTを始めたいのに、クラウド、アプリケーション、運用基盤まで含めると構成が大掛かりになりすぎる。
そんな悩みは、現場主導でIoTを導入したい企業や、小規模PoCから始めたいチームほど強くなります。
サブスクリプションコストをできるだけ抑えたい。クラウド前提の構成に不安がある。
すべてのリソースを作業現場内(閉域網など)で管理したい。
まずは小さく始めたいのに構成がtoo muchになりやすい。多機能さより、必要な機能をすぐ組めることを重視したい。
Krakenはこうした背景から生まれました。クラウドIoT基盤の豊富な機能が必要な案件もある一方で、運用コストや専有性を重視し、よりコンパクトな構成を求める現場も多くあります。Krakenは、そのために「小さくIoTをスタートする」ことを目的として開発されています。
Krakenは、Collector が多様なプロトコルやデータソースからデータを受け取り、Broker がそのデータを加工・保存・通知・外部連携へつなぐ、2層構成のIoTバックエンドです。
入力と出力を選んで、あなたの現場の構成を組んでみてください。
※ データの流れのイメージです。入力・出力はそれぞれ複数を同時に構成できます。
多様な入力を受け止める、軽量データ収集レイヤー。
エッジIoTセンサや周辺システムからデータを収集するアプリケーションです。Rustで実装されており、Kraken Brokerに対応するgRPCクライアントとして軽量かつスケーラブルに動作します。必要に応じて新しいcollectorを追加して拡張できます。
受信データを業務処理へつなぐ、柔軟なブローカーレイヤー。
Collectorからのデータを受信し、加工、保存、通知などのカスタム処理を実行するデータブローカーです。業務に必要な処理はbrokerとして記述・追加でき、イベントドリブンで非同期に実行されます。現状はPython版が提供されています。機械学習をはじめとするデータ分析系のライブラリが豊富で、処理を簡潔に記述できることからPythonを採用しています。
Brokerを起動し、Collectorを起動し、curlで1件送る。それだけでSlackに通知が届きます。
READMEの手順をそのまま抜粋しています。
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.
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
センサーの代わりに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
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 ならでは
BathTimeFishは、Krakenの開発元であり、BraveJIGの組み込みパートナーです。BraveJIG本体の販売から導入、現場データの取得、その後の活用基盤づくりまで一貫して提供できます。
BathTimeFish提供の BraveJIG CLI(有償) を介して、BraveJIGのセンサーデータを Kraken Collector に接続し、Kraken Broker を通じて前処理、蓄積、通知、外部連携まで一気通貫で構築できます。
センサーをつないで終わりではなく、取得したデータを実際の業務で使える形に整え、保存し、通知し、外部システムへ渡す。BraveJIGと自社システムとのデータ連携や、BraveJIGのセンサー値をもとに機器を動かすデータドリブンな制御の自動化も、Kraken Brokerの処理として実装できます。現場でデータを取れる状態を作るだけでなく、その先の保存・通知・外部連携まで設計することで、IoT導入をPoCで終わらせず実運用につなげやすくします。
※ BraveJIGは、インターネットに繋がずLANからスタートでき、モジュール構成で導入しやすい現場向けのIoTデバイスシリーズとして案内されています。BathTimeFishはBraveJIG組み込みパートナーとして、本体の販売と導入支援を行っています。
Raspberry Piのような低リソース環境でも動作し、オンプレミスで小さくIoTをスタートできます。
クラウド依存を前提とせず、現場内・閉域網・専有環境での運用にも向いています。
多機能性よりも、IoTバックグラウンドシステムに必要最低限の機能を素早く構築できることにフォーカスしています。
Webhook、MQTT、BLE、シリアル、ファイル、カメラ、メール、TCPなど、多様な現場入力に対応できます。
CollectorやBrokerを追加・カスタマイズすることで、自社業務や現場要件に合わせた拡張が可能です。
オープンライセンスのため無料で利用でき、必要に応じて独自実装・独自運用へ発展できます。
センサーデータを収集し、Brokerで閾値判定や整形を行い、InfluxDBへの保存やSlack通知につなげる。
Serial / MQTT → InfluxDB + Slack
クラウド前提にしづらい現場で、Collector/Brokerをオンプレミスに構築し、データ収集から処理までを完結させる。
閉域網内で完結
Raspberry PiやMini PC上で最小構成を作り、まずデータを集めて試すところから素早く始められる。
Raspberry Pi 1台から
シリアル通信、テキストファイル監視、TCP Serverなどを使い、既存設備のデータを段階的に取り込む。
Serial / TextFile / TCP
iBeaconやSMTP受信といった少し特殊な入口も扱え、現場要件に応じたデータ連携を組みやすい。
iBeacon / Email
BraveJIGで収集したデータを、BraveJIG CLI経由でKrakenへ接続し、前処理、DB蓄積、通知まで含めたワークフローを構築する。
BraveJIG → CLI → Kraken
Krakenは、最初から大きく作るための基盤ではなく、小さく始めて必要に応じて育てていける基盤として設計されています。
最小構成
Raspberry Pi / Mini PC 1台から始める。
向いている用途PoC、検証、単拠点導入
標準構成
オンプレミスまたはVM上で安定運用する。
向いている用途複数入力、DB保存、通知連携まで視野に入れた継続利用
拡張構成
コンテナベースでCollector/Brokerを拡張する。
向いている用途複数拠点、複数データフロー、将来的な成長を見据えた運用
どの規模でも、同じCollector / Brokerの構成のまま育てられます。
Krakenはオープンソースとして無料で利用できます。一方で、実際の導入では、要件整理、既存設備との接続、Collector追加開発、Broker実装、保存先設計、通知設計、運用監視、障害対応など、現場ごとの技術判断が重要になります。
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連携支援も提供します。
Krakenは、IoTを小さく始めたい現場のために作られた、自由度の高いオープンソース基盤です。GitHubからすぐに試せます。実案件での導入や拡張が必要なら、BathTimeFishが支援します。