【ntp】NTP服务器时间同步三部曲

【ntp】NTP服务器时间同步三部曲,第1张

在一台计算机上我们有两个时钟:一个称之为硬件时间时钟(RTC),还有一个称之为系统时钟(System Clock)。
系统时钟就是 *** 作系统的kernel所用来计算时间的时钟 它从1970年1月1日00:00:00 UTC时间到目前为止秒数总和的值。

在Linux下,系统时间在开机的时候会和RTC硬件时钟同步(synchronization),之后也就 各自独立运行 了。

系统运行期间,则通过其他硬件时钟源进行tick计算(tsc、hpet、acpi_pm)。

RTC(real time clock)通过主板(CMOS)的电磁供电,精确到秒。用户可手工设置RTC时间。

1 强制跃迁同步

ntpdate -u xxxxxxxx

xxxxxxxx 为ntpServer地址,如 ntpaliyuncom

注意:此时本机的ntpd不能启动,否则执行 ntpdate会报socket占用
2 将系统时间同步到硬件时钟

hwclock -w 
3 启动ntpd,后续平滑同步

systemctl start ntpd

注意:此时本机的不能在ntpd运行期间执行ntpdate,否则会报socket占用
NTP服务器时间监控脚本

>1cdh集群版本

5123  CentOS75

2、错误提示

3、集群所有节点都同步了ntp服务器,执行ntptime均返回ok,但任然有三个节点报错。

4、经过一番搜索尝试,问题在于CDH不能及时获取服务器同步性(当我们使用NTP时间同步服务器时)。所以我阐释使用chronyd做时间同步

5、CDH界面验证OK,错误警告消除。

