MQTT メッセージのログと分析方法
ELKスタックで?

導入事例

ザ・オブ・ザ・ELKSについて(Elasticsearch, Logstash, Kibana) は強力な オープンソース ログ管理と分析プラットフォーム。こだわり、中心 コンポーネント, サポートレプリト複数のデータをコピーできるようにする ノード。 これは保障します科学研究データの損失を防止することで ノード 失敗。

Elasticsearch のレプリケーションが向上トレーニングによって 分布検索 レプリカを渡る要求。 それはまた高めますスキャッラ、許可して下さい システム より効率的にクエリを処理する。 デフォルトでは、Elasticsearch は作成します1 プレート/ シャドー、しかしこれは条件に基づいて調節することができます。 適切なレプリケーション戦略 お問い合わせ負荷分散、欠陥の許容および全面的なシステム信頼性。

研究開発

Elasticsearch は検索と分析設計設計 大量の処理のために リアルタイムのデータ。 データの保存ノSQLJSONを使ったフォーマット 文書および速い提供しますフルテキスト検索機能。 データのインデックス化お問い合わせ、迅速な検索を可能にする そして分析。 Elasticsearch はスカルラブル、支持の横 ノードを複数のノードに追加することでスケーリング クラスター。 オファー書籍・書籍データの確保 冗長性およびログイン よくある質問お問い合わせ よくある質問 使用例:ログ分析、セキュリティ監視、ビジネス ハードウェア

ログイン

Logstashはデータ処理収集、変換、 そして、 Elasticsearch を含むさまざまな宛先にデータを送信します。 からデータを摂取することができますソースログ、メトリック、データベース、メッセージキューなど。 Logstash は、パワフルなデータを処理するログイン システム変換、濃縮、解析が可能。 各種プラグインに対応 異なる処理 JSON、CSV、syslog などのデータ形式。 Logstash は頻繁に使用されますログ、データ変換、 基準データ処理貯蔵の前に。

キバナ

キバナはソリューション対話するように設計されています Elasticsearch に保存されているデータを使って。 直感的な機能を提供科学研究作成のために グラフ、グラフなどの可視化 そして地図。 Kibanaはリアルタイムのデータ調査を可能にし、ログを分析し、監視しやすくなります。 システム性能。 それはのような特徴を含んでいます機械学習、セキュリティ 監視アラートユーザーはインタラクティブなダッシュボードを構築し、データを異常にアラートを設定できます。 キバナは広く のために使用されるログ解析、セキュリティイベント監視、ビジネス ニュース



開始する前に、次のことを確実にします。

  • Linux ドキュメント(Ubuntu 20.04推奨)
  • MQTT ルートインストールと実行
  • Java 8以降(ELKとカフカの必須)
  • Elasticsearch、Logstash、Kibana(ELK) スタック)インストール

ステップ1:ELKにJava 8をインストールする

  • 更新:sudo apt アップデート
  • OpenJDK 8 は、sudo apt install -y openjdk-8-jdk
  • お問い合わせログイン
  • java8 は java8 が java8 で java8 を 設定します。


マシンにJavaをインストールした場合、次の出力が表示されます。

テキストコピッド

openjdk バージョン "1.8.0_442"
OpenJDKランタイム環境(ビルド1.8.0_442-8u442-b06~us1-0ubuntu1~20.04-b06)
OpenJDK 64ビットサーバーVM (ビルド25.442-b06、混合モード)

ステップ2:ELKスタックのインストールと構成

  • Elasticsearch のインストール:

更新システムパッケージ:sudo apt update &&sudo apt のアップデート ログイン


ダウンロード Elasticsearch 8.17.3 :


ログイン https://artifacts.elastic.co/downloads/elasticsearch-8.17.3-amd64.deb


Elasticsearch のインストール:sudo dpkg -iの Elasticsearch-8.17.3-amd64.debの特長


Elasticsearch の設定: コマンドを呼び出して実行します。 Elasticsearch をフォローする


sudo 応用 /etc/elasticsearch/elasticsearch.yml


# ネットワーク設定
ネットワーク.host: 0.0.0.0
http.port: 9200


# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
クラスター名: my-cluster
node.name: ノード-1


# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
xpack.security.enabled:真

Elasticsearch の起動と有効化:


sudo systemctl は Elasticsearch です。


sudo systemctl スタート Elasticsearch

Elasticsearch が正常に動作しているかどうかを確認するには、ステータスを確認してください。結果は以下に示すように表示されます。

  • Elasticsearch.service - Elasticsearch の使い方

ロード: ロード (/lib/systemd/system/elasticsearch.service; ) 最近の投稿

金曜日2025-03-25 11:59:26 IST; 16分前

ドキュメント: https://www.elastic.co

PID:1554(Java)

担当: 18932

記憶: 8.5G

CGroup: /system.slice/elasticsearch.service

─├1554 /usr/share/elasticsearch/jdk/bin/java -Xms4m -Xmx64m -XXX:+ 基調講演 -Dcli.name=サーバ -Dcli.script=/usr/share/elasticsearch/bin/e>

─├2134 /usr/share/elasticsearch/jdk/bin/java -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouc >

└2158号 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller

