AWS 孤立报警报告生成
发布: (2025年12月28日 GMT+8 22:44)
3 分钟阅读
原文: Dev.to
Source: Dev.to
流水线配置
选项
- 构建丢弃器:保留最近 5 次构建及其产物。
- 时间戳:在构建日志中添加时间戳。
环境变量
- DEFAULT_ENV – 默认环境名称。
- DEFAULT_BRANCH – 默认 Git 分支名称。
- GIT_URL – Git 仓库 URL。
- GIT_PATH – Git 仓库路径。
- REGION_NAME – AWS 区域名称。
- REPOSITORY_NUMBER – AWS 账户仓库编号。
- PROJECT_NAME – 项目名称。
- SNS_TOPIC_NAME – 用于告警的 SNS 主题。
- S3_BUCKET_NAME – 用于存放配置的 S3 桶。
- S3_BUCKET_PATH – S3 中配置文件的路径。
触发器
流水线通过 cron 表达式在 每周一上午 10:30 运行。
流水线阶段
- 设置构建 – 配置构建详情,包括显示名称和描述。
- 清理工作区 – 清理 Jenkins 工作区。
- 拉取仓库 – 使用指定分支检出 Git 仓库。
- 从 S3 下载产物 – 从配置的 S3 桶和路径获取产物。
- 执行 Python 脚本 –
- 设置 Python 虚拟环境。
- 安装依赖。
- 运行主脚本
main.py。
- 构建后(失败) – 如果构建失败,发送 SNS 通知。
Python 脚本 (main.py)
该脚本生成 AWS 资源利用率报告。它使用 boto3 库与 AWS 服务交互,收集 EC2 实例和 RDS 数据库的指标,并使用收集的数据创建 Excel 报告。
# Example snippet from main.py
import boto3
import xlsxwriter
import yaml
# Initialize AWS clients
ec2 = boto3.client('ec2', region_name='us-east-1')
rds = boto3.client('rds', region_name='us-east-1')
# ... rest of the script that builds the report ...
依赖项
boto3XlsxWriterPyYAML
报告结构
生成的 Excel 报告包含以下服务的告警:
- EC2
- RDS
- 负载均衡器
- 目标组
- ECS 集群
- ECS 服务
- Lambda
- SQS
阈值用于突出显示的数值在流水线中根据各服务的特定限制进行配置。
使用方法
- 安装所需的 Jenkins 插件并配置 Jenkins 实例。
- 创建一个新的流水线任务。
- 将提供的流水线脚本粘贴到任务配置中。
- 设置必要的参数和环境变量。
- 保存配置并手动触发流水线,或让计划的 cron 自动运行。
生成的 Excel 报告将保存在 Jenkins 工作区中。欢迎根据您的具体 AWS 环境自定义流水线和 Python 脚本。
GitHub 链接
https://github.com/prashantgupta123/devops-automation/tree/main/aws-cw-orphan-alarms