在 ElasticBeanStalk 后面监控 AWS 系统

在 ElasticBeanStalk 后面监控 AWS 系统

因此,我在亚马逊云中建立了一家公司——创建 IAAS 协议/解决方案/标准化实施等,同时还担任个人系统、应用环境和日常正常运行时间的系统管理员。

我遇到的最大问题之一是以集中方式跟踪各种系统/应用程序日志以及记录/监控/存档系统指标(如内存使用情况、CPU 使用情况等)。例如 --> Nagios + Urchin。

我的努力所面临的最大障碍如下:

该公司的应用程序以 Java *.WAR 文件的形式部署,上传到 Elastic BeanStalk 应用程序环境,在 3(最小)和 10(最大)服务器之间进行负载平衡和自动扩展,并且运行该应用程序的 EC2 会临时启动和处理。

也就是说,我无法长时间监控单个 EC2,因为很多 EC2 都被终止,然后在运行中自动配置/自动扩展——所以我不得不不断地“监控我正在监控的内容”,并不断地从我的监控列表中删除/添加 EC2 机器地址。

是否有某种方法可以使用 Zabbix 或 Nagios 之类的监控工具来监控 ElasticBeanStalk,并让其自动添加新的 EC2,并自动从其监控列表中删除已终止/失败的 EC2?

此外,我可以使用 GrayLog 做些什么来将来自多个 EC2 实例的应用程序日志聚合/集中到一个合并的日志/事件集中,从而实现类似的结果?如果没有 GrayLog,是否有类似 GrayLog 的东西可以自动检测从环境中添加/删除的 EC2 成员,并自动从中收集日志?

非常感谢所有建议或指导。

非常感谢,干杯!!

答案1

如果您正在 Elastic beanstalk 上部署 WAR,则可以通过在 WEB-INF 下的 .ebextensions 文件夹中创建配置文件来安装指标。有关使用此配置和实例的更多信息,请参阅以下链接:- http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers.html

要安装磁盘/内存指标,您需要安装“适用于 Linux 的 Amazon CloudWatch 监控脚本” - 请参阅http://aws.amazon.com/code/8720044071969977

files:
  "/opt/aws/cwms/CloudWatchMonitoringScripts.zip":
    mode: "000777"
    owner: ec2-user
    group: ec2-user
    source:  http://ec2-downloads.s3.amazonaws.com/cloudwatch-samples/CloudWatchMonitoringScripts-v1.1.0.zip
container_commands:
  01_unzip_cloud_watch_zip: 
    command: unzip -d /opt/aws/cwms /opt/aws/cwms/CloudWatchMonitoringScripts.zip
    ignoreErrors: true
  02_update_password_file:
    command: sed -i 's/Key=$/Key=<VALUE OF YOUR SECRET KEY>/;s/KeyId=$/KeyId=<VALUE OF YOUR ACCESS ID>/' /opt/aws/cwms/awscreds.conf
  03_update_crontab:    
    command: echo "*/1 * * * * /opt/aws/cwms/mon-put-instance-data.pl --mem-util --disk-path=/ --disk-space-util --from-cron" | crontab - -u ec2-user

基本上,此脚本的作用是将基于 Linux 的 CloudWatchMonitoringScripts.zip 下载到文件夹(例如 /opt/aws/cwms)(可以是任何地方)。然后,命令解压缩文件,更新访问/密钥(使用“sed”命令),最后创建 crontab 选项卡。

请小心 crontab 选项卡部分,因为它可能会擦除您现有的 crontab 条目。

更新(2016 年 2 月)

这是一个更新的脚本,截至 2016 年 2 月,它对我来说运行得很好(参见http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-cw.html)。

sources: 
  /opt/cloudwatch: http://ec2-downloads.s3.amazonaws.com/cloudwatch-samples/CloudWatchMonitoringScripts-v1.1.0.zip

commands:
  00-installpackages:
    command: yum install -y perl-Switch perl-Sys-Syslog perl-LWP-Protocol-https

container_commands:
  01-setupcron:
    command: |
      echo '* * * * * root perl /opt/cloudwatch/aws-scripts-mon/mon-put-instance-data.pl `{"Fn::GetOptionSetting" : { "OptionName" : "CloudWatchMetrics", "DefaultValue" : "--mem-used --memory-units=megabytes --mem-util --disk-space-util --disk-space-used --disk-space-avail --disk-path=/" }}` >> /var/log/cwpump.log 2>&1' > /etc/cron.d/cwpump
  02-changeperm:
    command: chmod 644 /etc/cron.d/cwpump
  03-changeperm:
    command: chmod u+x /opt/cloudwatch/aws-scripts-mon/mon-put-instance-data.pl

option_settings:
  "aws:autoscaling:launchconfiguration" :
    IamInstanceProfile : "MonitorRole"
  "aws:elasticbeanstalk:customoption" :
    CloudWatchMetrics : "--mem-used --memory-units=megabytes --mem-util --disk-space-util --disk-space-used --disk-space-avail --disk-path=/"

注意:您必须有一个 IAM 角色MonitorRule。其角色策略应如下(另请参阅http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-cw.html):-

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "cloudwatch:PutMetricData",
        "ec2:DescribeTags"
      ],
      "Effect": "Allow",
      "Resource": [
        "*"
      ]
    }
  ]
}

答案2

对于 Elastic beanstack 的磁盘使用情况,您可以启用 RootFileSysmtemUtil 云监控实例指标。此功能位于 Elastic beanstalk 的 Health 配置部分下。在“Health”配置下有一个“Health Reporting”部分。请选择 RootFileSysmtemUtil 选项并保存配置。

现在,如果您转到 CloudWatch 的 ElasticBeanstack 指标,您就可以看到新的指标。

答案3

我们正在使用 EC2、S3 等,但还没有使用 ElasticBeanStalk。我可以给你一些建议和想法......

云监测:我们使用 Amazon AWS 的 CloudWatch,它提供了有关我们的 EC2 实例的相当详细的信息。监控设置非常简单,并且是 GUI 内容。无需脚本或任何其他内容。Cloudwatch 入门指南将提供大量有关 CLI 的信息,但 developerGuide 提供了我们需要的确切信息: http://docs.amazonwebservices.com/AmazonCloudWatch/latest/DeveloperGuide/AlarmThatSendsEmail.html http://docs.amazonwebservices.com/AmazonCloudWatch/latest/DeveloperGuide/choosing_your_cloudwatch_interface.html

我在 Amazon ElasticBeanStack 论坛上找到了此链接:-http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/using-features.healthstatus.html

相关内容