
# ALM-12012 NTP服务异常
#### 告警解释
系统每60s检查一次节点NTP服务与主OMS节点NTP服务是否正常同步时间，连续两次检测NTP服务未同步上时产生该告警。
若正常同步，当节点NTP服务与主OMS节点NTP服务时间偏差连续两次大于等于20s时产生该告警；当节点NTP服务与主OMS节点NTP服务时间偏差小于20s时恢复该告警。
#### 告警属性
| 告警ID  | 告警级别 | 是否自动清除 |
|:---|:---|:---|
| 12012 | 重要   | 是      |
   
#### 告警参数
| 参数名称 | 参数含义          |
|:---|:---|
| 来源   | 产生告警的集群或系统名称。 |
| 服务名  | 产生告警的服务名称。    |
| 角色名  | 产生告警的角色名称。    |
| 主机名  | 产生告警的主机名。     |
   
#### 对系统的影响
该节点的时间与集群其他节点的时间不同步，可能会导致该节点上的某些FusionInsight应用无法正常运行。如果该节点与其他kerberos服务实例时差持续增大，则可能引起该节点组件进行kerberos认证将失败，进而引起业务异常。
#### 可能原因
- 该节点的NTP服务无法正常启动。
- 该节点与主OMS节点NTP服务不能正常同步时间。
- 该节点NTP认证的key值与主OMS节点NTP服务的key值不一致。
- 该节点与主OMS节点NTP服务时间偏差太大。
 
#### 处理步骤
**检查该节点的NTP服务模式。**
1. 以**root** 用户登录主管理节点，查看主备管理节点的资源状态。
   
   集群节点登录可参考[登录MRS集群节点](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0083.html)。
   切换到**omm**用户。
   ```
   su - omm
   ```
   查看主备管理节点的资源状态。
   ```
   sh ${BIGDATA_HOME}/om-server/om/sbin/status-oms.sh
   ```
   - 回显中"ResName"列出现"chrony"字样，执行[步骤 2]。
   
   - 回显中"ResName"列出现"ntp"字样，执行[步骤 20]。
   
   
   ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
   如果回显中"ResName"列同时出现"chrony"和"ntp"字样，则表示正在切换NTP服务模式，等待十分钟再次执行[步骤 1]，如果回显中"ResName"列依旧同时出现"chrony"和"ntp"字样，请联系运维人员。
   
   
**检查该节点的chrony** **服务是否正常启动。**
2. 打开FusionInsight Manager页面，选择"运维 \> 告警 \> 告警"，单击此告警所在行的![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0263895611.png)，在定位信息中查看发生该告警的主机名称。
3. 检查chronyd进程是否运行在告警节点上。使用**root** 用户登录告警节点，执行命令，检查命令是否输出chronyd进程的信息。
   
   ```
   ps -ef | grep chronyd | grep -v grep
   ```
   - 是，执行[步骤 6]。
   
   - 否，执行[步骤 4]。
   
   
   
   
4. 启动NTP服务。
5. 10分钟后，检查该告警是否恢复。 
   - 是，处理完毕。
   
   - 否，执行[步骤 6]。
   
   
   
   
**检查该节点与主OMS** **节点chrony** **服务是否正常同步时间。**
6. 查看NTP告警的"附加信息"是否描述"与主OMS节点NTP服务无法同步时间"。
   
   - 是，执行[步骤 7]。
   
   - 否，执行[步骤 17]。
   
   
   
   
7. 排查与主OMS节点chrony服务的同步是否有问题。
   
   使用**root** 用户登录告警节点，执行**chronyc sources**命令。
   ```
   chronyc sources
   ```
   如果显示结果的主OMS节点chrony服务IP地址前有"\*"号，表示同步正常，如下：
   ```
   MS Name/IP address         Stratum Poll Reach LastRx Last sample               
   ===============================================================================
   ^* 10.10.10.162             10  10   377   626    +16us[  +15us] +/-  308us
   ```
   如果显示结果的主OMS节点NTP服务IP前无"\*"号，且"**Reach**"项内容为"0"，表示同步不正常。
   ```
   MS Name/IP address         Stratum Poll Reach LastRx Last sample               
   ===============================================================================
   ^? 10.1.1.1                      0  10     0     -     +0ns[   +0ns] +/-    0ns
   ```
   - 是，执行[步骤 8]。
   
   - 否，执行[步骤 38]。
   
   
   
   
