1. 日志基础入门:交换机日志的作用、日志级别(0-7)、日志格式解析、日志存储位置
说实话,干了这么多年网络运维,我最怕听到的一句话就是:「交换机又出问题了,你来看看日志。」
很多人一听到「日志」两个字就头大,觉得那是天书。但我告诉你,日志其实是交换机在跟你说话。它把发生了什么、什么时候发生的、严重不严重,都清清楚楚写在了日志里。你只要学会怎么看,就能快速定位问题。
这一章,我们就从最基础的东西开始聊。
1.1 交换机日志到底有什么用?
日志的作用,说白了就三个:
- 故障定位:设备出问题了,日志是第一手线索。我遇到过好几次,客户说网络断了,我登录交换机一看日志,发现是光模块收发光异常,直接换模块就解决了。
- 安全审计:谁登录了设备?什么时候登录的?执行了什么操作?日志里全有记录。有一次我发现凌晨3点有人用admin账号登录,一查果然是内部人员违规操作。
- 性能监控:端口频繁up/down、CPU突然飙高、内存泄漏……这些异常在日志里都会有蛛丝马迹。
我的习惯: 我每天上班第一件事,就是扫一眼核心交换机的日志。不用全看,就看有没有ERROR和WARNING级别的日志。这习惯帮我提前发现了至少5次潜在故障。
3.2 日志级别(0-7):数字越小越严重
交换机日志有8个级别,从0到7。数字越小,表示事件越严重。我刚开始学的时候老是记混,后来自己编了个口诀:「0紧急1警报,2严重3错误,4警告5通知,6信息7调试」。
| 级别 | 名称 | 含义 | 实际例子 |
|---|---|---|---|
| 0 | Emergency(紧急) | 系统不可用 | 设备过热关机、电源故障 |
| 1 | Alert(警报) | 需要立即处理 | 关键接口全部断开 |
| 2 | Critical(严重) | 严重错误 | 内存耗尽、CPU死锁 |
| 3 | Error(错误) | 一般错误 | 端口协商失败、CRC校验错误 |
| 4 | Warning(警告) | 可能有问题 | 端口down、STP拓扑变更 |
| 5 | Notification(通知) | 正常但重要 | 接口up、用户登录 |
| 6 | Informational(信息) | 一般信息 | 配置保存、系统启动 |
| 7 | Debugging(调试) | 调试信息 | 协议报文交互细节 |
避坑指南: 我曾经在现网设备上不小心开启了debug日志(级别7),结果日志量瞬间暴涨,直接把日志缓冲区撑爆了,导致设备CPU飙升到99%。从那以后,我明确规定:生产环境严禁开启debug级别日志,除非有特殊授权。
1.3 日志格式解析:一条日志里藏着什么?
一条标准的交换机日志,通常长这样:
Mar 1 14:23:45 192.168.1.1 SW-CORE-01: %LINK-3-UPDOWN: Interface GigabitEthernet0/1, changed state to down
我们来拆解一下:
- 时间戳:
Mar 1 14:23:45—— 事件发生的时间。注意,这个时间取决于交换机是否配置了NTP。我遇到过很多次,交换机时间不准,导致排错时对不上时间线,非常坑。 - 源IP:
192.168.1.1—— 发送日志的设备IP。在集中式日志服务器上,这个字段特别有用。 - 主机名:
SW-CORE-01—— 设备名称。我建议给每台交换机起个有意义的名字,比如SW-Floor-03,别用默认的Switch。 - 设施码和严重级别:
%LINK-3-UPDOWN—— 这里LINK是设施码(表示链路相关),3是严重级别(Error),UPDOWN是助记符。 - 描述信息:
Interface GigabitEthernet0/1, changed state to down—— 具体发生了什么。
重点: 排错时,我最先看的是「严重级别」和「描述信息」。级别3以上的日志,基本都要认真对待。如果看到连续的级别2或3日志,那大概率是硬件故障了。
1.4 日志存储位置:日志到底存在哪?
交换机的日志存储位置,主要有三个:
- 内存缓冲区(Log Buffer):这是默认的存储位置。日志存在内存里,重启就丢了。优点是速度快,缺点是容量有限。我一般用
show logging命令查看。 - Flash存储:部分高端交换机支持把日志写到Flash里,重启后还在。但要注意,频繁写Flash会缩短Flash寿命,不建议把debug日志写进去。
- 远程日志服务器(Syslog Server):这是最推荐的方式。把日志实时发送到专门的日志服务器上,集中管理。我习惯用Linux自带的rsyslog或者商业的SolarWinds。
配置远程日志服务器也很简单,一条命令搞定:
SW-CORE-01(config)# logging 192.168.100.100
SW-CORE-01(config)# logging trap warnings
SW-CORE-01(config)# logging source-interface Vlan1
这里我解释一下:logging trap warnings表示只发送级别4(Warning)及以上的日志到服务器,避免信息太多。而logging source-interface指定用哪个接口的IP作为源IP,方便在服务器上区分不同设备。
我的建议: 如果你管理的交换机超过10台,一定要上集中式日志服务器。否则,一台一台登录看日志,效率太低了。我曾经帮一个客户搭建了ELK(Elasticsearch + Logstash + Kibana)日志平台,把200多台交换机的日志全部集中起来,搜索和排错效率提升了不止一个量级。
嗯,这一章的内容就这些。日志基础看似简单,但很多人就是栽在这些细节上。下一章,我们会聊聊如何配置日志,包括怎么控制日志输出、怎么过滤不重要的日志。到时候我会分享一些我在项目中踩过的坑,保证让你少走弯路。