由于防火墙USG5520S上的时区设置错误导致elog无法显示二进制日志报表

发布时间:  2014-06-28 浏览次数:  466 下载次数:  0
问题描述
有客户反馈,把USG5520S成功加入到VSM中,并且同步网元成功。但是在VSM上看不到二进制日志的报表。
拓扑图如下:

USG5520S上相关的配置信息如下:
info-center source default channel 2 log state off
info-center loghost source GigabitEthernet0/0/2
info-center loghost 10.110.1.178 9002
#
firewall session log-type binary host 1 10.110.1.178 9002
firewall session log-type binary source 10.80.15.251 1616
#
firewall interzone trust untrust
session log enable acl-number 3046 inbound
session log enable acl-number 3046 outbound
告警信息
处理过程
(1) 从客户的反馈来看,USG5520S和elog服务器间的路由是正常的,并且USG5520S已经成功关联到elog日志收集器中。


检查日志收集模式,会话连接模式已经设置了,并且端口是9002,跟防火墙的配置一致。

(2) 从菜单 ”Analysis->Session Analysis->Session statistics ”上可以看到,elog日志收集器是能从防火墙收到二进制日志的。

(3) 查看防火墙的时区和时间设置,看上去跟elog设置的一致:.
USG5520S上的信息:

Elog服务器上查看的时区和时间信息:

(4) 在elog服务器上抓包,检查二进制日志中携带的时间。
从抓包上看,二进制日志收到的时间,跟防火墙的时间是一致的。如下图,防火墙收到二进制的时间为2014-06-17 17:01:34(由于打开该抓包是在中国,显示的北京时间,换算成东5区时间就是2014-06-17 14:01:34)

但是二进制日志中会携带时间信息,该信息表明该二进制日志产生的实际时间,是一串数字,以1970-1-1到现在的时钟滴答数。根据日志格式,如上截图中的时间为:
十六进制: 53a090ab53a090c1
换算成十进制:6025975366938562753
通过工具把这个时间转换成北京时间(UTC+8)就是 2014-06-18 03:02:25, 但当时的时间是2014-06-17 17:01:24(北京时间UTC+8)。换算成东五区(UTC+5),则二进制日志中携带的时间为2014-06-17 14:01:24,跟在防火墙上看到的时间不一样。 从这里可以看到,防火墙发送的二进制日志内携带的时间,和防火墙上显示的时间,是不一样的。
再仔细检查防火墙的配置,对比产品手册上对时区设置命令的表示,发现防火墙上对时区设置的地方有误:
<USG5500>dis clock
13:54:11 2014/06/17
2014-06-17 13:54:11
Tuesday
Time zone: pakestan add 05:00:00
<USG5500>
在USG5500的产品手册中,对修改时区的命令的描述如下:

从产品手册中可以得知,当需要设置 东五区UTC+5时,应该按照如下格式:
<USG5500>clock timezone pakistan minus 05:00:00
修改了时区后,还需要修改当地时间已跟防火墙时间匹配。之后,elog日志收集器能正常收到防火墙发过来的二进制日志,并能正常在报表中展示.
根因
1) USG5520S没有关联到elog日志收集器,或者日志收集器配置模式中没有配置二进制会话模式。
2) USG5520S没有发送二进制日志到elog日志收集器。
3) 在USG5520S和日志服务器上的时区或者时间不一致。
建议与总结
当配置防火墙USG5500往elog日志服务器发送日志时,时区和时间要求严格一致。截止目前最新的防火墙USG5500的版本V300R001C01SPC200,时区设置命令clock timezone的格式中, “add” 和“minus”的意思跟企业网络其他产品(路由器、交换机、WLAN)是完全相反的。 因此在配置时区时,需要参考产品手册。
参数 参数说明
add  表示time-zone-name时区的时间比通用协调时间UTC时间要晚。例如,设置时区为美国所在的西八区(–8),使用add 08:00:00。
minus 表示time-zone-name时区的时间比通用协调时间UTC时间要早。例如,设置时区为北京所在的东八区(+8),使用minus 08:00:00

END