私の連絡先情報
郵便メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
目次
3. Docker デプロイメントを選択する理由は何ですか?
この記事は Linux で使用していますドッカーchirpstack をデプロイするには、chirpstack は次を使用します。v4バージョン、v4 バージョンおよび v3 バージョン gRPC API と比較して、いくつかの変更が加えられており、互換性を考慮する必要があります。ただし、Docker を使用するのは chirpstack のデプロイにのみです。実際、ディレクトリと Web インターフェイスにはいくつかの変更が加えられており、構成ロジックは同じであり、あまり変更されていません。 v3 バージョンを使用している場合は、わからないことがあれば直接私に質問してください。
ChirpStack は、プライベートまたはパブリック LoRaWAN ネットワークのセットアップに使用できるオープン ソースの LoRaWAN ネットワーク サーバーです。 ChirpStack は Web インターフェイスを提供しますゲートウェイ、デバイス、アプリケーションの管理に使用されます。ChirpStack は、ChirpStack の統合または拡張に使用できる gRPC ベースの API を提供します。
(1)ChirpStackネットワークサーバー: 略してNS、その機能はLoRaWAN ネットワークの適切な動作を保証し、デバイスの通信を管理します。それ LoRaWAN ネットワークのコア ロジックを担当します。デバイスの参加プロセス、ダウンリンクのスケジューリング、デバイスのアクティビティ追跡などを処理します。また、LoRa ゲートウェイから受信したアップリンク データを処理し、ダウンリンク データをゲートウェイに送信する役割も果たします。
(2)ChirpStackアプリケーションサーバー:ASと略され、その機能はアプリケーション層データを管理および処理し、ユーザー インターフェイスと API インターフェイスを提供します。それ LoRaWAN アプリケーション層データの処理と管理を担当します。これにより、ユーザーはアプリケーション、デバイス構成、データ デコーダーを定義できます。また、デバイスの管理、ネットワーク トラフィックの監視、データ デコードの処理、およびアプリケーション層データの外部アプリケーションへの送信のための API と Web インターフェイスも提供します。
(3)ChirpStackゲートウェイブリッジ:それゲートウェイとWebサーバー間のミドルウェアとして機能します 。このコンポーネントは、LoRa ゲートウェイから送信される LoRa パケット トランスポンダー プロトコルを ChirpStack ネットワーク サーバーの共通データ形式 (JSON および Protobuf) に変換できます。
(4)PostgreSQL: これは、オープンソースのリレーショナル データベース管理システムです。永続ストレージ ChirpStackの設定データ、デバイス情報、ゲートウェイ情報、アプリケーションデータなど
(5)レディス: これはオープンソースのインメモリ データ構造ストレージ システムで、通常はデータベース、キャッシュ、メッセージ ブローカーとして使用される 。 ChirpStack は Redis を使用して一部のリアルタイム データをキャッシュおよび処理し、システムのパフォーマンスと応答速度を向上させます。
(6)モスキート:Mosquitto は、MQTT プロトコルのプロキシ サーバーです。デバイスと ChirpStack コンポーネント間の通信を処理します。LoRaWAN ゲートウェイと ChirpStack サービス間のメッセージングが可能になります。
Postgre SQL と Redis の違いに注意してください。Postgre SQL はディスクに基づいてデータを保存し、永続的なストレージをサポートします。データがディスクに保存されると、システムが再起動されてもデータは失われませんが、パフォーマンスは比較的遅くなります。 Redis はメモリに基づいてデータを保存し、効率的な読み取りおよび書き込み操作をサポートし、非常に高いパフォーマンスを備えています。
(1) 導入プロセスを簡素化します。前述したように、ChirpStack は複数のサービス コンポーネントで構成されており、Docker Compose を使用して構成ファイルを渡すことができます (docker-compose.yml
) 1 つのコマンドだけで複数のコンテナーを定義して実行します (docker-compose up
) すべてのサービスを開始します。
(2) 環境隔離:chirpstack の各サービスは独立したコンテナーで実行できるため、依存関係の競合や環境汚染を回避できます。
(3) 携帯性: Docker を使用すると、開発、テスト、運用環境で同じコードと構成を確実に実行できます。これにより、さまざまな環境で発生する「環境問題」を回避できます。
(4) 一元化された構成:すべてのサービス構成は 1 つに集中化されます docker-compose.yml
ファイルの管理とバージョン管理が容易になります。構成を簡単に変更および更新できます。
1. github からソースコードを取得します。
v4 バージョン: (v4 バージョンについては次に説明します)
git clone https://github.com/chirpstack/chirpstack-docker.git
v3 バージョン:
git clone https://github.com/chirpstack/chirpstack-docker/tree/v3
2. 変更docker-compose.yml
設定ファイル
ファイルはChirpStack IoT プラットフォームをデプロイするために Docker Compose を使用して構成されたマルチコンテナー アプリケーション。 ChirpStack システムが Docker コンテナ内で確実に連携できるようにするために必要なすべての主要コンポーネントをカバーしています。 (この設定ファイルは通常、必要な周波数帯域とポートを変更するだけでよく、その他の変更は必要ないことに注意してください)
(1)チャープスタック
これは ChirpStack アプリケーション サーバーです (通常、変更は必要ありません)。
- chirpstack:
- image: chirpstack/chirpstack:4
- command: -c /etc/chirpstack
- restart: unless-stopped
- volumes:
- - ./configuration/chirpstack:/etc/chirpstack
- - ./lorawan-devices:/opt/lorawan-devices
- depends_on:
- - postgres
- - mosquitto
- - redis
- environment:
- - MQTT_BROKER_HOST=mosquitto
- - REDIS_HOST=redis
- - POSTGRESQL_HOST=postgres
- ports:
- - 8080:8080
chirpstack/chirpstack:4
鏡。/etc/chirpstack
。unless-stopped
つまり、手動で停止しない限り、コンテナーは自動的に再起動します。./configuration/chirpstack
コンテナに/etc/chirpstack
、同様に ./lorawan-devices
コンテナに/opt/lorawan-devices
。postgres
, mosquitto
, redis
3つのサービス。MQTT_BROKER_HOST
, REDIS_HOST
, POSTGRESQL_HOST
。8080
、中身を容器に入れます 8080
ホストにマッピングされたポート8080
ポート。(2)chirpstackゲートウェイブリッジ
これは ChirpStack ゲートウェイ ブリッジ サービス (ここで使用する cn470_10 バンド) です。
- chirpstack-gateway-bridge:
- image: chirpstack/chirpstack-gateway-bridge:4
- restart: unless-stopped
- ports:
- - 1700:1700/udp
- volumes:
- - ./configuration/chirpstack-gateway-bridge:/etc/chirpstack-gateway-bridge
- environment:
- - INTEGRATION__MQTT__EVENT_TOPIC_TEMPLATE=cn470_10/gateway/{{ .GatewayID }}/event/{{ .EventType }}
- - INTEGRATION__MQTT__STATE_TOPIC_TEMPLATE=cn470_10/gateway/{{ .GatewayID }}/state/{{ .StateType }}
- - INTEGRATION__MQTT__COMMAND_TOPIC_TEMPLATE=cn470_10/gateway/{{ .GatewayID }}/command/#
- depends_on:
- - mosquitto
unless-stopped
。1700
。./configuration/chirpstack-gateway-bridge
コンテナに/etc/chirpstack-gateway-bridge
。mosquitto
仕える。(3)chirpstack-gateway-bridge-basicstation
これは ChirpStack ゲートウェイ ブリッジの基本ステーション サービスです (コマンド部分の変更に注意してください)。
- chirpstack-gateway-bridge-basicstation:
- image: chirpstack/chirpstack-gateway-bridge:4
- restart: unless-stopped
- command: -c /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge-basicstation-cn470_10.toml
- ports:
- - 3001:3001
- volumes:
- - ./configuration/chirpstack-gateway-bridge:/etc/chirpstack-gateway-bridge
- depends_on:
- - mosquitto
chirpstack/chirpstack-gateway-bridge:4
鏡。unless-stopped
。chirpstack-gateway-bridge-basicstation-cn470_10.toml
。3001
。./configuration/chirpstack-gateway-bridge
コンテナに/etc/chirpstack-gateway-bridge
。mosquitto
仕える。(4)chirpstack-rest-api
これは ChirpStack の REST API サービスです。
- chirpstack-rest-api:
- image: chirpstack/chirpstack-rest-api:4
- restart: unless-stopped
- command: --server chirpstack:8080 --bind 0.0.0.0:8090 --insecure
- ports:
- - 8090:8090
- depends_on:
- - chirpstack
chirpstack/chirpstack-rest-api:4
鏡。unless-stopped
。chirpstack:8080
、バインディングアドレスは 0.0.0.0:8090
、アンセーフモードを有効にします。8090
。chirpstack
仕える。(5)ポストグル
これは PostgreSQL データベース サービスです。
- postgres:
- image: postgres:14-alpine
- restart: unless-stopped
- volumes:
- - ./configuration/postgresql/initdb:/docker-entrypoint-initdb.d
- - postgresqldata:/var/lib/postgresql/data
- environment:
- - POSTGRES_PASSWORD=root
postgres:14-alpine
鏡。unless-stopped
。./configuration/postgresql/initdb
コンテナに/docker-entrypoint-initdb.d
、Docker ボリュームをマウントします postgresqldata
コンテナに/var/lib/postgresql/data
。POSTGRES_PASSWORD
のためにroot
。(6)レディス
これは Redis インメモリ データベース サービスです。
- redis:
- image: redis:7-alpine
- restart: unless-stopped
- command: redis-server --save 300 1 --save 60 100 --appendonly no
- volumes:
- - redisdata:/data
redis:7-alpine
鏡。unless-stopped
。redis-server
をクリックし、保存方法を指定します。redisdata
コンテナに/data
。(7)蚊
これは、MQTT メッセージ ブローカー サービスです。
- mosquitto:
- image: eclipse-mosquitto:2
- restart: unless-stopped
- ports:
- - 1883:1883
- volumes:
- - ./configuration/mosquitto/config/:/mosquitto/config/
(8)巻
データボリュームを定義します。
- volumes:
- postgresqldata:
- redisdata:
3. Docke-compose が起動します
sudo docker-compose up -d
1. chirpstack (IP): 8080 にアクセスします。デフォルトのアカウントのパスワードは admin です。
2. ゲートウェイを作成する
次に、通常どおりゲートウェイに名前を付けますが、ゲートウェイ構成で対応する ID を変更する必要があることを覚えておいてください。
3. デバイスファイルの追加
独自の要件に従って入力してください。
4. AS の設定
再生アプリケーションを追加した後、アプリケーションにデバイスとマルチキャスト設定を順番に追加します。
最後に、ゲートウェイを実行して、ゲートウェイがクラウド サーバーに接続し、メッセージを正常に転送できるかどうかを確認します。