在内网环境下,采集服务器与代理服务器之间的时间不同步,会导致以下两个问题:
(暂未发现因时间不同步导致的其他问题)
1)代理最近出现时间负数的情况,如下图:
一旦出现负数,即使后面的时间同步了,也依然会保持负数的状态,但不影响监控情况。
2)snmp监控网络设备时,snmp协议的按钮不亮,但是有最新数据,如下图:
解决办法:在采集服务器上配置NTP服务,让代理服务器作为NTP客户端,以采集服务器上的时间为标准。
环境:
CentOS Linux release 7.3.1611 (Core)
Zabbix和代理版本:3.4.13
配置过程:
1.zabbix服务器上安装ntp服务
1)挂载本地镜像文件
详细操作步骤省略。
2)配置本地镜像源
详细操作步骤省略。
3)使用yum命令安装ntp服务:
yum -y install ntp
2.zabbix服务器上配置为ntp服务器
1)修改配置文件
vi /etc/ntp.conf
//将这行给注释
#restrict default nomodify notrap nopeer noquery
//然后添加这两行 ,意思是 允许IPV4 IPV6 查询 拒绝修改
restrict -4 default kod notrap nomodify
restrict -6 default kod notrap nomodify
//添加修改上层时间服务器,如果能联通外网,则不需要修改,
server 0.rhel.pool.ntp.org iburst
server 1.rhel.pool.ntp.org iburst
server 2.rhel.pool.ntp.org iburst
server 3.rhel.pool.ntp.org iburst
//如果联不通外网,则把上面几行注释,然后添加下面两行,意思是设置时间服务器为自己
server 127.127.1.0
fudge 127.127.1.0 stratum8
修改完成后如下图所示:
(grep -Ev "^#|^$" /etc/ntp.conf 命令的用途是排除#开头的注释,显示文件的内容)
2)开启服务
systemctl start ntpd
3)查看ntpd服务的运行状态
systemctl status ntpd
4)配置ntpd服务开机自启
systemctl enable ntpd
或:
chkconfig ntpd on
5)查看ntp服务器同步状态
[root@localhost ~]# ntpstat # 确认本地NTP与上层NTP服务器是否联通
synchronised to local net at stratum nine
time correct to within 12 ms # 时间校正到相差12ms之内
polling server every 64 s # 每64秒会向上级NTP轮询更新一次时间
[root@localhost ~]# ntpq -p # 查看本地NTP需进行同步的公网NTP服务器状态
remote refid st t when poll reach delay offset jitter
LOCAL(0) .LOCL. 8 l 60 64 377 0.000 0.000 0.000
[root@localhost ~]#
参数详解:
remote :本地主机所连接的上层NTP服务器,最左边的符号如下:
如果有[] 代表目前正在使用当中的上层NTP服务器。
如果有[+] 代表也有连上上层NTP服务器,可以作为提高时间更新的候选NTP服务器
如果有[-] 代表同步的该NTP服务器被认为是不合格的NTP Server
如果有[x] 代表同步的外网NTP服务器不可用
refid :指的是给上层NTP服务器提供时间校对的服务器。
St:上层NTP服务器的级别。
When: 上一次与上层NTP服务器进行时间校对的时间(单位:s)
Poll :本地主机与上层NTP服务器进行时间校对的周期(单位:s)
reach:已经向上层 NTP 服务器要求更新的次数
delay:网络传输过程当中延迟的时间,单位为 10^(-6) 秒
offset:时间补偿的结果,单位为10^(-6) 秒
jitter:Linux 系统时间与 BIOS 硬件时间的差异时间, 单位为 10^(-6) 秒。
3.代理服务器上配置为ntp客户端
1)安装ntp服务
过程同1. zabbix服务器上安装ntp服务
2)修改ntp配置文件
//将这行给注释
#restrict default nomodify notrap nopeer noquery
//设置时间服务器为内网NTP服务器
server 10.160.255.142 iburst
修改完成后如下图所示:
(grep -Ev "^#|^$" /etc/ntp.conf 命令的用途是排除#开头的注释,显示文件的内容)
3)开启服务
systemctl start ntpd
4)查看ntpd服务的运行状态
systemctl status ntpd
或
chkconfig ntpd on
5)使用ntpstat 和ntpq -p命令,查看ntp服务器同步状态
4.一段时间后再观察snmp监控网络设备的情况
一段时间后,snmp协议的按钮颜色恢复正常
过程中可能出现的问题:
1.按教程配置了ntp客户端口,ntpstat 和ntpq -p命令看到的状态异常。
分析:这可能是ntp客户端的本地时间与ntp服务器的时间相差太大导致的。
解决办法:
1)手动执行ntpdate 10.160.255.142 命令,进行时间同步。
2)时间同步后,使用systemctl restart ntpd 命令重启ntp服务即可
2.ntp服务同步了系统时间后,也想把硬件时间同步了
操作方法:
1)修改/etc/sysconfig/ntpd文件,写入下面两行:
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g"
SYNC_HWCLOCK=yes
结果如下图:
2)修改完成后,重启ntpd服务即可。
参考链接:
https://blog.csdn.net/qq_36119192/article/details/82813477
参数详解:
remote :本地主机所连接的上层NTP服务器,最左边的符号如下:
如果有[*] 代表目前正在使用当中的上层NTP服务器。
如果有[+] 代表也有连上上层NTP服务器,可以作为提高时间更新的候选NTP服务器
如果有[-] 代表同步的该NTP服务器被认为是不合格的NTP Server
如果有[x] 代表同步的外网NTP服务器不可用
refid :指的是给上层NTP服务器提供时间校对的服务器。
St:上层NTP服务器的级别。
When: 上一次与上层NTP服务器进行时间校对的时间(单位:s)
Poll :本地主机与上层NTP服务器进行时间校对的周期(单位:s)
reach:已经向上层 NTP 服务器要求更新的次数
delay:网络传输过程当中延迟的时间,单位为 10^(-6) 秒
offset:时间补偿的结果,单位为10^(-6) 秒
jitter:Linux 系统时间与 BIOS 硬件时间的差异时间, 单位为 10^(-6) 秒。