设为首页 收藏本站
查看: 834|回复: 0

[经验分享] AWS学习笔记(三)

[复制链接]

尚未签到

发表于 2019-2-22 10:53:15 | 显示全部楼层 |阅读模式
  CloudWatch可以实时监控AWS资源和应用,收集和跟踪指标,可根据定义的指标阈值发送通知或更改资源配置,可基于 AWS 环境中发生的事件执行目标操作。

CloudWatch

CloudWatch指标
  CloudWatch现提供如下类别的指标:


  • Application ELB
  • EBS
  • EC2
  • ELB
  • 事件
  • Lambda
  • 日志
  • NAT Gateway
  • Network ELB
  • RDS
  • S3
  • SNS
  • SQS

CloudWatch警报
  CloudWatch警报可根据定义的规则发送通知或者对所监控的资源自动进行更改,警报可以包含一个或多个指标图表。比如,监控EC2指标,当超过设定的阈值时,可以发送通知、执行AutoScaling 操作、启停EC2等。

CloudWatch事件
  CloudWatch事件提供近乎实时的系统事件流来描述AWS资源的变化。通过设置简单的规则,匹配的事件将路由到一个或多个目标函数或流。
  事件源
CloudWatch支持两种类型的事件源:事件模式和计划
  事件模式支持的服务:


  • API Gateway
  • AWS 控制台
  • Auto Scaling
  • CloudFormation
  • CloudTrail
  • CloudWatch Events
  • CloudWatch Logs
  • CodeBuild
  • CodeDeploy
  • Config
  • Direct Connect
  • DynamoDB
  • EC2
  • ECS
  • SSM
  • EMR
  • ElastiCache
  • Elastic Beanstalk
  • Elastic Load Balancing
  • Elastic MapReduce
  • Glacier
  • IAM
  • Kinesis
  • Lambda
  • Monitoring
  • Redshift
  • RDS
  • STS
  • SNS
  • SQS
  • S3
  • SWF
  • Storage Gateway
  • Support
  • Tags
  计划使用cron或rate表达式在某些时间自行触发自动化操作。
  Cron表达式有六个必填字段,分别为分钟、小时、日期、月、星期、年,之间以空格分隔。


字段

通配符




分钟
0-59
, - * /


小时
0-23
, - * /


日期
1-31
, - * ? / L W



1-12 或 JAN-DEC
, - * /


星期
1-7 或 SUN-SAT
, - * ? L #



1970-2199
, - * /
  例如:

cron(0 12 * * ? *)
cron(15 10 ? * 6L 2002-2005)
  Rate 表达式有两个必需字段:值和单位,值必须为正数,单位可选值minute | minutes | hour | hours | day | days。
例如:

rate(1 hour)
rate(5 minutes)
  事件目标
支持的目标:


  • CodeBuild Project
  • ECS任务
  • Kinesis流
  • Lambda函数
  • SNS主题
  • SQS队列
  • 另一AWS账户中的事件总线

CloudWatch CLI
  list-metrics

$ aws cloudwatch list-metrics --namespace "AWS/EC2"
  get-metric-statistics

$ aws cloudwatch get-metric-statistics --metric-name CPUUtilization --start-time 2014-04-08T23:18:00 --end-time 2014-04-09T23:18:00 --period 3600 --namespace AWS/EC2 --statistics Maximum --dimensions Name=InstanceId,Value=i-abcdef
  put-metric-data
自定义CloudWatch指标。CloudWatch将数据与指定的指标相关联,如果指标不存在,CloudWatch将创建指标。当创建指标时,可能需要十五分钟才能在list-metrics中显示。
  示例:

$ aws cloudwatch put-metric-data --namespace "Usage Metrics" --metric-data file://metric.json
  metric.json

[
{
"MetricName": "New Posts",
"Timestamp": "Wednesday, June 12, 2013 8:28:20 PM",
"Value": 0.50,
"Unit": "Count"
}
]
  自定义监控Instance 80端口访问情况