8. chrony不能正常同步，通常与系统防火墙有关。如果能关闭防火墙，建议尝试关闭防火墙；如果不能关闭防火墙，请检查防火墙配置策略，确保UDP 123、323端口未禁用（具体遵循各系统下防火墙配置策略）。
9. 处理防火墙后等待10分钟，检查该告警是否恢复。 
   - 是，处理完毕。
   
   - 否，执行[步骤 10]。
   
   
   
   
10. 使用**root** 用户登录主OMS节点，执行下列命令，查看key值索引号为"1M"的认证码。
    
    ```
    cat ${BIGDATA_HOME}/om-server/OMS/workspace/conf/chrony.keys
    ```
    
    
11. 执行下列命令，查看key值是否与[步骤 10]的查询值相同。
    
    ```
    diff ${BIGDATA_HOME}/om-server/OMS/workspace/conf/chrony.keys /etc/chrony.keys
    ```
    key值相同时，执行命令后不会返回任何结果，例如：
    ```
    host01:~ # cat ${BIGDATA_HOME}/om-server/OMS/workspace/conf/chrony.keys       
    1 M sdYbq;o^CzEAWo<U=Tw5
    host01:~ # diff ${BIGDATA_HOME}/om-server/OMS/workspace/conf/chrony.keys /etc/chrony.keys
    host01:~ #
    ```
    - 是，执行[步骤 12]。
    
    - 否，执行[步骤 38]。
    
    
    
    
12. 执行命令，查看key值是否与[步骤 10]的查询值相同。（请与[步骤 10]查询值的认证密钥索引为"1M"的key值进行对比）。
    
    ```
    cat ${BIGDATA_HOME}/om-server/om/packaged-distributables/ntpKeyFile
    ```
    - 是，执行[步骤 13]。
    
    - 否，执行[步骤 15]。
    
    
    
    
13. 使用**root** 用户登录故障节点，执行**cat /etc/chrony.keys** ，查看key值是否与[步骤 12]的查询值相同（请使用查询出的认证密钥索引为"1M"的key值进行对比）。
    
    ```
    cat /etc/chrony.keys
    ```
    - 是，执行[步骤 38]。
    
    - 否，执行[步骤 14]。
    
    
    
    
14. 将用户切换为**omm** 用户，并手动将"${NODE_AGENT_HOME}/chrony.keys"中认证密钥索引字段为"1M"的key值修改为[步骤 12]中ntpKeyFile的key值，执行[步骤 16]。
    
    ```
    su - omm
    ```
    ```
    vi ${NODE_AGENT_HOME}/chrony.keys
    ```
    
    
15. 使用**root** 用户或**omm** 用户执行以下命令，修改主OMS节点ntp的key值（Red Hat系统请将ntp.keys改为ntpkeys）。
    
    ```
    cd ${BIGDATA_HOME}/om-server/OMS/workspace/conf
    ```
    ```
    sed -i "`cat chrony.keys | grep -n '1 M'|awk -F ':' '{print $1}'`d" chrony.keys
    ```
    ```
    echo "1 M `cat ${BIGDATA_HOME}/om-server/om/packaged-distributables/ntpKeyFile`" >> chrony.keys
    ```
    查看"chrony.keys"中认证密钥索引字段为1M的key值是否和ntpKeyFile的值相同。
    - 是，执行[步骤 16]。
    
    - 否，请尝试手动将chrony.keys中认证密钥索引字段为"1M"的key值修改为ntpKeyFile的key值，执行[步骤 16]。
    
    
    
    
16. 5分钟后，执行命令，重启主OMS节点chrony服务，15分钟后查看告警是否消除。
    
    ```
    systemctl restart chronyd
    ```
    - 是，处理完毕。
    
    - 否，执行[步骤 38]。
    
    
    
    
**检查该节点与主OMS** **节点chrony** **服务时间偏差是否太大。**
17. NTP告警的"附加信息"是否描述"时间偏差太大"。
    
    - 是，执行[步骤 18]。
    
    - 否，执行[步骤 38]。
    
    
    
    
