当前位置: 首页 > news >正文

手机建站程序昆山设计公司

手机建站程序,昆山设计公司,百度广告联盟电话,一站式网站建设平台深入解析Python多服务器监控告警系统#xff1a;从原理到生产部署 整体架构图 核心设计思想 无代理监控#xff1a;通过SSH直接获取数据#xff0c;无需在目标服务器安装代理故障隔离#xff1a;单台服务器故障不影响整体监控多级检测#xff1a;网络层→资源层→服务层层…深入解析Python多服务器监控告警系统从原理到生产部署 整体架构图 核心设计思想 无代理监控通过SSH直接获取数据无需在目标服务器安装代理故障隔离单台服务器故障不影响整体监控多级检测网络层→资源层→服务层层层递进幂等设计支持定时重复执行避免状态累积 代码深度解析 1. 配置模块 - 灵活的参数管理 # 服务器配置列表 SERVERS [{host: 192.168.0.224, ssh_port: 22, ssh_user: root, ssh_key: /root/.ssh/server_monitor_key},# 更多服务器... ]# 监控阈值设置 MEMORY_THRESHOLD 90 # 内存阈值% CPU_THRESHOLD 85 # CPU阈值% DISK_THRESHOLD 95 # 磁盘阈值%# 检测参数 DINGTALK_WEBHOOK https://oapi.dingtalk.com/robot/send?access_token PING_TIMEOUT 3 # 网络检测超时(秒) CHECK_INTERVAL 600 # 检查间隔(秒)支持多服务器配置可扩展性强关键参数集中管理便于维护支持不同服务器使用不同认证方式 2. 网络检测模块 - 基于TCP的连通性检查 def check_network(host):try:socket.setdefaulttimeout(PING_TIMEOUT)s socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.connect((host, 22)) # 检测SSH端口s.close()return Trueexcept Exception:return False使用TCP连接检测替代ICMP ping更贴近实际服务可用性检测SSH服务端口(22)确保监控功能可用设置超时时间防止阻塞 3. 指标采集模块 - SSH命令执行与解析 def get_server_metrics(server):# 创建SSH客户端ssh paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())try:# 多密钥类型支持try:private_key paramiko.RSAKey.from_private_key_file(server[ssh_key])except:try:private_key paramiko.Ed25519Key.from_private_key_file(server[ssh_key])except:private_key paramiko.ECDSAKey.from_private_key_file(server[ssh_key])# 建立SSH连接ssh.connect(hostnameserver[host],portserver[ssh_port],usernameserver[ssh_user],pkeyprivate_key,timeout15,look_for_keysFalse,allow_agentFalse)# 获取主机名stdin, stdout, stderr ssh.exec_command(hostname)hostname stdout.read().decode().strip() or server[host]# CPU监控命令stdin, stdout, stderr ssh.exec_command(top -bn1 | grep Cpu(s) | awk -F[ ,] {print $8} | tr -d % | awk {print 100 - $1})cpu_usage float(stdout.read().decode().strip())# 更多指标采集...finally:ssh.close()return hostname, alerts多密钥算法支持自动尝试RSA/Ed25519/ECDSA等算法安全连接设置禁用SSH agent和密钥搜索主机名获取优先使用服务器真实主机名资源释放finally块确保SSH连接关闭 4. 告警模块 - 钉钉机器人集成 def send_dingtalk_message(message):发送Markdown格式消息到钉钉机器人headers {Content-Type: application/json}# 创建Markdown格式消息markdown_content ### 服务器监控告警\n message.replace(\n, \n\n)data {msgtype: markdown,markdown: {title: 服务器监控告警,text: markdown_content}}try:response requests.post(DINGTALK_WEBHOOK,datajson.dumps(data),headersheaders,timeout10)if response.status_code 200:print(钉钉消息发送成功)else:print(f钉钉消息发送失败: {response.text})except Exception as e:print(f发送钉钉消息时出错: {str(e)})添加时间戳便于问题追踪包含直接访问监控面板的链接使用emoji增强可读性支持Markdown格式加粗、换行等 监控指标采集技术详解 1. CPU使用率采集 top -bn1 | grep Cpu(s) | awk -F[ ,] {print $8} | tr -d % | awk {print 100 - $1}命令解析 top -bn1非交互模式运行top命令grep Cpu(s)过滤CPU行awk处理提取空闲CPU百分比100 - 空闲值计算实际使用率 2. 内存使用率采集 free | awk NR2{printf %.2f, $3*100/$2 }计算原理 总内存 $2 已用内存 $3 使用率 (已用内存 / 总内存) * 1003. 磁盘使用率采集 df -h | awk $NF/{printf %d, $5}关键参数 $NF/只监控根分区$5使用率列已去除%符号可根据不同服务器挂载的分区自行调整 4. 进程监控 processes [kubelet, dockerd, kube-proxy] for process in processes:stdin, stdout, stderr ssh.exec_command(fpgrep -x {process})if not stdout.read().decode().strip():missing_processes.append(process)进程检测逻辑 使用pgrep -x精确匹配进程名检查返回结果是否为空支持扩展添加关键进程 生产环境部署指南 系统架构建议 部署步骤 环境准备 # 创建专用用户 sudo useradd -m -s /bin/bash monitor sudo passwd monitor# 安装依赖 sudo apt-get update sudo apt-get install python3-pip sudo -u monitor pip install paramiko requestsSSH密钥配置 # 生成监控专用密钥 sudo -u monitor ssh-keygen -t ed25519 -f /home/monitor/.ssh/server_monitor_key# 分发公钥到目标服务器 for server in ${SERVERS[]}; dosudo -u monitor ssh-copy-id -i /home/monitor/.ssh/server_monitor_key.pub ${server} done配置文件调整 # 修改服务器配置 SERVERS [{host: 10.0.1.101, ssh_port: 22, ssh_user: monitor, # 使用专用账户ssh_key: /home/monitor/.ssh/server_monitor_key # 正确路径},# 更多服务器... ]系统服务化 bash # 创建systemd服务文件 sudo tee /etc/systemd/system/server-monitor.service EOF [Unit] DescriptionServer Monitoring Service Afternetwork.target[Service] Usermonitor ExecStart/usr/bin/python3 /opt/monitor/new_server_monitor.py Restartalways RestartSec30[Install] WantedBymulti-user.target EOF# 启动服务 sudo systemctl daemon-reload sudo systemctl enable server-monitor sudo systemctl start server-monitor日志管理方案 # 查看实时日志 journalctl -u server-monitor -f# 日志轮转配置 sudo tee /etc/logrotate.d/server-monitor EOF /var/log/server-monitor.log {dailymissingokrotate 30compressdelaycompressnotifemptycreate 640 monitor admsharedscriptspostrotatesystemctl restart server-monitor /dev/nullendscript } EOF
http://www.pierceye.com/news/140409/

