0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Distributed computing (Apache Spark, Hadoop, Kafka, ...)Advent Calendar 2024

Day 9

MiNiFi/Edge Flow Managerで、SYSLOGをデータを集めてくる

Last updated at Posted at 2025-01-22

本記事で扱う内容の概要

• 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 の一部)
image.png

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を作成
image.png
Agent ClassのNameを入力
image.png

保存したら、下記画面になる:
image.png

JavaエージェントのMiNiFiを配るコマンドを生成:
image.png

もしなにか微調整したい場合、上記画面の【Show Advanced Configurations】をチェックする。
image.png

これで、デプロイ先のサーバーで実行したらMiNiFiエージェントがインストールされます。

4.2. EFMでのデータフロー設計

EFMにログインした後、Designメニューに遷移し、対象のAgent Classを選ぶ。
image.png

[Processor] を画面に持ってくる。
image.png

SYSLOG受信ですので、ListenSyslogプロセッサーを選ぶ。
image.png

SYSLOG受信関連の設定はプロセッサーをダブルクリックして実施。
image.png

クラウド上にあるNiFiクラスタに送信するため、[Remote Processor Group]を選択。
image.png

その後、ListenSyslogとRemote Processor Groupをつなぐ
image.png

これでAgent側の設定が完了。

次はCloud側にある受信するNiFiクラスタの設定を実施。

5. 受信する側のNiFiのデータフロー設計

まずはInput Portを入れる。
image.png

Port Name=syslog01にします。
これは前の4.2のRemote Processor Groupの接続先として利用されるものです。
image.png

Input Portで受け取ったデータをマージしてS3に出力します。
image.png

6. まとめ

MiNiFi と EFM を組み合わせることで、エッジデバイスからの SYSLOG 収集・処理を統合的に管理できます。特に以下の点がメリットです。
• 軽量かつ柔軟: リソース制限が厳しい環境でも動作可能
• 集中管理: 多数のエージェントを一括でモニタリング・デプロイできる
• 拡張性: NiFi や他のシステムと連携し、複雑なデータフローや高度な分析に発展させられる

本記事を参考に、エッジでの SYSLOG 収集や IoT 環境のログ管理を効率的に行い、さらにクラウド側の NiFi クラスターやデータストアへスムーズにつないでいきましょう。

6.1. 各SYSLOGから送信

• SYSLOG を送信する Linux サーバー (syslog などの設定)にMiNiFiを入れる
• MiNiFiの送信先はクラウド上にあるNiFiクラスタ
image.png

6.2. NiFiサーバーが受信

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?