3月25日 11:58:11 ホストシステム[1]: Elasticsearch の開始...

3 月 25 11:58:47 ホストシステム エントリーポイント[2134]: コンパイル: ログイン java/lang/invoke/MethodHandle.setAsTypeCache bool dontinline = true の

3 月 25 11:58:47 ホストシステム エントリーポイント[2134]: コンパイル: ログイン java/lang/invoke/MethodHandle.asTypeUncached bool dontinline = true

3月25日 11:59:26 ホストシステム[1]: Elasticsearch 起動。

行 1-16/16 (END)

Elasticsearch のパスワードを生成する。 デフォルトでは、ユーザー名とパスワードがデフォルトで表示されます。 Elasticsearch バージョン 8.17.3 を接続するために必要な


Elasticsearch パスワードを生成するには、次のコマンドを使用します。


sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password の使い方 -uの伸縮性がある


インストールの確認:


パスワードが正常に生成された後、次のコマンドを実行して確認します。

Elasticsearch バージョン 8.17.3 は正しくインストールされています。
カール -k http://localhost:9200 -u 弾性:your_password


Elasticsearch が以下の結果が適切に設定されている場合:

お問い合わせ
"name" : "ホスト名"
"cluster_name" : "elasticsearch",
"cluster_uuid" : "kKzyHzjcTGGei6ikXndcFA",
「バージョン」 : お問い合わせ
数字: "8.17.3"
"build_flavor" は、 "デフォルト",
ビルドタイプ: "deb",
"a091390de485bd4b127884f7e565c0cad59b10d2"
"build_date" : "2025-02-28T10:07:26.089129809Z",
"build_snapshot" : パスワード
"lucene_version" : "9.12.0",
"minimum_wire_compatibility_version" : "7.17.0",
"minimum_index_compatibility_version" : "7.0.0"
お問い合わせ
"タグライン" : 「あなたを知って、検索のために」
お問い合わせ

Elasticsearch の TLS/SSL 構成 8.17.3 :


Elasticsearch 8.17.3 には、組み込みのセキュリティが含まれており、通信には TLS/SSL が必要です。 これらの手順に従って、HTTP とトランスポートレイヤーの両方で TLS/SSL を構成します。


  • SSL証明書の生成:

Elasticsearch には、証明書を生成するための組み込みツールが含まれています。 証明書を生成するには、次のコマンドを使用します。


sudo /usr/share/elasticsearch/bin/elasticsearch-certutil cert -- silent ディレクティブ フィードバック --keep-ca-key --out ディレクティブ /etc/elasticsearch/certs.zip


証明書を抽出して下さい:


sudo apt は unzip -y をインストールします
sudo mkdir sudo mkdir sudo mkdir sudo mkdir sudo mkdir sudo mkdir sudo mkdir sudo mkdir sudo mkdir sudo mkdir sudo mkdir ・p /etc/elasticsearch/certs
sudo unzip /etc/elasticsearch/certs.zip -d /etc/elasticsearch/certs/
sudo chmod -R 750 /etc/elasticsearch/certs
sudo クラウン -Rの伸縮性調査:elasticsearch/etc/elasticsearch/certs


    2。 TLS/SSL の Elasticsearch の設定:


以下のコマンドを使用して Elasticsearch 設定ファイルを編集します。


sudoナノ /etc/elasticsearch/elasticsearch.yml


設定の追加または更新:

以下の機能が Elasticsearch.yml に存在していない場合は、それらを追加します。 既に存在している場合、設定または有効化します。


# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # セキュリティ機能を有効にする
xpack.security.enabled:真
xpack.security.enrollment.enabled: 真


# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # クラスターノード間の暗号化と相互認証を有効にする
xpack.security.transport.ssl:
有効: true
認証モード: 証明書
キーストア.パス: certs/transport.p12
truststore.path: certs/transport.p12 の形式


# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 現在のノードで新しいクラスターを作成する
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 追加ノードは、後でクラスターに参加できます
cluster.initial_master_nodes: ["ホスト名"]


# どこでも HTTP API 接続を許可する
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 接続は暗号化され、ユーザ認証が必要です
http.host: 0.0.0.0


# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 他のノードがクラスターに参加できるようにする
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 接続は暗号化され、相互に認証されます
#transport.host: 0.0.0.0


Elasticsearch の再起動:

変更する Elasticsearch は、

sudo systemctl タスク管理


Elasticsearch の実行手順 : : : : :

sudo systemctl ディレクティブ Elasticsearch サービス


Elasticsearch TLS/SSL は、以下の手順を実行します。

ライセンス認証

sudo /etc/elasticsearch/certs など


TLS/SSL は、次のコマンドを実行します。

-k --cacert /etc/elasticsearch/certs/ca.crt -u 弾力性:password 'https://localhost:9200'


Elasticsearch は、TLS/SSL で動作します。

お問い合わせ
"name" : ホスト名
"cluster_name" : "elasticsearch",
"cluster_uuid" : "kKzyHzjcTGGei6ikXndcFA",
このサイトについて
数字: "8.17.3"
"build_flavor" は、 "デフォルト",
ビルドタイプ: "deb",
"a091390de485bd4b127884f7e565c0cad59b10d2"
"build_date" : "2025-02-28T10:07:26.089129809Z",
"build_snapshot" : お問い合わせ
"lucene_version" : "9.12.0",
"minimum_wire_compatibility_version" : "7.17.0",
"minimum_index_compatibility_version" : "7.0.0"
お問い合わせ
「タグ ライン」
お問い合わせ

