本記事で扱う内容の概要
• MiNiFi関連の簡単な紹介
• MiNiFi での SYSLOG データの受信方法
• EFM からのエージェント管理およびフローの設計・デプロイ手順
• 典型的なユースケース・応用例
1. はじめに
SYSLOG とは?
SYSLOGはネットワーク機器やサーバーなど、さまざまなシステムが出力するログを統合管理できる仕組みです。
Apache MiNiFiとは
Apache MiNiFi は、Apache NiFi の軽量版エージェントであり、IoTデバイスやエッジ環境などリソースが限られた環境でデータフローを実行するために設計されたツールです。
Apache MiNiFi は エッジでのデータの収集と処理に特化しています。各デバイス・端末にインストールされるApache MiNiFi エージェントには、Apache NiFi の機能をすべて備えた MiNiFi Java エージェントと、フットプリントが非常に小さい MiNiFi C++ エージェントの2種類があります。
Edge Flow Manager(EFM)とは
Edge Flow Manager (EFM) は、ローコードで数千もの MiNiFi エージェント向けエッジフローアプリケーションを設計・デプロイ・監視できるエージェント管理ハブ
です。エッジに配置されたすべての MiNiFi エージェントを一元的に管理・監視でき、エッジフローのライフサイクル(作成、配備、監視)を包括的にサポートします。
2. システムアーキテクチャの概要
全体像
• ネットワーク機器やサーバー → SYSLOG/SYSLOG → MiNiFi エージェント → (クラスタ NiFi / Kafka / データストアなど)
• EFM はフローの設計・デプロイ・監視を担当
• 前提条件・利用するコンポーネント
• SYSLOG 発生源(例:Linux サーバー、ネットワークルータなど)
• MiNiFi エージェント (Java または C++)
• EFM サーバー (Cloudera Edge Management の一部)
3. MiNiFi のセットアップ
3.1. MiNiFi の種類
• MiNiFi Java エージェント
Apache NiFi の基本機能を JVM 上で動作させる軽量エージェントです。
NiFi と同様のプロセッサが豊富に利用できるため、柔軟な処理ロジックをエッジに近い場所で実行できます。
また、軽量化のため、MiNiFiにデフォルトで入れているプロセッサーは少ないですが、
MiNiFiに最初入れていないプロセッサーは後でNiFiからコピーしてから利用することが可能です。
• MiNiFi C++ エージェント
C++ で実装された超軽量エージェント。
Java版と比べて、メモリや CPU リソースが限られた環境でも動作しやすい設計になっています。
Java 版ほど豊富なプロセッサは用意されていないため、実装できる機能にやや制限があるが、リソースが限られている環境で動くハードルが低いです。
例えば、Raspberry Pi や小型組み込みボードなど、非常に限られたリソース環境でデータ収集を行う場合。
インストール環境も工場の制御装置や遠隔地の IoT デバイスなど、JVM の導入が難しい機器も考えられます。
3.2. SYSLOG 処理に必要なプロセッサの概要
• ListenSyslog などの SYSLOG 受信用プロセッサ
• ログフォーマットのパース(ParseSyslog などを利用する場合)
4. Edge Flow Manager (EFM) の設定
4.1. EFMでMiNiFiエージェントの登録
左側のMonitorメニューをクリックする。
New Agent Classボタンを押して、新しいAgent Classを作成
Agent ClassのNameを入力
もしなにか微調整したい場合、上記画面の【Show Advanced Configurations】をチェックする。
これで、デプロイ先のサーバーで実行したらMiNiFiエージェントがインストールされます。
4.2. EFMでのデータフロー設計
EFMにログインした後、Designメニューに遷移し、対象のAgent Classを選ぶ。
SYSLOG受信ですので、ListenSyslogプロセッサーを選ぶ。
SYSLOG受信関連の設定はプロセッサーをダブルクリックして実施。
クラウド上にあるNiFiクラスタに送信するため、[Remote Processor Group]を選択。
その後、ListenSyslogとRemote Processor Groupをつなぐ
これでAgent側の設定が完了。
次はCloud側にある受信するNiFiクラスタの設定を実施。
5. 受信する側のNiFiのデータフロー設計
Port Name=syslog01にします。
これは前の4.2のRemote Processor Groupの接続先として利用されるものです。
Input Portで受け取ったデータをマージしてS3に出力します。
6. まとめ
MiNiFi と EFM を組み合わせることで、エッジデバイスからの SYSLOG 収集・処理を統合的に管理できます。特に以下の点がメリットです。
• 軽量かつ柔軟: リソース制限が厳しい環境でも動作可能
• 集中管理: 多数のエージェントを一括でモニタリング・デプロイできる
• 拡張性: NiFi や他のシステムと連携し、複雑なデータフローや高度な分析に発展させられる
本記事を参考に、エッジでの SYSLOG 収集や IoT 環境のログ管理を効率的に行い、さらにクラウド側の NiFi クラスターやデータストアへスムーズにつないでいきましょう。
6.1. 各SYSLOGから送信
• SYSLOG を送信する Linux サーバー (syslog などの設定)にMiNiFiを入れる
• MiNiFiの送信先はクラウド上にあるNiFiクラスタ