RHEL/CentOS 7最低的安装版本都是默认安装了许多服务的,比如 邮件转移代理daemon, Avahi mdns daemon (multicast Domain Name System) 和Chrony 服务
Remove Services in CentOS 7
不过也遇到了新的问题因为有的服务感觉我们是不需要的,所以我们获得会禁用/启用一些服务
要求
CentOS 7 最低安装版
RHEL 7最低安装版
如果你想把最新安装的RHEL/CentOS 7 加入到主机去, 也就是说一个你不需要执行Postifx MTA daemon的比如运行一个Apache或Nginx网站,或者提供DNS, DHCP, PXE boot, FTP server网络服务器, 那么就要安装这些没必要服务,甚至要运行起来
对外部来说,一个小的安装服务器运行后可能需要ssh进程,方便外部管理
禁用/删除Postfix MTA, Avahi和Chrony服务
1 安装玩系统后,root登录或者其他非root用户登录切换更新系统,保证你系统的资源是最新的
# yum upgrade
Upgrade System
2 接下里就是使用yum安装一些必要的东西,比如net-tools (这个软件包比较的旧但的确是一个很好的ifconfig命令), nano文本编辑, wget 或curl, lsof (列出打开的文件) 和bash-completion, 需要执行
# yum install nano bash-completion net-tools wget curl lsof
Install System Utilities
3 现在就可以开始禁用和删除预安装的不想要的服务首先列出你已经安装或者正在运行的服务,执行netstat命令反向TCP, UDP和监听socket断开
# netstat -tulpn ## To output numerical service sockets
# netstat -tulp ## To output literal service sockets
List Enabled Services
4 看到了吧,Postfix是开启的,然后监听的是本地端口25, Avahi daemon绑定到了所有的网络接口,Chronyd服务绑定到了本地和所有的不同端口网络接口 通过下面的命令来删除Postfix MTA 服务
# systemctl stop postfix
# yum remove postfix
Remove Postfix Service
5 接下来删除Chronyd服务,我们用NTP服务替换掉
# systemctl stop chronyd
# yum remove chrony
Remove Chronyd Service
6 接下来删除Avahi daemon守护进程 RHEL/CentOS 7的Avahi daemon越来依靠网络管理服务了 把Avahi daemon删除之后,可以然系统不会链接任何网络
注意这步,如果你想要自动配置网络或者你需要通过nmtui网编辑网络接口,那么你需要停止和禁用Avahi 进程才能全部删除
如果你还是想完全删除这个服务的话,你必须手动的编辑网络配置文件/etc/sysconfig/network-scripts/ifcfg-interface_name,然后启动的启用网络服务
删除Avahi mdns daemon的时候可能会遇到些问题 注意:如果你ssh登录的情况下别删除Avahi daemon
# systemctl stop avahi-daemonsocket avahi-daemonservice
# systemctl disable avahi-daemonsocket avahi-daemonservice
--------- 如果你不想删除的话到这里就别执行了 ---------
# yum remove avahi-autoipd avahi-libs avahi
Remove Avahi Daemon
7 这步只有在你真想删除Avahi daemon服务和你断开网络连接并且你需要手动重新配置网络接口卡的时候
想使用IPv6和静态IP编辑你的NIC, 进入 /etc/sysconfig/network-scripts/ , 打开NIC 接口文件爱你 (一般来说第一张卡名是ifcfg-eno1677776 默认网络管理器就配置好了的) ,如果你网络接口还没配置的话就参考下面的向导
IPV6INIT=no
IPV6_AUTOCONF=yes
BOOTPROTO=none
DEVICE=eno16777736
ONBOOT=yes
UUID=c3f0dc21-d2eb-48eb-aadf-10a520b13df0
TYPE=Ethernet
#DEFROUTE=no
IPV4_FAILURE_FATAL=no
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no
NAME="System eno16777736"
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
HWADDR=00:0C:29:E2:06:E9
IPADDR=192168125
NETMASK=2552552550
GATEWAY=19216811
DNS1=19216811
DNS2=8888
Configure Network Interface
一些重要的设置说明:
BOOTPROTO – 设置为空或者静态IP – 适合配置静态IP
ONBOOT – 设置为yes – 重启后启动接口
DEFROUTE – 使用 #可以注视或者全部删除也行 – 不要使用默认配置 (如果你使用默认的,那你需要给所有网络接口添加一个 “DEFROUTE: no”)
8 如果你的机器配置有自动分配IP的DHCP服务器的话, 使用下面的读来配置网络接口
IPV6INIT=no
IPV6_AUTOCONF=yes
BOOTPROTO=dhcp
DEVICE=eno16777736
ONBOOT=yes
UUID=c3f0dc21-d2eb-48eb-aadf-10a520b13df0
TYPE=Ethernet
##DEFROUTE=no
IPV4_FAILURE_FATAL=no
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no
NAME="System eno16777736"
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
HWADDR=00:0C:29:E2:06:E9
Configure DHCP Interface
跟配置静态IP地址一样,假设BOOTPROTO设置到了dhcp,DEFROUTE是注视或者删除了设备并需要重启才行,如果你没有IPv6,你阿九删除或者注视所有含有IPV6的配置
9 为了让新的接口配置生效,你需要重启电脑或者网络服务,重启之后使用ifconfig或者ip命令来查看你设置的网络是否生效
# service network restart ## Use this command before systemctl
# chkconfig network on
# systemctl restart network
# ifconfig
# ping domaintld
Confirm Network Settings
10 最后确保你使用了hostnamectl系列命令给系统设置了hosetname名字,查看你的hostname配置使用下面的命令
# hostnamectl set-hostname FQDN_system_name
# hostnamectl status
# hostname
# hostname -s ## Short name
# hostname -f ## FQDN name
Setup System Hostname
11 好了,最后使用一下netstat来看看系统允许的是那个网络
# netstat -tulpn
# netstat -tulp
Verify Running Services
12 处理SSH服务外,如果你的网络使用的是DHCP来拉去静态IP配置,那么需要运行一个DHCP客户端,然后启用UDP端口
# netstat -tulpn
Verify DHCP Service
13 另外可以选的,你也可以使用ofSockets Statistics命令来打印出正在运行的socket网络
# ss -tulpn
ss Command to Check Network
14 重启电脑,执行systemd-analize来检测你的系统boot-time是否正常,同时,使用free和Disk Free 命令可以用来显示RAM和HDD统计情况,top命令可以来查看系统资源使用情况
# free -h
# df -h
# top
Chec

linux在运行时间长了之后,尤其在虚拟环境中。系统时间可能会存在一定的误差,时间同步在大型集群环境中是很重要的,而通过ntp协议来同步时间,则是一个很好的解决方案。

在CentOS6中,默认是使用ntpd来同步时间的,但ntpd同步时间并不理想,有可能需要数小时来同步时间,所以在Centos7中换成了chrony来实现时间同步。chrony并且兼容ntpd监听在udp123端口上,自己则监听在udp的323端口上。

如果在chrony配置文件中指定了ntp服务器的地址,那么chrony就是一台客户端,会去同步ntp服务器的时间,如果在chrony配置了允许某些客户端来向自己同步时间,则chrony也充当了一台服务器,所以,安装了chrony即可充当客户端也可以充当服务端。

chrony自带一个交互式工具chronyc,在配置文件中指定了时间服务器之后,如果想查看同步状态,可以进入这个交互式工具的交互界面。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10583944.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-09
下一篇2023-05-09

发表评论

登录后才能评论

评论列表(0条)

    保存