Logstashをインストール:


ダウンロード Logstash 8.17.3


ログイン https://artifacts.elastic.co/downloads/logstash/logstash-8.17.3-amd64.deb


ログスタッシュ インストール 8.17.3


sudo dpkg -i logstash-8.17.3-amd64.deb


。 。


以下のコマンドを使用して、Logstashバージョン8.17.3がインストールされているかどうかを確認してください。 バージョンが表示された場合、 つまり、Logstashはマシン上で正しくインストールされます。

/usr/share/logstash/bin/logstash は、 --バージョン


結果は次のように見えます:

/usr/share/logstash/jdk
ログスタ 8.1ッシュ7.3


logstash の起動と有効化:

sudo systemctl により logstash が取得

sudo systemctl 起動logstash


ログイン : : : :

sudo systemctl ログスタッシュ


入出力路:

ログスタッシュ。 サービス - logstash
ロード: ロード (/lib/systemd/system/logstash.service; 続行: 続行)
金曜日2025-03-25 12:55:40 IST; 11s 前に
PID:4519(日本語)
担当:18932
記憶: 344.9M
CGroup: /system.slice/logstash.service
└ ─4519 /usr/share/logstash/jdk/bin/java -Xms1g -Xmx1g -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djruby.compile.invokedynamic=true -XX:+HeapDumpOnOutOfMemoryError → → → → → →
3月25日 12:55:40 ホスト名 systemd[1]: logstash の起動
3月25日 12:55:40 ホスト名 logstash[4519]: マネージド JDK 設定: /usr/share/logstash/jdk
行 1-11/11 (END)

Logstashログをログファイルで確認する

1。 Logstash は /var/log/logstash/logstash-plain.log にログを書き込みます。 使用中のログを表示:

sudo tail -f /var/log/logstash/logstash-plain.log - sudo tail -f /var/logstash/logstash/logstash-plain.log


2。 Logstashログを確認するには、ジャーナルctl を使用します。

sudoジャーナルctl -u logstash -f


ダウンロード Kibana 8.17.3

Kibana 8.17.3 は、以下のコマンドを実行します。

wget https://artifacts.elastic.co/downloads/kibana/kibana-8.17.3-amd64.deb


キバナ8.17.3

sudo dpkg -i kibana-8.17.3-amd64.deb


キバナの設定 8.17.3

Kibana は、以下の手順を実行します。
ステップ1:

設定ファイルsudo利用方法 /etc/kibana/kibana.yml(キバナ)


ステップ2:
詳しくはこちら

server.port: "5601"
server.host: "ローカルホスト"
Elasticsearch.hosts: ["http://localhost:9200"]
Elasticsearch.username: "kibana_system" の
Elasticsearch.password: 「今」と題する
Elasticsearch.max ソケット: 1024


設定する

Kibana の起動と有効化:


sudo systemctl により kibana が あります

sudo systemctl スタート kibana


その結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 結果 以下:


  • キバナ - キバナ

ロード: ロード (/lib/systemd/system/kibana.service) 注意:

金曜日2025-03-25 15:14:22 IS 10分前

ドキュメント: https://www.elastic.co

PID:1554(Java)

9690 (ノード)

担当:18932

記憶: 598.2M

Cグループ: /system.slice/kibana.service

└9690 /usr/share/kibana/bin/../node/glibc-217/bin/node /usr/share/kibana/bin/../src/cli/dist

Mar 25 15:17:09 ホスト名 kibana[9690]: [2025-03-25T15:17:09.848+05:30][ERROR][http] 400受注生産

Mar 25 15:19:46 ホスト名 kibana[9690]: [2025-03-25T15:19:46.504+05:30][INFO][plugins.securityソリューション] リスクエンジン

Mar 25 15:19:46 ホスト名 kibana[9690]: [2025-03-25T15:19:46.860+05:30][INFO][plugins.cloudSecurityPosture] クラウドセキュリティ 尾尾尾尾尾尾尾尾

Mar 25 15:19:46 ホスト名 kibana[9690]: [2025-03-25T15:19:46.861+05:30][INFO][plugins.cloudSecurityPosture] クラウドセキュリティ お問い合わせ

Mar 25 15:19:46 ホスト名 kibana[9690]: [2025-03-25T15:19:46.862+05:30][INFO][plugins.cloudSecurityPosture] クラウドセキュリティ 尾尾尾尾尾尾尾尾

Mar 25 15:19:47 ホスト名 kibana[9690]: [2025-03-25T15:19:47.193+05:30][INFO][plugins.cloudSecurityPosture] クラウドセキュリティ の

Mar 25 15:19:47 ホスト名 kibana[9690]: [2025-03-25T15:19:47.199+05:30][INFO][plugins.cloudSecurityPosture] クラウドセキュリティ クラウドサービス

