【问题标题】:Gathering EBS metric using Lambda使用 Lambda 收集 EBS 指标
【发布时间】:2018-08-02 08:07:23
【问题描述】:

我是 AWS 的新手。我们有一个用例,我们需要定期监控 EBS 卷的磁盘使用情况并将自定义指标发布到 cloudwatch。

要获取 ec2 机器上的磁盘使用量,我们可以运行 df -h 命令。在我的 lambda 中,我得到了一个标签,然后从该标签中我监控了具有该标签的 EC2 实例的 EBS。

我在做研究,发现这篇文章runn shell commands on EC2。但是我如何列出具有特定标签的 EC2 实例然后运行 这个 df -h 命令在他们身上。还有更好的方法来监控磁盘使用情况吗?

编辑:我能够运行 cloudwatch 脚本

./mon-put-instance-data.pl --disk-space-util --disk-path=/ebs1 --disk-path=/ --disk-space-units=Kilobytes

并获取安装在 /ebs1 和 /

上的上述卷的磁盘使用情况

我现在计划使用 python 脚本以编程方式获取所有挂载的 EBS 以替换 --disk-path 的值。

如何通过 Python 在 EC2 中实现?

【问题讨论】:

  • 您使用什么编程语言编写 AWS Lambda 函数?您可以将 AWS 开发工具包用于您选择的任何编程语言,以查询具有特定标签的 EC2 实例。
  • 我正在使用 Java。在每个 EC2 实例上运行 shell 命令是一种好方法吗?
  • 通过 Lambda 执行此操作并不理想。理想情况下,您应该在每台服务器上运行某种代理,始终向 CloudWatch 报告内存和磁盘使用情况。
  • @MarkB 进度更新
  • 为什么需要将python与mon-put-instance-data.pl脚本集成?您要解决 mon-put-instance-data.pl 尚未提供的确切问题?

标签: amazon-web-services amazon-ec2 aws-lambda monitoring


【解决方案1】:

我相信使用a cloud watch agent 是更好的选择。

您也可以定义自己的指标(例如可用磁盘空间)

【讨论】:

  • 但这不是需要在每个实例上都安装代理吗?
  • @ayushrocker92 确实......另一方面,您可以使用已经预安装的代理创建自己的图像。
  • 但是假设我已经有 50 个实例使用相同的标签运行?
  • @ayushrocker92 我建议使用自动化工具,例如 Ansible,它可以一次配置 50 台服务器。我的意思是 - 您仍然可以调用 DescribeInstance 操作(CLI 或 API)并解析标签,但是我相信拥有代理是实现目标的更可靠的方法。
  • 您链接的 CloudWatch 代理用于将日志发布到 CloudWatch Logs,而不是指标。问题是关于发布指标。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-01
相关资源
最近更新 更多