RagibNYC/unfcu-iis-logging-demo
GitHub: RagibNYC/unfcu-iis-logging-demo
在 Azure 上搭建 IIS 银行演示站点,模拟 DNS 配置错误导致的生产数据库故障,展示完整的 IT 事件响应、日志分析与恢复流程。
Stars: 0 | Forks: 0
UNFCU 银行系统 - IIS 日志与事件响应
专业的 IT 事件响应演示,展示了基础设施设置、监控、日志分析和生产恢复。
创建了一个基于 IIS 的事件响应演示,展示了生产数据库故障、使用日志和监控进行系统化诊断、确定根本原因(DNS 配置错误)以及完全恢复的过程——展示了信用合作社 IT 分析师职位所需的基础设施和故障排除技能。
📋 项目目标
- 展示核心 IT 基础设施技能:
- 系统设置与配置
- 实时监控
- 日志分析与模式识别
- 事件诊断与根本原因分析
- 生产恢复流程
- 专业文档
使用的程序:
云平台:Microsoft Azure
Microsft Remote Desktop Protocol + Windows VM
操作系统:Windows Server 2022
Web 服务器:IIS 10.0
监控工具:Performance Monitor
🎯 本项目展示了什么
创建了 2 个程序:
1. UNFCU 银行演示网站
UNFCU 主题的贷款系统界面
演示不同的 HTTP 错误代码 (200, 404, 403, 500, 503)
实时请求日志记录
2. UNFCU 数据库连接测试页面
交互式诊断工具
模拟数据库连接失败
显示错误分析和恢复过程
📂 完整的事件故事
🏗️ 设置(构建的内容)
在 IIS 上构建具有自动 HTTP 日志记录的 UNFCU 演示网站
网站链接模拟不同的错误代码 (200, 404, 403, 500, 503)
每个请求都记录了时间戳、HTTP 方法、资源、响应代码和响应时间
会员可以点击按钮测试不同的 API endpoint
每个请求都由 IIS 自动以 W3C 格式记录
🚨 问题(出了什么问题)
生产贷款系统失去数据库连接
影响:
✗ 会员无法提交新的贷款申请
✗ 贷款发放系统不可用
✗ 信用核查系统不可用
✗ 抵押贷款处理停止
✗ 余额查询失败
✗ 15 笔会员交易延迟
系统状态:503 Service Unavailable
数据库变得无法访问。系统返回 503 Service Unavailable。贷款处理完全停止。
🔍 根本原因分析
出了什么问题:
基础设施域名迁移更改了域名,但应用程序配置文件没有更新。
旧(损坏):
主机名:db-lending-prod-01.unfcu.internal:5432
状态:✗ 不存在(DNS 无法解析)
新(正确):
主机名:db-lending-prod-01.unfcu.local:5432
状态:✓ 存在(DNS 正确解析)
发生原因:
基础设施团队从 .internal 迁移到 .local 域名
更改未通知所有应用程序团队
配置文件保留了过时的主机名
未实施部署验证检查
🔧 诊断过程
第 1 步:检测(约 1 分钟)
触发自动监控警报
检测到数据库连接超时
系统监控立即识别出问题
第 2 步:日志分析(约 2 分钟)
IIS 日志显示有重复的连接尝试并伴随 ECONNREFUSED 错误:
服务器:db-lending-prod-01.unfcu.internal:5432
错误:ECONNREFUSED(连接被拒绝)
状态:所有 3 次重试均失败,并出现相同错误
关键发现:所有 3 次重试均因完全相同的错误而失败。这表明是系统性问题,而不是暂时的网络问题。
第 3 步:性能监控
事件期间:
CPU:60%(基准 5-10%)
内存:5.5GB(总共 7GB)
重试逻辑消耗大量资源
连接池耗尽
Performance Monitor 图表:显示重试期间 CPU 和内存使用率的明显峰值。
第 4 步:根本原因测试
假设测试:
数据库服务器宕机了吗?
✗ 否 - 否则会出现不同的错误
主机名不正确或 DNS 无法解析吗?
✓ 是 - 测试证实了这一点
ping db-lending-prod-01.unfcu.internal → 失败(主机名不存在)
ping db-lending-prod-01.unfcu.local → 成功(正确的主机名)
是否存在网络连接问题?
✗ 否 - 网络正常
防火墙是否阻止了端口 5432?
✗ 否 - 如果防火墙阻止,我们会收到不同的错误
结论:🎯 已确定根本原因
应用程序配置文件引用了不正确的数据库主机名。基础设施迁移后,.internal 域不再存在。正确的主机名是 .local。
💻 使用的技术
技术用途Microsoft Azure云基础设施和虚拟机托管Windows Server 2022操作系统IIS 10.0Web 服务器和 HTTP 请求处理Windows RDP到虚拟机的远程连接Performance MonitorCPU 和内存跟踪IIS 原生日志记录自动 HTTP 请求日志记录(W3C 格式)HTML5/CSS3/JavaScript网站和诊断工具
📊 项目统计
基础设施:
云平台:Microsoft Azure
操作系统:Windows Server 2022
Web 服务器:IIS 10.0
监控工具:Performance Monitor
事件详情:
根本原因:DNS 主机名配置错误(.internal vs .local)
解决时间:5 分钟(检测 → 诊断 → 修复 → 恢复)
配置更改:web.config 中的 1 行
会员影响:15 笔贷款申请延迟
演示范围:
HTTP 状态代码:5 种不同的错误场景(200, 404, 403, 500, 503)
截图:16 张真实事件证据图像
文档:完整的专业文档
代码:7 个展示不同场景的 HTML 页面
数据库故障模拟:包含错误日志和恢复的完整过程
标签:IIS, Windows Server, 库, 应急响应, 故障排查, 数据可视化, 运维