# 修改 EMQX 日志等级

# 任务目标

如何修改 EMQX 集群日志等级。

# 配置 EMQX 集群

下面是 EMQX Custom Resource 的相关配置,你可以根据希望部署的 EMQX 的版本来选择对应的 APIVersion,具体的兼容性关系,请参考 EMQX Operator 兼容性:

EMQX 企业版在 EMQX Operator 里面对应的 CRD 为 EmqxEnterprise,EmqxEnterprise 支持通过 .spec.template.spec.emqxContainer.emqxConfig 字段配置 EMQX 集群日志等级。emqxConfig 字段的具体描述可以参考:emqxConfig

  • 将下面的内容保存成 YAML 文件,并通过 kubectl apply 命令部署它

    apiVersion: apps.emqx.io/v1beta4
    kind: EmqxEnterprise
    metadata:
      name: emqx-ee
    spec:
      template:
        spec:
          emqxContainer:
            image:
              repository: emqx/emqx-ee
              version: 4.4.14
            emqxConfig:
              log.level: debug
      serviceTemplate:
        spec:
          type: LoadBalancer
    
    Copied!
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16

    .spec.template.spec.emqxContainer.emqxConfig 字段配置 EMQX 集群日志等级为 debug

  • 等待 EMQX 集群就绪,可以通过 kubectl get 命令查看 EMQX 集群的状态,请确保 STATUSRunning,这个可能需要一些时间

    $ kubectl get emqxenterprises
    NAME      STATUS   AGE
    emqx-ee   Running  8m33s
    
    Copied!
    1
    2
    3
  • 获取 EMQX 集群的 External IP,访问 EMQX 控制台

    $ kubectl get svc emqx-ee -o json | jq '.status.loadBalancer.ingress[0].ip'
    
    192.168.1.200
    
    Copied!
    1
    2
    3

    通过浏览器访问 http://192.168.1.200:18083,使用默认的用户名和密码 admin/public 登录 EMQX 控制台。

# 验证日志等级

MQTT X CLI (opens new window) 是一款开源的 MQTT 5.0 命令行客户端工具,旨在帮助开发者在不需要使用图形化界面的基础上,也能更快的开发和调试 MQTT 服务与应用。

  • 获取 EMQX 集群的 External IP

    external_ip=$(kubectl get svc emqx-ee -o json | jq '.status.loadBalancer.ingress[0].ip')
    
    Copied!
    1
  • 使用 MQTT X CLI 连接 EMQX 集群

    $ mqttx conn -h ${external_ip} -p 1883
    
    [4/17/2023] [5:17:31 PM] › …  Connecting...
    [4/17/2023] [5:17:31 PM] › ✔  Connected
    
    Copied!
    1
    2
    3
    4
  • 使用命令行查看 EMQX 集群日志信息

    $ kubectl logs emqx-core-0 -c emqx
    
    Copied!
    1

    可以获取到类似如下的打印,这意味着 EMQX 收到了一个来自客户端的 CONNECT 报文,并向客户端回复了 CONNACK 报文:

    2023-04-17T09:11:35.993031+00:00 [debug] msg: mqtt_packet_received, mfa: emqx_channel:handle_in/2, line: 360, peername: 218.190.230.144:59457, clientid: mqttx_322680d9, packet: CONNECT(Q0, R0, D0, ClientId=mqttx_322680d9, ProtoName=MQTT, ProtoVsn=5, CleanStart=true, KeepAlive=30, Username=undefined, Password=), tag: MQTT
    2023-04-17T09:11:35.997066+00:00 [debug] msg: mqtt_packet_sent, mfa: emqx_connection:serialize_and_inc_stats_fun/1, line: 872, peername: 218.190.230.144:59457, clientid: mqttx_322680d9, packet: CONNACK(Q0, R0, D0, AckFlags=0, ReasonCode=0), tag: MQTT
    
    Copied!
    1
    2