2.5 日志管理的好处
日志中包含设备运行状态、安全事件、用户行为等信息,管理员通过认真分析日志数据,可以了解目前企业所面临的网络威胁、业务健康度、设备性能与工作效率等情况。做好日志管理可以大大提高企业安全运营与精益管理的水平,如图2-2所示。
图2-2 精益管理
1.简单资源管理
在早期设备量较少时,可以通过ping命令进行设备探活检测。ping命令采用ICMP协议,通过返回的信息可以知道目前某网段设备存活数量,前提是被检测的主机或防火墙支持ping命令。
ping命令执行效果如图2-3所示。
图2-3 ping命令执行效果
端口探活可以使用Telnet命令。批量探活可以使用脚本或专业扫描工具。当发现本应在线的设备不在线时,应及时发出通知或告警。
2.防火墙策略优化
防火墙策略配置以最小化为原则,即除非允许,否则全部禁止。在日常工作中经常需要根据业务需求变更网络策略,有时管理员并未考虑开放策略的风险,导致规则冗余或开放风险敞口过大,而管理员自己却不知道。通过防火墙会话日志可以清晰地看到日志的源地址、目的地址、端口等信息。只要对一段时间内防火墙放过的端口和IP地址进行分析,就可以知道哪些端口和IP地址不应该被放过,并反向找到策略进行修改。
3.回溯取证
日志目前可以作为电子证据使用。当企业内部系统被入侵或信息泄露时,可以通过对日志的分析找到问题源头,除网络设备、堡垒机、主机和应用系统日志外,还可以结合门禁、闸机等安保系统日志进行关联分析,以发现用户异常行为。
4.微服务调用链跟踪
如今应用的用户量、交易量呈爆发式增长,导致后台服务经常不堪重负。经过多年迭代,服务架构已从单体架构发展成分布式微服务架构。其发展历程如图2-4所示。
图2-4 服务架构发展历程
微服务的优点非常多,但也有缺点,即系统太过复杂,给后台开发和运维带来了巨大的挑战。主要问题如下:
(1)故障定位难:一次请求往往涉及多个服务,这些服务很可能是由不同的团队负责的。一旦出现问题,只显示异常,而不显示异常出现在哪个服务上,需要进入每个服务去查找问题,导致处理效率非常低。
(2)链路梳理难:开发人员新加入团队,接手一个微服务组件,完全不知道自己负责的内容属于哪个环节,也不清楚上下游依赖哪些服务关系,需要将之前的开发文档完整地看一遍,逐行进行代码分析。文档缺失对交接人来说就是一个巨大的灾难。
(3)性能分析难:一个应用依赖于后台的多个服务,如果中间某个接口耗时异常,开发人员就要逐个分析各依赖接口的耗时情况。
业内在解决上述问题时通常采用分布式链路跟踪系统(Distributed Tracing System)。2010年,Google发表了关于Dapper的论文,Dapper是生产环境下的分布式链路跟踪系统。之后,各大互联网公司纷纷参考 Dapper 的思想推出分布式链路跟踪系统。目前较流行的分布式链路跟踪系统有Zipkin、Pinpoint、SkyWalking等。与此同时,需要对现有业务系统进行改造,特别是日志系统。改造后的调用链跟踪效果如图2-5所示。
图2-5 调用链跟踪效果
有了调用链跟踪数据,自动生成业务图谱就水到渠成了,如图2-6所示。
图2-6 业务图谱
5.统一日志输出规范
目前很多企业的关键业务系统是由多个厂商提供的,有些厂商并未采用标准日志打印格式,导致通过日志排除故障或打印日志效率低下。统一日志输出规范有如下好处:
(1)磁盘利用率更高。
(2)可以解决业务链跟踪问题,让交易链路清晰可见。
(3)可以快速关联跨系统交易,辅助进行快速故障定位。
(4)人员流动过程中的交接成本更低。