Linux学习|Gentoo/Arch/FreeBSD运维驿站Linux系统工程师

如何做到保持NTP时间源与上级NTP一直保持在50ms以内

2020-01-19  本文已影响0人  壹周技艺

众所周知,NTP时间服务器对于生产环境非常重要,比如生产业务数据库对写入关键数据都会写时间戳,而如果时间差异过大,对于时间精度较高的交易系统,可能造成业务数据紊乱,造成不可估量的经济损失。

为了更好得给大家讲解,画常规NTP时间源安全架构图(图1-1),根据安全架构分为三个区域互联网区、DMZ区、核心区分级向上同步时间,所属区域的服务器同步对应区域的时间源,其中互联网区得服务器只允许与上级中国授时时间中心、阿里云时间同步,并作为DMZ的上级时间源;然后每套时间源用两台作为主备时间服务器,保证主机A不可用时,主机B能提供支撑。

 

图1-1

如何来保障时间源和授时时间中心或阿里云时间相差小于50ms呢?

叁肆从三个维度为大家讲解

(1)安全防护

有人说:安全大于业务。没有安全怎能保证业务正常稳定运行,所以安全防护很重要。如果攻击者拿下互联网区的时间源服务器,整个环境的业务系统时间出现瘫痪局面,为了以防攻击者拿下时间源服务器,采取安全措施如下:

1、限制非指定运维的服务器ssh访问。

2、开启操作系统防火墙(互联网区的NTP时间源,只允许DMZ区时间源服务器同步)。

3、安装防病毒软件(比如:卡巴斯基)。

4、定期更新操作系统漏洞补丁(比如:openssh漏洞、其他软件漏洞等等)。

(2)时间保护措施

场景1:虚拟机和物理机开机启动系统时间如何保护?

由于NTP时间源校准通常为系统时间,而非硬件时间。

对于物理主机开机第一次读取硬件时间,同样虚拟机开机第一次也是读取所属物理宿主机的时间,由于物理机时间与NTP可能有时间差异,会造成物理机或虚拟机启动跟随有差异。

采取如下措施:

1、调整物理机系统时间和硬件时间与NTP保持同步,并且同步写入硬件时间。

      配置方法:/etc/sysconfig/ntpd文件中添加SYNC_HWCLOCK=yes,然后重启NTP服务。

2、虚拟机开机或重启都与上级NTP时间服务器强制同步一次。

场景2:对于时间精度要求高业务系统或数据库,当时间差异过大怎么平滑同步时间呢?

有人会说,停NTP服务后,直接用ntpdate定时任务强制同步,这种方便直接了当,这种方法很危险(对于核心业务服务器时间比NTP时间源快,然后强制同步一次,系统会经历两次相同时刻,对某些系统而言是致命的)。

首先看一下如下图1-2,以NTP服务加参数-x和-g的时间同步调整区别。

-g参数:如不添加NTP此参数,超过1000s及以上NTP服务进程就会自动退出,不会与NTP时间源保持同步,通常ntp 4以上版本默认配置。

-x参数:主要区别在128ms-600ms区间的时候,对于时间精度要求高的系统或数据库采用增加-x参数配置,时间校准以约0.5ms/s速度平滑同步(微调)。如不增加此参数,NTP服务直接调整本地系统时间。

配置方法:在/etc/sysconfig/ntpd配置中增加-x和-g参数

OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid -g"

图1-2

特别说明:如果需要设置不管差异时间为多少,都接受保持同步,可以通过指定panic阈值(单位:秒),服务默认情况为1000秒,超过1000秒后ntp进程就会退出并在系统日志文件中记录。如果设置为0的话,panic就被禁用了完整性检查并且任意一个时钟偏差值都会被接受。

配置方法:/etc/ntp.conf中添加tinker panic 0,然后重启NTP服务。

 

(3)时间源同步监控

   为了完全掌握各个区域时间源运行是否正常,需要实时了解上级时间源可用性、与上级时间源的时间差异快慢以及同步过程的关键信息,通过监控工具(nagios、zabbix等常用工具)轮询定时监控检查,并通过通知工具(短信、微信、邮件等方式)来实现告警通知。

监控项检查项说明以及告警措施:

① 当前时间源和上级时间源能否能同步。[ntpdate -d 上级时间源][判断本地到上级时间源可用性]

② 当前时间源和上级时间源差异时间。[ntpdate -d 上级时间源][判断本地到上级时间源差异性,相差30ms警告,50ms严重告警,检测offset为“-”:比时间源快,”+/无符号”:比时间源慢]

③ 当前时间源和上级时间源同步的状态。[ntpstat][ntp运行时间在15分钟以上再判断本地到上级时间源同步性]

④ 当前引用时间源IP[remote]、获取最近一次同步过的时间点[when]、下次更新时间点为[poll]、连接成功次数[reach] [输出本地到上级时间源同步相关信息]

⑤   微信告警设置为高优先级紧急告警  [出现异常实现紧急告警]

⑥ 每天发送NTP时间巡检报告 [通过微信告警平台,获取性能数据进行分析]

玩技术我们是认真的,想了解更多技术文章请关注如下微信公众号

微信搜一搜   “壹周技艺”

温馨提示:本篇文章仅做技术参考。


 

 

上一篇 下一篇

猜你喜欢

热点阅读