AWS EC2监控

本文详细介绍了在AWS EC2环境中,如何利用CloudWatch、Docker Swarm和自定义Python脚本来实现微服务监控。内容涵盖设置Docker Swarm监控工具swarmprom,配置Grafana发送邮件告警,以及通过Python脚本监控EC2实例磁盘使用情况,确保系统稳定运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、项目背景

1、项目背景

       由于项目采用微服架构,从云服务定制化程度来看,利用AWS提供的基础性架构EC2比较合适。AWS自带了CloudWatch具有监听EC2功能,但是出现宕机或者达到预警阀值,需要提供发邮件或短信报警功能,需要购买CloudWatch收费项目。项目采用Docker Swarm架构,曾经自己搭建过通过Haproxy+Keepalived方式,通过反向代理来实现负载均衡功能。实际测试,发现在AWS VPC环境下,跟利用AWS ELB负载均衡器,网络吞吐量相比,AWS ELB性能更优。所以用AWS ELB作为微服的负载均衡器。

      服务虽然部署了,对服务的监控也很重要,对Docker Swarm管理,可以利用portainer管理工具。具体怎么安装使用参照其官网安装说明:https://portainer.io/install.html

     对Docker Swarm服务监控,可以采用swarmprom。swarmprom利用Grafana开源版本制作的Docker镜像,能够实现Docker Swarm集群机器大部分功能。如节点CPU,内存,IOPS,容器内存占用使用情况等。

     但是,swarmprom并没有提供针对单个节点,挂载的磁盘使用空间情况的监控。所以针对这种情况,自己写了一个Python脚本程序来监控每个节点,挂载的磁盘使用空间情况,挂载的磁盘超过设定的阀值,就会发送告警邮件通知。

二、Docker Swarm集群节点服务监控

1、安装swarmprom

$ git clone https://github.com/stefanprodan/swarmprom.git

2、配置通过Email发送告警信息

$ vi docker-compose.yml

在第60行左右,配置SMTP邮件信息,具体修改grafana服务参照如下:

   grafana:
    image: stefanprodan/swarmprom-grafana:5.0.1
    networks:
      - net
    environment:
      - GF_SECURITY_ADMIN_USER=${ADMIN_USER:-admin}
      - GF_SECURITY_ADMIN_PASSWORD=${ADMIN_PASSWORD:-admin}
      - GF_USERS_ALLOW_SIGN_UP=false
      #- GF_SERVER_ROOT_URL=${GF_SERVER_ROOT_URL:-localhost}
      - GF_SMTP_ENABLED=${GF_SMTP_ENABLED:-false}
      - GF_SMTP_FROM_ADDRESS=${GF_SMTP_FROM_ADDRESS:-grafana@test.com}
      - GF_SMTP_FROM_NAME=${GF_SMTP_FROM_NAME:-Grafana}
      - GF_SMTP_HOST=${GF_SMTP_HOST:-smtp:25}
      - GF_SMTP_USER=${GF_SMTP_USER}
      - GF_SMTP_PASSWORD=${GF_SMTP_PASSWORD}
    volumes:
      - grafana:/var/lib/grafana
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
  &nb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值