前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LoRaServer 笔记 1.4 配置运行

LoRaServer 笔记 1.4 配置运行

作者头像
twowinter
发布2020-04-17 18:16:47
1.3K0
发布2020-04-17 18:16:47
举报
文章被收录于专栏:twowintertwowinter

1 Gateway Bridge

1.1 生成配置文件

生成默认配置文件,我比较喜欢放在当前工程目录。目前没使用 basic station 的话,倒是没什么好改的。

代码语言:javascript
复制
# ./build/lora-gateway-bridge configfile > lora-gateway-bridge.toml
# vim lora-gateway-bridge.toml

1.2 启动 mqtt broker

代码语言:javascript
复制
./build/lora-gateway-bridge 
INFO[0000] starting LoRa Gateway Bridge                  docs="https://www.loraserver.io/lora-gateway-bridge/" version=3.0.0-test.3
INFO[0000] backend/semtechudp: starting gateway udp listener  addr="0.0.0.0:1700"
ERRO[0000] integration/mqtt: connection error            error="Network Error : dial tcp 127.0.0.1:1883: connect: connection refused"

修改 mosquitto 的配置文件,启用默认监听端口1883。然后启动服务。

代码语言:javascript
复制
# vim /etc/mosquitto/mosquitto.conf
# systemctl start mosquitto

1.3 运行

代码语言:javascript
复制
# ./build/lora-gateway-bridge 
INFO[0000] starting LoRa Gateway Bridge                  docs="https://www.loraserver.io/lora-gateway-bridge/" version=3.0.0-test.3
INFO[0000] backend/semtechudp: starting gateway udp listener  addr="0.0.0.0:1700"INFO[0000] integration/mqtt: connected to mqtt broker

2 loraserver

2.1 postgresql 帐户登录

代码语言:javascript
复制
# psql -h localhost -U loraserver_ns -W loraserver_ns            Password for user loraserver_ns: 
psql: FATAL:  Ident authentication failed for user "loraserver_ns"

明明按照教程一步步设置了密码,怎么就不行了呢?

By default PostgreSQL uses IDENT-based authentication and this will never allow you to login via -U and -W options. Allow username and password based authentication from your application by appling ‘trust’ as the authentication method for the JIRA database user. You can do this by modifying the pg_hba.conf file.

原来默认情况下,不能使用 -U -W 选项进行登录。为此,我们需要将 pg_hba.conf 中的认证方法调整为 ‘trust’。

代码语言:javascript
复制
# find / -name pg_hba.conf/var/lib/docker/volumes/loraserver-docker_postgresqldata/_data/pg_hba.conf
/var/lib/pgsql/11/data/pg_hba.conf
# vim /var/lib/docker/volumes/loraserver-docker_postgresqldata/_d
ata/pg_hba.conf

参考下 loraserver-docker 的配置:

代码语言:javascript
复制
# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                trust
#host    replication     postgres        127.0.0.1/32            trust
#host    replication     postgres        ::1/128                 trust

host all all all trust
代码语言:javascript
复制
# vim /var/lib/pgsql/11/data/pg_hba.conf                         
# systemctl restart postgresql-11                                
# psql -h localhost -U loraserver_ns -W loraserver_ns
Password for user loraserver_ns: 
psql (9.2.24, server 11.2)
WARNING: psql version 9.2, server version 11.0.
         Some psql features might not work.
Type "help" for help.

loraserver_ns=>

2.2 配置文件修改

生成默认配置文件,我比较喜欢放在当前工程目录。然后修改之。

代码语言:javascript
复制
# ./build/loraserver configfile > loraserver.toml
# vim loraserver.toml

改两处地方,我的 postgres 是对照官方的初始配置来的:

代码语言:javascript
复制
[postgresql]
dsn="postgres://loraserver_ns:dbpassword@localhost/loraserver_ns?sslmode=disable"

  [network_server.band]
  name="CN_470_510"

2.3 运行

如果提示这个,说明 MQTT broker 还没起来。参照 1.2 的方式,处理一下。

代码语言:javascript
复制
# ./build/loraserver 
INFO[0000] starting LoRa Server                          band=CN_470_510 docs="https:/www.loraserver.io/" net_id=000000 version=3.0.0-test.2-2-g124ff9b
INFO[0000] storage: setting up storage module           
INFO[0000] storage: setting up Redis connection pool    
INFO[0000] storage: connecting to PostgreSQL            
INFO[0000] storage: applying PostgreSQL data migrations 
INFO[0001] storage: PostgreSQL data migrations applied   count=21
INFO[0001] gateway/mqtt: connecting to mqtt broker       server="tcp://localhost:1883"