18. 在"主机"页面，勾选告警节点的主机，选择"更多 \> 停止所有实例"停止告警节点的所有服务。
    
    如果告警节点时间比主OMS节点**chrony**服务时间慢，校正告警节点的系统时间。校正告警节点的系统时间后，选择"更多 \> 启动所有实例"启动告警节点的服务。
    如果告警节点时间比主OMS节点**chrony**服务时间快，等待相应时间差，校正告警节点的系统时间。校正完成后，选择"更多 \> 启动所有实例"启动告警节点的服务。
    ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
    如果不做相应等待，可能造成数据丢失风险。
    
    
19. 10分钟后，检查该告警是否恢复。 
    - 是，处理完毕。
    
    - 否，执行[步骤 38]。
    
    
    
    
**检查该节点的NTP服务是否正常启动。**
20. 打开FusionInsight Manager页面，选择"运维 \> 告警 \> 告警"，单击此告警所在行的![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0263895471.png)，在定位信息中查看发生该告警的主机名称。
21. 检查ntpd进程是否运行在告警节点上。使用**root** 用户登录告警节点，用户密码为安装前用户自定义，请咨询系统管理员，执行命令，检查命令是否输出ntpd进程的信息。
    
    ```
    ps -ef | grep ntpd | grep -v grep
    ```
    - 是，执行[步骤 24]。
    
    - 否，执行[步骤 22]。
    
    
    
    
22. 执行命令启动NTP服务。
    
    ```
    service ntp start
    ```
    Red Hat系统执行**service ntpd start**。
    
    
23. 10分钟后，检查该告警是否恢复。 
    - 是，处理完毕。
    
    - 否，执行[步骤 24]。
    
    
    
    
**检查该节点与主OMS节点NTP服务是否正常同步时间。**
24. 查看NTP告警的"附加信息"是否描述"与主OMS节点NTP服务无法同步时间"。
    
    - 是，执行[步骤 25]。
    
    - 否，执行[步骤 35]。
    
    
    
    
25. 排查与主OMS节点NTP服务的同步是否有问题。管理节点的主备状态及对应IP地址可在FusionInsight Manager主机管理界面查看。
    
    使用**root** 用户登录告警节点，执行**ntpq -np**命令。
    ```
    ntpq -np
    ```
    如果显示结果的主OMS节点NTP服务IP地址前有"\*"号，表示同步正常，如下：
    ```
    remote refid st t when poll reach delay offset jitter 
    ============================================================================== 
    *10.10.10.162 .LOCL. 1 u 1 16 377 0.270 -1.562 0.014
    ```
    如果显示结果的主OMS节点NTP服务IP前无"\*"号，且"refid"项内容为".INIT."，表示同步不正常。
    ```
    remote refid st t when poll reach delay offset jitter 
    ============================================================================== 
    10.10.10.162 .INIT. 1 u 1 16 377 0.270 -1.562 0.014
    ```
    - 是，执行[步骤 26]。
    
    - 否，执行[步骤 38]。
    
    
    
    
26. NTP不能正常同步，通常与系统防火墙有关。如果能关闭防火墙，建议使用命令**iptables -F** 尝试关闭防火墙；如果不能关闭防火墙，请使用命令**iptables -L** 检查防火墙配置策略，确保**UDP 123** 端口未禁用（具体遵循各系统下防火墙配置策略）。
    
    ```
    iptables -F
    ```
    
    
27. 处理防火墙后等待10分钟，检查该告警是否恢复。 
    - 是，处理完毕。
    
    - 否，执行[步骤 28]。
    
    
    
    

28. 使用**root** 用户登录主OMS节点，执行下列命令，查看key值索引号为"1M"的认证码。
    
    ```
    cat ${BIGDATA_HOME}/om-server/OMS/workspace/conf/ntpkeys
    ```
    
    
29. 执行下列命令，查看key值是否与[步骤 28]的查询值相同。
    
    ```
    diff ${BIGDATA_HOME}/om-server/OMS/workspace/conf/ntpkeys /etc/ntp/ntpkeys
    ```
    key值相同时，执行命令后不会返回任何结果，例如：
    ```
    host01:~ # cat ${BIGDATA_HOME}/om-server/OMS/workspace/conf/ntp.keys       
    1 M sdYbq;o^CzEAWo<U=Tw5
    host01:~ # diff ${BIGDATA_HOME}/om-server/OMS/workspace/conf/ntp.keys /etc/ntp.keys
    host01:~ #
    ```
    - 是，执行[步骤 30]。
    
    - 否，执行[步骤 38]。
    
    
    
    