首先编写一个简单的shell script(port.sh):

#!/bin/sh
instanceid='curl -s http://169.254.169.254/latest/meta-data/instance-id'
count='sudo netstat -np | grep -w 80 | grep ESTABLISHED | wc -l'
aws cloudwatch put-metric-data --metric-name RequestCount --namespace Application --dimensions "InstanceID=$instanceid" --value "$count" --unit None
  说明: curl -s http://169.254.169.254/latest/meta-data/instance-id, 这是通过instance metadata查询instancd id的一种方法。这样脚本比较通用,不用在脚本中指定instance id。
  然后编辑调度任务

$ crontab -e
  输入以下内容:

* * * * * /home/ec2-user/port.sh
  这样即可监控80端口每分钟的访问次数了,在Cloud Watch Console的Custom Metrics中可查看。

CloudWatch日志
  可以使用 CloudWatch日志监控、存储和访问EC2、CloudTrail和其他来源的日志文件,可以从 CloudWatch日志中检索关联的日志数据。

安装CloudWatch Logs Agent
  为监控EC2日志文件,需要AWS账号,在EC2上安装AWS CLI、CloudWatch Logs Agent。CloudWatch Logs Agent自动发送日志数据到CloudWatch Logs。

$ sudo yum update -y
$ curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O
$ sudo python ./awslogs-agent-setup.py --region cn-north-1
  安装过程中需要配置:
账户信息:AWS access key ID、AWS secret access key、Default region name、Default output format
监控的文件信息:Path of log file to upload、Destination Log Group name、Destination Log Stream name、Timestamp format、Initial position
  可以监控多个文件,否则在提示“是否配置另一个文件”时,输入N。
  配置文件保存在~/.aws, /var/awslogs/etc目录下。
  配置成功后,稍候,可以在CloudWatch控制台中查看日志。
  /var/awslogs/etc/awslogs.conf文件保存了监控log的配置。
  启动/停止awslogs service

$ sudo service awslogs start/stop
CloudWatch Logs CLI
  create-log-group
创建日志组,组名在AWS 账户region内必须唯一,每个账户最多能创建500个日志组。

$ aws logs create-log-group --log-group-name my-logs
  在logs agent中配置的log group,如不存在会自动创建。
  create-log-stream
Creates a new log stream in the specified log group. The name of the log stream must be unique within the log group. There is no limit on the number of log streams that can exist in a log group.

$ aws logs create-log-stream --log-group-name my-logs --log-stream-name 20161010
  put-log-events
Uploads a batch of log events to the specified log stream.
  Every put-log-events request must include the sequenceToken obtained from the response of the previous request. An upload in a newly created log stream does not require a sequenceToken . You can also get the sequenceToken using describe-log-streams .

$ aws logs put-log-events --log-group-name my-logs --log-stream-name 20161010 --log-events file://events
  file events:

[
{
"timestamp": 1476084773350,
"message": "Example Event 1"
},
{
"timestamp": 1476084773358,
"message": "Example Event 2"
},
{
"timestamp": 1476084773360,
"message": "Example Event 3"
}
]
  注意:时间必须在14天内,否则不能导入。
  describe-log-streams

$ aws logs describe-log-streams --log-group-name my-logs
  delete-log-group
Deletes the log group with the specified name and permanently deletes all the archived log events associated with it.

$ aws logs delete-log-group --log-group-name my-logs
  delete-log-stream
Deletes a log stream and permanently deletes all the archived log events associated with it.

$ aws logs delete-log-stream --log-group-name my-logs --log-stream-name 20161010
参考文档
  AWS CloudWatch Developer Guide
Amazon CloudWatch Logs
CloudWatch Logs Agent Reference
Monitoring Amazon EC2
Instance Metadata and User Data
Install and Configure CloudWatch Logs on an Existing EC2 Instance




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-675710-1-1.html 上篇帖子: 【AWS系列】镭速RaySync VS FTP (9) 下篇帖子: AWS中批处理任务运行架构
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表