Kubernetes集群状态检查与告警整合的自动化

server/2025/2/28 3:14:08/

将Kubernetes集群状态检查与告警整合的自动化方案,包含脚本实现、定时任务配置及异常通知机制:


1. 创建监控脚本

保存为 /opt/k8s-monitor/cluster-check.sh

#!/bin/bash# 基础配置
LOG_DIR="/var/log/k8s-monitor"
REPORT_FILE="${LOG_DIR}/report-$(date +%Y%m%d).log"
ALERT_FLAG=0  # 异常标记# 创建日志目录
mkdir -p ${LOG_DIR}# 定义告警函数(示例使用邮件,可替换为其他通知方式)
send_alert() {local message=$1echo "[CRITICAL] ${message}" >> ${REPORT_FILE}# 发送邮件示例(需提前配置mailx)echo "Kubernetes集群异常告警: ${message}" | mailx -s "K8S集群异常告警" ops-team@example.com# 可选:调用Webhook(如钉钉/企业微信)# curl -X POST -H "Content-Type: application/json" -d '{"msgtype":"text","text":{"content":"'"${message}"'"}}' https://oapi.dingtalk.com/robot/send?access_token=xxx
}# 检查节点状态
check_nodes() {echo "===== 节点状态检查 =====" >> ${REPORT_FILE}kubectl get nodes --no-headers | awk '{print $1,$2}' | while read -r node status; doif [ "$status" != "Ready" ]; thenALERT_FLAG=1send_alert "节点异常: ${node} 状态为 ${status}"echo "[ERROR] Node ${node} status: ${status}" >> ${REPORT_FILE}elseecho "[OK] Node ${node} status: ${status}" >> ${REPORT_FILE}fidone
}# 检查系统组件
check_system_pods() {echo "===== 系统Pod检查 =====" >> ${REPORT_FILE}kubectl get pods -n kube-system --no-headers | awk '{print $1,$3}' | while read -r pod status; doif [[ ! "$status" =~ ^(Running|Completed)$ ]]; thenALERT_FLAG=1send_alert "系统Pod异常: ${pod} 状态为 ${status}"echo "[ERROR] Pod ${pod} status: ${status}" >> ${REPORT_FILE}elseecho "[OK] Pod ${pod} status: ${status}" >> ${REPORT_FILE}fidone
}# 检查集群事件
check_events() {echo "===== 集群事件检查 =====" >> ${REPORT_FILE}kubectl get events --field-selector type=Warning --sort-by=.metadata.creationTimestamp --no-headers | head -n 20 | while read -r timestamp type reason object message; doif [[ -n "$type" ]]; thenALERT_FLAG=1send_alert "集群事件告警: ${reason} (对象: ${object})"echo "[WARNING] Event: ${timestamp} ${reason} ${object} ${message}" >> ${REPORT_FILE}fidone
}# 执行检查
{check_nodescheck_system_podscheck_events# 生成总结报告if [ $ALERT_FLAG -eq 0 ]; thenecho "===== 检查完成: 所有系统正常 =====" >> ${REPORT_FILE}elseecho "===== 检查完成: 发现异常问题 =====" >> ${REPORT_FILE}fi
} | tee -a ${REPORT_FILE}# 日志清理(保留7天)
find ${LOG_DIR} -name "*.log" -mtime +7 -exec rm -f {} \;

2. 设置执行权限

chmod +x /opt/k8s-monitor/cluster-check.sh

3. 配置定时任务

# 编辑crontab
sudo crontab -e# 添加以下内容(每天8:00执行,异常时立即告警)
0 8 * * * /opt/k8s-monitor/cluster-check.sh >/dev/null 2>&1# 查看定时任务
sudo crontab -l

4. 告警配置说明

邮件告警配置(示例使用mailx)
# 安装mailx
sudo yum install mailx -y# 编辑配置文件
sudo vim /etc/mail.rc# 添加以下内容(以QQ邮箱为例)
set from=your_email@qq.com
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=your_email@qq.com
set smtp-auth-password=your_auth_code  # 需申请SMTP授权码
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb
企业微信/钉钉告警

修改脚本中的send_alert函数,替换为实际的Webhook地址即可。


5. 日志监控增强(可选)

使用logrotate管理日志:

