API密钥失效

服务器意外断电,API密钥连接emqx的api 失败,
出现多次,有一次,API密钥列表直接清空

请提供更多信息,emqx版本号,错误日志,等等。

版本 : 5.1.0
接口返回 : {“code”:“BAD_API_KEY_OR_SECRET”,“message”:“Check api_key/api_secret”}

使用 虚拟机 Hyper-v , linux系统,docker部署

docker部署做到 2 点才能保证数据和配置不丢:

  1. 挂载 data 目录到外面。
  2. 固定IP(节点名字)。
    这 2 个在docker image的 readme 都有详细的说明。
    按你的描述很有可能是IP没有固定。

虚拟机的IP是固定的

如果是正常执行关机操作,是没有问题的,但是有时会突然断电,目前已经连续出现了三次API密钥失效的情况

数据并没有丢失,而是 已有的API密钥失效了

看了一下代码,这个应该不太可能啊,可能是我没看出来。。。
这个失效是启动后一直失效么,还是说短暂的,后面会恢复?
还有密钥列表上的数据还在么?

有一次,清空了;
另外两次 都还有;
一直失效,专门测了一下,一直返回 {“code”:“BAD_API_KEY_OR_SECRET”,“message”:“Check api_key/api_secret”}
重新创建才可以;

这个跟 使用Hyper-V 虚拟机有关吗?
这是两个服务器突然断电都出现这种情况

如果没有清空,还一直失效的话,怀疑是虚拟机的时间同步没有成功?可以关注一下虚拟里面的系统时间是不是正确的。
同时看看

./bin/emqx eval "calendar:system_time_to_rfc3339(erlang:system_time(second))."

返回的时间与系统时间是不是对得上。

这个……

你得把命令打全,前面的./bin/emqx也是命令的一部分。

确实不一致
“2024-02-18T22:09:21+00:00”

那就想办法在虚拟机启动 emqx 前先同步一下系统时间。
如果你用的是systemd 来管理自启动,可以找找这个 unit 的资料:
systemd-timesyncd.service