30. 执行命令查看key值是否与[步骤 28]的查询值相同。（请与[步骤 28]查询值的认证密钥索引为"1M"的key值进行对比）。
    
    ```
    cat ${BIGDATA_HOME}/om-server/om/packaged-distributables/ntpKeyFile
    ```
    - 是，执行[步骤 31]。
    
    - 否，执行[步骤 33]。
    
    
    
    
31. 使用**root** 用户登录故障节点，执行命令查看key值是否与[步骤 30]的查询值相同（请使用查询出的认证密钥索引为"1M"的key值进行对比）。
    
    ```
    cat /etc/ntp/ntpkeys
    ```
    - 是，执行[步骤 38]。
    
    - 否，执行[步骤 32]。
    
    
    
    
32. 将用户切换为**omm** 用户，并手动将${NODE_AGENT_HOME}/ntp.keys（Red Hat系统为${NODE_AGENT_HOME}/ntpkeys）中认证密钥索引字段为"1M"的key值修改为[步骤 30]中ntpKeyFile的key值，执行[步骤 34]。
    
    ```
    su - omm
    ```
    
    
33. 使用**root** 用户或**omm** 用户执行以下命令，修改主OMS节点ntp的key值（Red Hat系统请将ntp.keys改为ntpkeys）。
    
    ```
    cd ${BIGDATA_HOME}/om-server/OMS/workspace/conf
    ```
    ```
    sed -i "`cat ntp.keys | grep -n '1 M'|awk -F ':' '{print $1}'`d" ntp.keys
    ```
    ```
    echo "1 M `cat ${BIGDATA_HOME}/om-server/om/packaged-distributables/ntpKeyFile`" >>ntp.keys
    ```
    查看"ntp.keys"中认证密钥索引字段为1M的key值是否和ntpKeyFile的值相同。
    - 是，执行[步骤 34]。
    
    - 否，请尝试手动将ntp.keys中认证密钥索引字段为"1M"的key值修改为ntpKeyFile的key值，执行[步骤 34]。
    
    
    
    
34. 5分钟后，执行命令重启主OMS节点ntp服务，15分钟后查看告警是否消除。
    
    ```
    service ntp restart
    ```
    - 是，处理完毕。
    
    - 否，执行[步骤 38]。
    
    
    
    
**检查该节点与主OMS节点NTP服务时间偏差是否太大。**
35. NTP告警的"附加信息"是否描述"时间偏差太大"。
    
    - 是，执行[步骤 36]。
    
    - 否，执行[步骤 38]。
    
    
    
    
36. 在"主机"页面，勾选告警节点的主机，选择"更多 \> 停止所有实例"停止告警节点的所有服务。
    
    如果告警节点时间比主OMS节点NTP服务时间慢，校正告警节点的系统时间。校正告警节点的系统时间后，选择"更多 \> 启动所有实例"启动告警节点的服务。
    如果告警节点时间比主OMS节点NTP服务时间快，等待相应时间差，校正告警节点的系统时间。校正完成后，选择"更多 \> 启动所有实例"启动告警节点的服务。
    ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
    如果不做相应等待，可能造成数据丢失风险。
    
    
37. 10分钟后，检查该告警是否恢复。 
    - 是，处理完毕。
    
    - 否，执行[步骤 38]。
    
    
    
    
**收集故障信息。**
38. 在FusionInsight Manager界面，选择"运维 \> 日志 \> 下载"。
39. 在"服务"中勾选"NodeAgent"、"OmmServer"，单击"确定"。设置"主机"为告警所在节点和主OMS节点。
40. 单击右上角的![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0263895607.png)设置日志收集的"开始时间"和"结束时间"分别为告警产生时间的前后30分钟，单击"下载"。
41. 请联系运维人员，并发送已收集的故障日志信息。
 
#### 告警清除
此告警修复后，系统会自动清除此告警，无需手工清除。
#### 参考信息
无。