# 创建logrotate配置
sudo tee /etc/logrotate.d/k8s-monitor <<EOF
/var/log/k8s-monitor/*.log {dailyrotate 30missingokcompressdelaycompressnotifemptycreate 0644 root root
}
EOF

检查项说明

检查维度判断标准告警阈值
节点状态状态非Ready发现即告警
系统组件Pod状态非Running/Completed连续2次异常
集群事件Warning级别事件最近10条含Warning

验证测试

# 手动触发脚本
/opt/k8s-monitor/cluster-check.sh# 查看最新日志
tail -f /var/log/k8s-monitor/report-$(date +%Y%m%d).log# 模拟节点故障(测试用)
kubectl cordon <node-name>

该方案可实现以下功能:

  1. 自动巡检:每天定时检查核心指标
  2. 智能告警:发现异常立即触发通知
  3. 日志追溯:保留历史检查记录
  4. 灵活扩展:可添加更多检查项(如存储容量、API健康检查)

http://www.ppmy.cn/server/171198.html

相关文章

品牌全链路电商代运营:行业格局与头部服务商解析

品牌全链路电商代运营&#xff1a;行业格局与头部服务商解析 随着电商行业的快速发展&#xff0c;品牌对线上渠道的依赖日益加深&#xff0c;但自建电商团队的复杂性和高成本促使许多企业选择与专业代运营公司合作。品牌全链路电商代运营应运而生&#xff0c;其覆盖从店铺运营…

【PyTorch][chapter-33][transformer-5] MHA MQA GQA, KV-Cache

主要翻译外网&#xff1a; 解剖Deep Seek 系列&#xff0c;详细见参考部分。 目录&#xff1a; Multi-Head Attention &#xff08;MHA) KV-Cache KV-Cache 公式 Multi-Query Attention&#xff08;MQA) Grouped-Query Attention(GQA) Multi-Head Latent Attention …

支持selenium的chrome driver更新到133.0.6943.126

最近chrome释放新版本&#xff1a;133.0.6943.126 如果运行selenium自动化测试出现以下问题&#xff0c;是需要升级chromedriver才可以解决的。 selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only s…

网络安全入门|HTTP慢速攻击的终极防御:零信任与AI对抗

一、零信任架构在防御中的核心挑战 零信任架构&#xff08;Zero Trust&#xff09;以“永不信任&#xff0c;持续验证”为核心&#xff0c;但在对抗HTTP慢速攻击时面临以下关键问题&#xff1a; 身份动态验证的性能损耗 问题&#xff1a;频繁的身份验证&#xff08;如JWT令牌校…

用PyTorch从零构建 DeepSeek R1:模型架构和分步训练详解

DeepSeek R1 的完整训练流程核心在于&#xff0c;在其基础模型 DeepSeek V3 之上&#xff0c;运用了多种强化学习策略。 本文将从一个可本地运行的基础模型起步&#xff0c;并参照其技术报告&#xff0c;完全从零开始构建 DeepSeek R1&#xff0c;理论结合实践&#xff0c;逐步…

Unity 数据持久化

概述 数据序列化和持久化 序列化&#xff1a;将对象或者数据结构转化成特定的格式&#xff0c;使其可在网络中传输&#xff0c;或者可存储在内存或者文件中。 持久化&#xff1a;将数据存储到可永久保存的存储介质中&#xff08;如磁盘&#xff09;。 序列化和反序列化 序列…

AI数字人开发,引领科技新潮流

引言 随着人工智能技术的迅猛发展&#xff0c;AI 数字人在影视娱乐、客户服务、教育及医疗等多个领域展现出巨大的潜力。本文旨在为开发者提供一份详细的 AI 数字人系统开发指南&#xff0c;涵盖从基础架构到实现细节的各个方面&#xff0c;包括人物建模、动作生成、语音交互、…

【2025信息安全软考重点考点归纳】实时更新

重点页:第14章 恶意代码防范技术原理 页码&#xff1a;271 病毒载体及其对应案例 病毒隐秘载体病毒案例Word文档Melissa照片库尔尼科娃电子邮件“求职信”病毒网页NIMDA病毒 重点页&#xff1a;第6章 认证技术原理与应用 页码&#xff1a;125 Kerberos 认证技术 Kerberos是…