Mar 25 15:19:47 ホスト名 kibana[9690]: [2025-03-25T15:19:47.336+05:30][INFO][plugins.cloudSecurityPosture] クラウドセキュリティ 尾尾尾尾尾尾尾尾

Mar 25 15:19:47 ホスト名 kibana[9690]: [2025-03-25T15:19:47.372+05:30][INFO][plugins.cloudSecurityPosture] クラウドセキュリティ 尾尾尾尾尾尾尾尾

Mar 25 15:19:47 ホスト名 kibana[9690]: [2025-03-25T15:19:47.406+05:30][INFO][plugins.cloudSecurityPosture] クラウドセキュリティ テレメトリー:


キバナ


Kibanaは、次のURLを構成します。


http://<server_ip>:5601


お問い合わせhttp://localhost:5601


TLS/SSL で kibana 8.17.3 別の.


Elasticsearch は、TLS/SSLの特長 (HTTPS)構成要素お問い合わせ ふりがなお問い合わせ


Kibana は、TLS/SSL で設定できます。


ステップ1:

設定ファイル:sudo利用方法 /etc/kibana/kibana.yml(キバナ)


ステップ2:
Elasticsearch certs から certficate へ コピーする kibana certs ディレクトリ :


cp /etc/elasticsearch/certs/elastic-stack-ca.crt /etc/キバナ/


証明書の認証


キバナ:キバナ /etc/kibana/elastic-stack-ca.crt


chmod 600 /etc/kibana/elastic-stack-ca.crt


信息披露


ls -l /etc/kibana/elastic-stack-ca.crt


出力する
-rwxr-x--- 1 キバナキバナ1915 3月25日 13:56 /etc/kibana/elastic-stack-ca.crt


ステップ3:
詳しくはこちら