顺利的话,是这样:

代码语言:javascript
复制
# ./build/loraserver
INFO[0000] starting LoRa Server                          band=CN_470_510 docs="https:/www.loraserver.io/" net_id=000000 version=3.0.0-test.2-2-g124ff9b
INFO[0000] storage: setting up storage module           
INFO[0000] storage: setting up Redis connection pool    
INFO[0000] storage: connecting to PostgreSQL            
INFO[0000] storage: applying PostgreSQL data migrations 
INFO[0000] storage: PostgreSQL data migrations applied   count=0
INFO[0000] gateway/mqtt: connecting to mqtt broker       server="tcp://localhost:1883"
INFO[0000] no geolocation-server configured             
INFO[0000] configuring join-server client                ca_cert= server="http://localhost:8003" tls_cert= tls_key=
INFO[0000] backend/gateway: connected to mqtt server    
INFO[0000] gateway/mqtt: subscribing to gateway event topic  qos=0 topic=gateway/+/event/+
INFO[0000] service-profile and device-profile redis cache flushed 
INFO[0000] migrating gateway stats                      
INFO[0000] gateway stats migrated                       
INFO[0000] starting api server                           bind="0.0.0.0:8000" ca-cert= tls-cert= tls-key=
INFO[0000] starting downlink device-queue scheduler     
INFO[0000] starting multicast scheduler

3 lora-app-server

3.1 启动 Redis

可以参考笔记Redis 学习笔记 2.2.1 Redis配置成系统服务(CentOS7)

3.2 配置文件修改

生成默认配置文件,然后修改之。

代码语言:javascript
复制
# ./build/lora-app-server configfile > lora-app-server.toml
# vim lora-app-server.toml

改两处地方,第一处是 postgres,是对照官方的初始配置来的:

代码语言:javascript
复制
[postgresql]
dsn="postgres://loraserver_as:dbpassword@localhost/loraserver_as?sslmode=disable"

第二处是 jwt_secret,使用 openssl rand -base64 32 命令来生成一个随机数:

代码语言:javascript
复制
# openssl rand -base64 32
Jlc1V0SmAWcwkyNOUnJQtHeQILieIGkc47AQ+U2yWLY=
# vim lora-app-server.toml
代码语言:javascript
复制
  # JWT secret used for api authentication / authorization
  # You could generate this by executing 'openssl rand -base64 32' for example
  jwt_secret="Jlc1V0SmAWcwkyNOUnJQtHeQILieIGkc47AQ+U2yWLY="

3.3 运行

代码语言:javascript
复制
# ./build/lora-app-server 
INFO[0000] starting LoRa App Server                      docs="https://www.loraserver.io/" version=3.0.0-test.4-4-g4017505
INFO[0000] storage: setting up storage package          
INFO[0000] storage: setting up Redis pool               
INFO[0000] storage: connecting to PostgreSQL database   
INFO[0000] storage: applying PostgreSQL data migrations 
INFO[0000] storage: PostgreSQL data migrations applied   count=0
INFO[0000] integration/mqtt: TLS config is empty        
INFO[0000] integration/mqtt: connecting to mqtt broker   server="tcp://localhost:1883"
INFO[0000] api/as: starting application-server api       bind="0.0.0.0:8001" ca_cert= tls_cert= tls_key=
INFO[0000] integration/mqtt: connected to mqtt broker   
INFO[0000] integration/mqtt: subscribing to tx topic     qos=0 topic=application/+/device/+/tx
INFO[0000] api/external: starting api server             bind="0.0.0.0:8080" tls-cert= tls-key=
INFO[0000] api/external: registering rest api handler and documentation endpoint  path=/api
INFO[0000] api/js: starting join-server api              bind="0.0.0.0:8003" ca_cert= tls_cert= tls_key=

使用浏览器访问 :8080 端口,即可看到 AS 的 UI 界面。

3.4 AS 中关联 NS

由于最新的 backend 规范中,AS 可以关联多个 NS,因此在 AS 界面中需要先配置NS,这里填入本机NS即可。

4 小结

至此,三个组件都已配置启动。

END

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 Gateway Bridge
  • 1.1 生成配置文件
  • 1.2 启动 mqtt broker
  • 1.3 运行
  • 2 loraserver
    • 2.1 postgresql 帐户登录
      • 2.2 配置文件修改
        • 2.3 运行
        • 3 lora-app-server
          • 3.1 启动 Redis
            • 3.2 配置文件修改
              • 3.3 运行
                • 3.4 AS 中关联 NS
                • 4 小结
                • END
                相关产品与服务
                云数据库 Redis
                腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档