如何在服务器关闭时发送电子邮件通知?

时间:2018-01-19 17:24:23

标签: node.js amazon-web-services amazon-sns amazon-cloudwatch pm2

在我的堆栈中,我使用EC2和NodeJS与PM2。

PM2失败并且服务器出现故障。

我想为这些案例制作电子邮件通知。

到目前为止我得到了什么:

  1. crontab作业每10分钟对服务器执行一次ping操作,如果日志文件已关闭,则写入日志文件。
  2. CloudWatch监控该日志文件。
  3. 缺少一步。
  4. SNS活动和订阅向我发送电子邮件。
  5. 我的计划是安装CloudWatch代理并在其他客户的服务器中配置crontab。将它们分组到同一个CloudWatch / SNS流程中。

    我正在开发第3步:CloudWatch和SNS之间的连接。

    使用CloudWatch的向导,似乎我只能发送统计信息,例如“日志数”,而不是日志本身。

    在步骤1中创建的日志包含有关服务器已关闭的数据,我想将其添加到电子邮件中。

    修改 这不是个人设置。出于某种原因,我的老板说CloudWatch是必须的。

3 个答案:

答案 0 :(得分:0)

尝试使用弹性节拍。它将为您提供实时服务器日志,您可以使用kibana查看,并使用sentinl插件,您可以配置和发送任何系统统计信息的任何类型的电子邮件。

请参阅以下链接:

Elastic Beats

Sentinl

答案 1 :(得分:0)

我会使用与CloudWatch集成的Route 53's Health Check feature。然后,您可以在CloudWatch中设置警报以向您发送电子邮件。我不认为您必须使用Route 53 for DNS才能使用它,但如果您使用Route 53,您也可以使用它来执行故障转移到其他服务器。

或者,如果服务器位于负载均衡器后面,那么您可以从Load Balancer的运行状况检查发布到CloudWatch的Healthy Hosts指标中触发CloudWatch警报。

答案 2 :(得分:0)

您可以通过"心跳" 的形式向CloudWatch发布自定义指标。

  • 在服务器上通过cron运行一个小脚本来检查 进程列表以查看my_service是否正在运行,如果是,则make 对{@ 1}} CloudWatch的调用。
  • 指标可以像推送数字一样简单" 1"到CloudWatch中的自定义指标。

依此类推,看看这个以保持必要的步骤: Use cloudwatch to determine if linux service is running

这些步骤按@BestPractices

列出