事務所: 5601
server.host : "ローカルホスト"
Elasticsearch.hosts: [「https://localhost:9200」]
Elasticsearch.username: "kibana_system" の
Elasticsearch.password: 「今」と題する
Elasticsearch.max ソケット: 1024
Elasticsearch.ssl.certificateAuthorities: [ "/etc/kibana/http_ca.crt" ]


最後に、kibana は、


お問い合わせ脚注栏目http://localhost:5601, kibana.yml で TLS


お問い合わせ


server.ssl.enabled: 真
server.ssl.certificate: "/etc/kibana/kibana.crt"
server.ssl.key: "/etc/kibana/kibana.key"


ステップ4:
キバナは、


sudo systemctl は kibana へ 行く.


Elasticsearch は、 お問い合わせ

手動でパスワードを設定する


ターミナルで次のコマンドを使用します。


ログイン /usr/share/elasticsearch/bin/elasticsearch-reset-password -u <username> -i


ステップ4: キバナへのアクセスをお試しください


ご利用の場合キバナ エスプレ, 使用:


https://localhost:5601


お問い合わせKibana SSLとは, 使用:


http://localhost:5601


Kibana が実行中の場合サイトマップ, localhost をサーバーの IP に置き換えます。


http://your-server-ip:5601


MQTT ダウンロードそして私達の機械で動くことおよびそれはようです


Elasticsearch の構成


ザ・オブ・ザ・Elasticsearch のヘルプCrystalMQ では、 ブローカーからのシームレスなデータ検索と効率的なインデックス作成からElasticsearch。 それは保障します 安全な認証、暗号化された通信、信頼性の高いデータストレージ、 IoTデータを管理・分析するための重要なコンポーネント。


  • ホスト:Elasticsearch のホスト名または IP アドレスを入力します。 サーバ。
  • ポート:Elasticsearch サーバーのポートを指定する リスニング (デフォルト:9200円)。
  • 内容:保存または保存するための Elasticsearch インデックスの名前を入力します。 データの取得
  • 認証::認証方法を選択します。
    基本情報 認証:認証する ユーザー名とパスワード。
    プキ 認証::クライアントとパブリックキーインフラストラクチャ(PKI)を使用して認証 証明書。
    JWTについて 認証::JSON Web トークン (JWT) を使用して認証します。
  • アクセストークン:ご利用の場合JWTについて 認証情報有効なJWTアクセストークンを入力してください。
  • テーマ:アクセスSSL/TLSの特長安全な接続のために。 有効な場合、必要な証明書ファイルを提供します。
  • 証明書:アップロードする証明書 認証(CA)自己署名証明書を使用する場合。
  • 認証とキー:ご利用の場合PKIの認証必要なアップロード顧客認証とクライアントキー

1。 Elasticsearch の認証 コネクタ


Elasticsearch は複数の認証方法をサポートしています。 アクセス


基本認証


デフォルトでは、Elasticsearchは必須です。サイトマップ よくあるご質問認証のため。 有効な資格情報がなければ、接続は失敗します、 認証エラーにつながる。 アクセスの確保のために、シンプルで広く利用されています。


PKI(インターネットインフラ認証)


PKI認証用途デジタル認証安全なアクセスのためのパスワードの代わりに。 このアプローチで:


  • 認証そして、クライアント キーキーElasticsearch との信頼できる接続を確立するために必要です。
  • サーバは、信頼できる証明書を認証する証明書 権限 (CA)確実性を保障するため。
  • この方法は、パスワードの必要性を排除し、暗号化を確保することにより、セキュリティを強化します そして認証されたコミュニケーション。

JWT(JSON Web Token)認証


JWT認証機能株式について 制御,どこがアクセス代わりに使用されます 伝統的な資格情報。


  • 認証プロバイダのようなまたはGoogleKeycloak生成する ユーザーのアクセストークン。
  • Elasticsearch はトークンを検証します。秘密鍵保存される その構成。
  • このメソッドは、サインオン(SSO)安全でスケーラブル 認証。

2. 暗号化: Elasticsearch の SSL/TLS


輸送中のデータを保護するために、ElasticsearchはサポートしますSSL/TLSの暗号化、クライアントとサーバー間の通信を確保 プライベートで安心です。


SSL/TLS暗号化の設定


  • 「SSL」が公開されました。必要なセキュリティ証明書を生成するために使用される 暗号化された通信。
  • Elasticsearch は特定の証明書を必要とします:

    1。 証明書 CA- 証明書の権限 会員資格

    2. 認証- クライアント エラスティック・リサーチ

    3。 クライアントキー- ライセンス認証 認証情報


認証と暗号化を適切に設定することで、Elasticsearch CrystalMQのコネクタは、安全で でIoTデータを管理するためのソリューション


Elasticsearch Connector

Elasticsearch コネクターでは、基本的な認証 (ユーザー名とパスワード) が必要ですので、デフォルトで設定できます。


Elasticsearch Connector Details


Elasticsearch の索引を含む Elasticsearch のコネクターの構成を、関係を確立するために入れて下さい。


すべてのコンフィギュレーションフィールドが完了したら、「保存」を選択して、設定をデータベースに保存します。


Elasticsearch コネクターが正常に接続されている場合は、有効/無効のトグルボタンが緑色表示されます。 コネクタに問題がある場合、ボタンが赤色表示されます。


Elasticsearch Connector


上記の設定では、TLS/SSL 暗号化を有効にすることなく、Basic 認証のみが使用されます。


ロジスタッシュを使用して、Elasticsearchからデータを閲覧できます。 このデータをキャプチャするために Logstash パイプラインを使用する方法を見てみましょう。


Logstashは、保存、視覚化、転送方法に応じて、データを出力するさまざまな方法を提供しています。 一般的な出力オプションには:


  • 研究開発
  • ファイル
  • 標準的な出力(stdout)
  • カフカ
  • レディス
  • AWS S3/Googleクラウドストレージ
  • インフラックスDB
  • 電子メール
  • TCP・UDP
  • ログイン
  • グラナイト
  • Webソケット
  • Googleのビッグクエリ

ステップ-1:

Elasticsearch からデータを取得するために Logstash を構成する:


  • 設定ファイル
    名前付きファイルを作成するElasticsearch_logstash.conf の使い方お問い合わせ ログイン
    設定ディレクトリ

  • 設定する
    オープンElasticsearch_logstash.conf の使い方以下を追加します。 構成:

お問い合わせ
弾力性調査 {
ホスト => [http://your-elasticsearch-host:9200]
インデックス => "your-index-name" は、
user => 「ユーザー名」
パスワード => 「あなたのパスワード」
お問い合わせ
お問い合わせ
出力 {
スタッフ
コーデック => jsonの
お問い合わせ
お問い合わせ


ログイン


次のコマンドを使用してLogstashを起動します。


パッケージマネージャでLogstashをインストールしている場合:


sudo /usr/share/logstash/bin/logstash -f
/etc/logstash/conf.d/elasticsearch_logstash.conf


例えば : sudo /usr/share/logstash/bin/logstash -f

~/ドキュメント/elasticsearch_logstash.conf


Logstash の設定後、以下のコマンドを使用して、設定が正しく適用されることを確認します。


sudo /usr/share/logstash/bin/logstash --path.settings /etc/logstash -f の
パス/パス/ elasticsearch_logstash.conf --config.test_and_exit ディレクティブ


設定が正しい場合は、出力は次のようになります。

/usr/share/logstash/jdk

ログを /var/log/logstash に送る

log4j2. プロパティ

[2025-03-26T11:40:50,375][WARN][logstash.runner] 注意: 病気

ユーザの特異的なロスタッシュは、セキュリティを保ち、 リスク。

"allow_superuser" は、

[2025-03-26T11:40:50,386][INFO][logstash.runner] log4j の設定

は /etc/logstash/log4j2.properties です。

[2025-03-26T11:40:50,388][INFO][logstash.runner] Logstash の起動

{"logstash.version"=>"8.17.3", "jruby.version"=>"jruby 9.4.9.0 (3.1.4) 2024-11-

04 547c6b150e OpenJDK 64ビット デバイス 21.0.6+7-LTS に 21.0.6+7-LTS ログイン

+jit [x86_64-linux]"}

[2025-03-26T11:40:50,392][INFO][logstash.runner] JVMブーツストラップ

[-Xms1g, -Xmx1g, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, ・

Djruby.compile.invokedynamic=true, -

XX:+HeapDumpOnOutOfMemoryError, -

Djava.security.egd=ファイル:/dev/urandom, ・

Dlog4j2.isThreadContextMapInheritable=true, -Dlogstash.jackson.stream---

read-constraints.max-string-length=200000000の ・

Dlogstash.jackson.stream-read-constraints.max-number-length=10000、 ・

Djruby.regexp.interruptible=true, -Djdk.io.File.enableADS=true, --add-

exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED, --add-

exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED, --add-

exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED, -- 追加-

exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED, -- 追加-

exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED、-add-

open=java.base/java.security=ALL-UNNAMED、--add-

open=java.base/java.io=ALL-UNNAMED, --add-

open=java.base/java.nio.channels=ALL-UNNAMED、--add-

open=java.base/sun.nio.ch=ALL-UNNAMED、--add---

open=java.management/sun.management=ALL-UNNAMED - - - - - - - - - - - - - - - - - - -

Dio.netty.allocator.maxOrder=11の

[2025-03-26T11:40:50,462][INFO]

[org.logstash.jackson.StreamReadConstraintsUtil] デフォルト値

オーバーライド `logstash.jackson.stream-read-constraints.max-string-length`

` ` `

[2025-03-26T11:40:50,463][INFO]

[org.logstash.jackson.StreamReadConstraintsUtil] デフォルト値

オーバーライド `logstash.jackson.stream-read-constraints.max-number-length`

` 10000 10000

[2025-03-26T11:40:50,755][WARN][logstash.config.source.multilocal]

'pipelines.yml' を ' に 'pipelines.yml' に 'pipelines.yml' に 'pipelines.yml' に 'pipelines.yml' を ' に 'pipelines.yml' に 'pipelines.yml' オプションのオプション

指定された

[2025-03-26T11:40:51,186][INFO][org.reflections.Reflections] リフレクション

175 ms に 1 の URL を コピーして、152 のキー 530 の .

[2025-03-26T11:40:51,846][INFO ][logstash. javapipeline は、 お問い合わせ

`pipeline.ecs_compatibility: v8` で設定します。 お問い合わせ

デフォルトは `ecs_compatibility => です。

設定する

構成 OK

[2025-03-26T11:40:51,848][INFO][logstash.runner] 使用済み

config.test_and_exit モード。 設定の試用結果:OK オープニング ログイン


以下のコマンドを使用して、ログスタッシュログをチェックして、データが Elasticsearch から取得され、ログスタッシュに表示されていることを確認します。


logstash ログは以下のように表示されます。


バンドルされたJDKを使用して: /usr/share/logstash/jdk

[WARN ] 2025-03-25 18:16:42.180 [main] ランナー - 'pipeline.buffer.type" の使い方

... 9.x , 'heap' , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

'direct' は、 業務内容

[詳細] 2025-03-25 18:16:42.181 [主] ランナー - 起動ログスタッシュ

{"logstash.version"=>"8.17.3", "jruby.version"=>"jruby 9.4.9.0 (3.1.4) 2024-11-

04 547c6b150e OpenJDK 64ビット デバイス 21.0.6+7-LTS に 21.0.6+7-LTS ログイン

+jit [x86_64-linux]"}

[email protected] 2025-03-25 18:16:42.185 [main] ランナー - JVM 攻撃をフォロー: [-Xms1g]

-Xmx1g, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -

Djruby.compile.invokedynamic=true, -

XX:+HeapDumpOnOutOfMemoryError, -

Djava.security.egd=ファイル:/dev/urandom, ・

Dlog4j2.isThreadContextMapInheritable=true, -Dlogstash.jackson.stream---

read-constraints.max-string-length=200000000の ・

Dlogstash.jackson.stream-read-constraints.max-number-length=10000、 ・

Djruby.regexp.interruptible=true, -Djdk.io.File.enableADS=true, --add-

exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED, --add-

exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED, --add-

exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED, -- 追加-

exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED, -- 追加-

exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED、-add-

open=java.base/java.security=ALL-UNNAMED、--add-

open=java.base/java.io=ALL-UNNAMED, --add-

open=java.base/java.nio.channels=ALL-UNNAMED、--add-

open=java.base/sun.nio.ch=ALL-UNNAMED、--add---

open=java.management/sun.management=ALL-UNNAMED - - - - - - - - - - - - - - - - - - -

Dio.netty.allocator.maxOrder=11の

[問い合わせ] 2025-03-25 18:16:42.373 [問い合わせ] StreamReadConstraints の使い方 恋物癖

デフォルト値 オーバーライド `logstash.jackson.stream-read-constraints.max-

string-length` を `200000000` に変換

[問い合わせ] 2025-03-25 18:16:42.373 [問い合わせ] StreamReadConstraints の使い方 恋物癖

デフォルト値 オーバーライド `logstash.jackson.stream-read-constraints.max-

「10000」を構成する

[WARN ] 2025-03-25 18:16:42.655 [LogStash:Runner] 地域 - 地域

'pipelines.yml' は、モジュールやオプションです。

プロフィール

[情報] 2025-03-25 18:16:43.449 [Api Webserver] エージェント - 成功する スタート

logstash API は {:port=>9601 で、 :ssl_enabled=>false}

[詳細] 2025-03-25 18:16:43.805 [コンバージ・アンド・フューザー::Create]

. . .

1 の url に 169 ms の url を 行なった、152 の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の , , ,

[お問い合わせ] 2025-03-25 18:16:44.521 [コンバージ・コメント:::Create]

. . .

javapipeline は、

`pipeline.ecs_compatibility: v8` の設定。このプラグインは、 お問い合わせ

デフォルトは `ecs_compatibility => です。

その他。

[詳細] 2025-03-25 18:16:44.579 [[主] - マネーマネージャー] javapipeline -

{{:pipeline_id=>"main", "pipeline.workers"=>4,

"pipeline.batch.size"=>125, "pipeline.batch.delay"=>50,

"pipeline.max_inflight"=500、

"pipeline.sources"=>["""" は、 /home/bevywise/Documents/elasticsearch_logstash です。

conf" :thread=>"#<スレッド:0x612a9b3c /usr/share/logstash/logstash

core/lib/logstash/java_pipeline.rb:138 run>"}

2018年10月25日(金)〜25日(日) javapipeline -

パイプライン Java 実行初期化時間 {"seconds"=>0.7}

[詳細] 2025-03-25 18:16:45.591 [[主] - マネーマネージャー] 研究開発 ・

`search_api => auto` は `search_after お問い合わせ {:elasticsearch=>「8.17.3」}

[詳細] 2025-03-25 18:16:45.593 [[主] - マネーマネージャー] 研究開発 ・

ECS の互換が現在、tar` のオプションが指定されています。

トップ トップ の の

設定 で で で

潜在的な ` ` ` ` お問い合わせ

必須, または非, 最近の投稿

[詳細] 2025-03-25 18:16:45.597 [[主] - マネーマネージャー] javapipeline -

"pipeline.id"="main"} は、

[詳細] 2025-03-25 18:16:45.600 [[主]<elasticsearch] の検索結果 - 作成する

ポイント(PIT)

[お問い合わせ] 2025-03-25 18:16:45.619 [連絡先] 代理店 - エキスパート

{:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}

[詳細] 2025-03-25 18:16:45.630 [[本]<elasticsearch] の検索結果 - 招聘人数

スタート

[詳細] 2025-03-25 18:16:45.703 [[主]<elasticsearch] の検索結果 - 招聘人数

お問い合わせ

[詳細] 2025-03-25 18:16:45.704 [[主]<elasticsearch] の検索結果 - オープニング

ポイント(PIT)

お問い合わせ
"message" => "{\"sensor_id\": \"sensor_123\", \"temp\": 25.5, \"humidity\": 60, \"status\": \"active\"}",
"topic" => "test/search",
"client_id" => 「Bevywise-fQ4kK3aI2uQ0」、
"timestamp" => 1742478868,
"properties" => "{}",
「@version」は、
ファックス: 86-2025-03-25T12:46:45.691895415Z
お問い合わせ

お問い合わせ
"message" => "{\"sensor_id\": \"sensor123\", \"temp\": 27, \"humidity\": 712, \"status\": \"active\"}",
"topic" => "test/moniting",
"client_id" => "Bevywise-qI8mQ7rI9uM3",
"timestamp" => 1742817477,
"properties" => "{}",
「@version」は、
ファックス: 86-2025-03-25T12:46:45.693859511Z
お問い合わせ

お問い合わせ
"message" => "{\"sensor_id\": \"sensor123\", \"temp\": 27, \"humidity\": 712, \"status\": \"active\"}",
"topic" => "test/moniting",
"client_id" => "Bevywise-eP3cT2xW0vA4",
"timestamp" => 1742817662,
"properties" => "{}",
「@version」は、
ファックス: 86-2025-03-25T12:46:45.693957511Z
お問い合わせ


Elasticsearch が CrystalMQ Elasticsearch コネクターから受け取ったら、データを視覚化するために Kibana を使用します。


ステップ1:


ブラウザのURLを開くhttp://<host_ip>:5601


ステップ2:パターン


データを視覚化する前に、インデックスパターンを定義してアクセスする必要があります。 MQTTログ。


  • 「スタック管理」→「インデックスパターン」に移動します。
  • 「インデックスパターンの作成」をクリックします。
  • インデックス名(例: offset_mqtt-*)を入力してください。
  • タイムスタンプフィールド(@timestamp)を選択します。
  • 「インデックスパターンを作成」をクリックします。

ステップ3:MQTTのメッセージ


データを視覚化する前に、インデックスパターンを定義してアクセスする必要があります。 MQTTログ。


  • お問い合わせ「仮想ライブラリ」→ クリック作成する 社会化。
  • 選択する「ラインチャート」
  • インデックスパターン(offset_mqtt-*)を選択します。
  • 設定:
    X軸:@timestampと設定間隔(例、1m、1h)を選択します。
    Y軸: MQTT メッセージをカウントするカウントを選択します。
  • クリック「保存」視覚化の名前をつけて下さい。

Step-4: チャートは次の通りです:


棒グラフ:


Bar Chart


パイチャート:


Pie Chart


テーブルビュー:


Table View


今では、CrystalMQ のデータ コネクタを通して接続を確立し、メッセージを送るために TLS/SSL の暗号化と Elasticsearch を使用します。



Step-1 : Elasticsearch の全ての証明書パスが正しく提供されることを確認します。 変更があった場合は、Elasticsearchを再起動して適用してください。



Step-2 : Kibana の設定ファイルを開き、全ての設定が TLS/SSL で適切に設定されていることを確認します。



Step-3 : クリスタルを実行 MQ およびデータ コネクタの Elasticsearch コネクターを使用して SSL/TLS の暗号化と Elasticsearch に接続します。



Step-4 : SSL/TLS 暗号化では、Elasticsearch に接続するには CA のルート証明書が必要です。 クライアントの証明書とクライアントキーはオプションで、接続を確立するのに、CAのルート証明書だけをアップロードするのに十分です。



Elasticsearch


ステップ5: すべての証明書をアップロードした後、設定を保存し、有効にします 有効/無効切り替えボタンを使用してコネクタ。



Enable Certificates


Step-6 : TLS/SSL 暗号化による Elasticsearch コネクターは、CrystalMQ で正常に接続されています。



Logstash を使用して、Elasticsearch コネクタからログを表示:



Elasticsearch からデータを取得するために Logstash を構成する:

  • 設定ファイル
    名前付きファイルを作成するElasticsearch_logstash.conf の使い方お問い合わせ ログイン
    設定ディレクトリ
  • 設定する
    オープンElasticsearch_logstash.conf の使い方以下を追加します。 構成:

お問い合わせ
弾力性調査 {
ホスト => [https://your_elasticsearch_host:9200]
user => "elastic" を使う
パスワード => "your_password"
インデックス => "your_index_pattern"
ログイン ログイン
cacert => "/path/to/elasticsearch-ca.crt"
お問い合わせ
お問い合わせ


出力 {
スタッフ
コーデック => rubydebug(ルビーデバッグ)
お問い合わせ
お問い合わせ


設定を保存し、以下のコマンドを使用して、正しく設定されているかどうかを確認します。


sudo /usr/share/logstash/bin/logstash --path.settings /etc/logstash -fの

パス/パス/ elasticsearch_logstash.conf --config.test_and_exit ディレクティブ


Logstash を使用して、TLS/SSL で Elasticsearch からデータをキャプチャします。


パッケージマネージャでLogstashをインストールしたら:


sudo /usr/share/logstash/bin/logstash -f

/etc/logstash/conf.d/elasticsearch_logstash.conf


例えば : sudo /usr/share/logstash/bin/logstash -f
~/ドキュメント/elasticsearch_logstash.conf


今、KibanaをElasticsearch TLS / SSLで構成します。



TLS/SSL 暗号化で Elasticsearch 用の kibana.yml を設定するには、上記の手順を参照してください。



https://<host_ip>:5601 でブラウザーを開きます そして、 上記の指示を使用して、キバナのデータを視覚化し、バーチャート、パイチャート、データビューなどのオプションがあります。



Elasticsearch バージョン 8.17.3 では、基本ライセンスを使用しているため、PKI と JWT は接続を確立するために使用できません。

JWTとPKI認証を利用するには、プラチナライセンスへのアップグレードが必要です。


CrystalMQでPKI認証を使用する:


PKI認証では、クライアント証明書とクライアントキーが必要ですが、CAルート証明書はオプションです。


設定を保存し、コネクタトグルボタンを有効にして、PKI認証を使用してElasticsearchに接続します。


PKI認証でElasticsearchが構成されました。


データを暗号化したい場合は、PKI認証でSSL/TLSを利用することができます。


データを暗号化するには、PKI認証とともにSSL/TLSを利用することができます。


SSL/TLSによるPKI認証では、クライアント証明書とクライアントキー SSL専用の接続では、CAルート証明書のみがElasticsearchに接続する必要があります。




Save Configurations


CrystalMQでJWT認証を使用する:



JWT(JSON Web Tokens)認証では、アクセストークンを使用してElasticsearchに接続します。


キーロックやGoogleコンソールなどの認証プロバイダを使用して、アクセスキーを取得します。


これで、アクセストークンを取得するには、下記のコマンドでアクセスキーを使用します。


カール - キャサート /etc/keycloak.crt -X投稿
"https://localhost:8443/realms/myrealm/protocol/openid-
connect/token["](https://localhost:8443/realms/myrealm/protocol/openid-)
接続/インポート お問い合わせ

-H "Content-Type: application/x-www-form-urlencoded" \

-d "grant_type=client_credentials" \

-d 「client_id=elasticsearch」\

-d "client_secret=ACCESS_KEY" は


このコマンドでは、認証トークンを取得するために、Keycloak認証プロバイダを使用します。



アクセストークンの取得後、ElasticsearchのデータコネクターでJWT認証を使用してElasticsearchに接続します。



Authentication


データを暗号化したい場合は、PKI認証でSSL/TLSを利用することができます。



Upload Client Certificate

JWT で SSL/TLS を使用する場合は、単に CA ルート証明書をアップロードして Elasticsearch に接続します。


MQTT の最適化 ネットワーク

実用的なMQTT ELKとのインサイト

リアルタイムでMQTTブローカーメッセージを監視して分析し、IoTを改善
パフォーマンスと潜在的な問題を瞬時に検出します。