日志时间戳为什么重要
日志要能用来还原时间线,前提是每条记录都带可信的时间戳。很多设备的默认格式是「启动运行时长」而不是日历时间,单机看还行,一旦要把多台设备的日志拼成一条故障时间线就完全对不上。跨设备分析需要统一成「日期 + 时间 + 毫秒 + 时区」,格式统一之外,还需要设备本身已经通过 NTP 校时。
基本信息
| 适用平台 | 华为 VRP(info-center timestamp)、思科 IOS(service timestamps)、H3C Comware(info-center timestamp) |
|---|---|
| 推荐格式 | 日期 + 时分秒 + 毫秒 + 时区偏移 |
| 前置条件 | 先用 NTP 校时,否则格式再规范时间也是错的 |
| 思科特点 | log 与 debug 分别设置,可加 localtime 与 show-timezone |
| 华为/H3C 特点 | log、trap、debug 三类分别设置,命令结构一致 |
典型使用场景
- 对接集中日志平台:SIEM 与日志服务器按时间戳做排序,格式不统一会导致时间线错乱
- 跨设备故障还原:一个业务中断往往涉及多台设备,毫秒级时间戳才能排出先后
- 与抓包结果比对:抓包时间是绝对时间,设备日志必须能对上
- 审计合规:日志留存要求时间戳可追溯且时区明确
- 变更窗口核对:确认某条配置变更与告警是否在同一时间点发生
华为 VRP
华为 VRP
[Huawei] info-center timestamp log date # 日志带日期时间
[Huawei] info-center timestamp trap date # 告警同样的格式
[Huawei] info-center timestamp debug date # 调试信息也统一
! date 之外还有 boot(运行时长)等选项,跨设备分析不要用 boot
[Huawei] ntp-service enable # 先校时,时间戳才有意义
[Huawei] ntp-service unicast-server 10.10.0.123
<Huawei> display clock # 校准后核对本机时间思科 IOS
思科 IOS
SW-CORE-01(config)# service timestamps log datetime msec localtime show-timezone
# 逐项含义:datetime 用日历时间,msec 带毫秒,localtime 按本地时区显示
# show-timezone 显示时区名,便于不同站点日志合并时区分
SW-CORE-01(config)# service timestamps debug datetime msec
# debug 与 log 是两套设置,只配一条会有一半日志格式不一致
SW-CORE-01(config)# ntp server 10.10.0.123
SW-CORE-01# show clock detail # 确认时间源是否已同步H3C Comware
H3C Comware
[H3C] info-center timestamp log date
[H3C] info-center timestamp trap date
[H3C] info-center timestamp debug date
! 部分版本提供 format-date / short-date 等扩展格式,用 ? 查看
[H3C] ntp-service unicast-server 10.10.0.123
<H3C> display clock常用格式选项
| 平台 | 选项 | 效果 |
|---|---|---|
| 华为/H3C | date | 日期 + 时间,跨设备分析用这个 |
| 华为/H3C | boot | 设备启动后运行时长,跨设备不可比 |
| 思科 | datetime msec | 日历时间 + 毫秒 |
| 思科 | localtime show-timezone | 附本地时区名与偏移 |
| 思科 | uptime | 运行时长,相当于华为/H3C 的 boot |
时区策略要全网统一:要么统一用本地时区并保留偏移量,要么统一用协调世界时。混用两种策略时,日志平台看起来「有序」但顺序其实是错的,这类问题极难发现。