相关文章:

  • 网站泛解析中国新闻社是国企还是私企
  • dw做静态网站手机app制作视频教程
  • 惠州做网站公司网页游戏排行榜前十名歌
  • 会ps的如何做网站高等教材建筑电气久久建筑网
  • 甘肃住房城乡建设厅网站wordpress风格化页面
  • 起名网站建设免费找素材软件
  • 网站基本信息设置链接搜索
  • 广州海珠网站开发营销策划
  • 医院网站制作公司专门做spa的网站
  • 企业网页制作与网站设计网站必须天天更新吗
  • 乌苏市城乡建设局网站外贸网网站建设
  • html5网站开发实例书籍凡科建站代理
  • 与建设部网站网站注册登录页面设计
  • 企业网站推广计划免费最新如何建设网站教程视频
  • 17一起做网站普宁站好看个人网页模板
  • 民治营销网站专业网站建设价格最优
  • 免费的html网站做柜子喜欢上哪些网站看
  • 网站没备案怎么做加速现代装修风格三室两厅效果图
  • 互助平台网站建设网上商城怎么购物
  • 百度知道山东网站建设建设网站成本预算
  • 人人做免费网站网站建站是 什么
  • 以背景做网站视频为单位网站建设实施方案
  • 简洁大气企业网站模板西安个人做网站
  • 做一个网站需要到哪里做辽宁同鑫建设网站
  • 开发网站监控推荐扬中市建设局网站
  • 手机网站根目录简述一个网站设计的主要步骤
  • 网站改版seo建议网页设计师的能力
  • 网站上线前应该备案吗温州网站建设风格
  • 网站建设书籍免费聊城市东昌府区建设路小学网站
  • 网站标题优化怎么做找人一起做素材网站