一、简介
1. Amazon CloudWatch简介
1.1 CloudWatch简介
Amazon CloudWatch 实时监控您的 Amazon Web Services (AWS) 资源以及您在 AWS 中运行的应用程序。您可以使用 CloudWatch 收集和跟踪指标,这些指标是您可衡量的相关资源和应用程序的变量。
CloudWatch 主页自动显示有关您使用的每项 AWS 服务的指标。此外,您还可以创建自定义控制面板,以显示有关自定义应用程序的指标,并显示您选择的指标的自定义集合。
您可以创建警报,这些警报监视指标,当超出阈值时,它们会发送通知或者对您所监控的资源自动进行更改。例如,您可以监控您的 Amazon EC2 实例的 CPU 使用率以及磁盘读写情况,然后使用此数据确定您是否应启动其他实例来处理增加的负载。您还可以使用此数据停止未完全利用的实例以节省开支。
您可通过使用 CloudWatch 全面地了解资源使用率、应用程序性能和运行状况。
1.2 CloudWatch访问方式
可以使用下面任何方式访问CloudWatch
Amazon CloudWatch控制台
AWS CLI
CloudWatch API
AWS开发工具包
2.安装CloudWatch代理
2.1下载CloudWatch代理
使用 S3 下载链接下载 CloudWatch 代理软件包
系统版本对应代理agent包参考官网下载地址:使用命令行下载和配置 CloudWatch 代理 - Amazon CloudWatch
Centos:
https://s3.amazonaws.com/amazoncloudwatch-agent/centos/amd64/latest/amazon-cloudwatch-agent.rpm
Windows:
https://s3.amazonaws.com/amazoncloudwatch-agent/windows/amd64/latest/amazon-cloudwatch-agent.msi
安装amazon-cloudwatch-agent
进入之前下载好amazon-cloudwatch-agent.deb安装包所在目录,进行安装,命令如下:
sudo dpkg -i -E ./amazon-cloudwatch-agent.deb
其他类型包安装方式详见官网:使用命令行下载和配置 CloudWatch 代理 - Amazon CloudWatch
2.2 创建IAM角色和用户以用于CloudWatch代理
要访问AWS资源,需要具有相应的权限。创建IAM角色或IAM用户,以授予CloudWatch代理将指标写入CloudWatch所需的权限。如果打算在AmazonEC2实例上使用代理,则必须创建IAM角色。如果打算在本地服务器上使用代理,则必须创建IAM用户
具体步骤如下:
(1)登录AWS管理控制台并通过以下网址打开IAM控制 https://console.aws.amazon.com/iam/
(2) 在左侧的导航窗格中,选择Roles(角色),然后选择Create role(创建角色)
需要权限 CloudWatchAgentServerPolicy的角色
并把角色添加给对应ec2实例上,替换或原角色添加CloudWatchAgentServerPolicy权限,具体操作如下图:
2.3 创建CloudWatch代理配置文件
在任何服务器上运行 CloudWatch 代理之前,您都必须创建 CloudWatch 代理配置文件。
代理配置文件是一个 JSON 文件,它指定了该代理要收集的指标和日志,包括自定义指标。您可以使用向导创建该文件,或者您自行从头开始创建该文件。您还可以最初使用向导创建配置文件,然后手动对其进行修改。
每次更改代理配置文件时,您必须重新启动该代理以使更改生效。
2.3.1.使用向导创建CloudWatch代理配置文件
(1)首先配置AWS Credentials,然后运行如下命令启动CloudWatch代理配置向导
Linux
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
Windows
cd "C:Program FilesAmazonAmazonCloudWatchAgent"
amazon-cloudwatch-agent-config-wizard.exe
(2)按步骤操作,回答对应的问题以自定义服务器的配置文件
配置文件最终按照向导方式创建的位置在: /opt/aws/amazon-cloudwatch-agent/bin/config.json
(3)如果您要在本地存储配置文件,则配置文件config.json将存储在Linux服务器上的/opt/aws/amazon-cloudwatch-agent/bin/中以及Windows服务器上的C:Program FilesAmazonAmazonCloudWatchAgent中。然后,您可以将该文件复制到要安装代理的其他服务器上。
(4)复制配置文件到指定目录并配置启动
sudo cp /opt/amazon-cloudwatch-agent/bin/config.json /opt/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json
启动:
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json -s
ps:如果启动失败报错:
// 错误2022-05-27T02:07:29Z E! [telegraf] Error running agent: Error parsing
// /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml, open
// /usr/share/collectd/types.db: no such file or directory
CloudWatch-agent某些版本需要识别指定文件types.db,直接创建即可:
sudo mkdir -p /usr/share/collectd //创建指定文件夹
sudo touch /usr/share/collectd/types.db //创建指定文件
停止:
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a stop
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status //查看状态
//Systemd方式启动停止....
sudo systemctl status amazon-cloudwatch-agent.service
sudo systemctl start amazon-cloudwatch-agent.service
sudo systemctl stop amazon-cloudwatch-agent.service
sudo systemctl restart amazon-cloudwatch-agent.service
systemd status amazon-cloudwatch-agent.service查看,能看到如下图内容,无需管他,那个是默认位置文件没有读取到,不影响
3.CloudWatch控制台查看对应自定义指标
3.1查看指标
3.2配置报警、SNS订阅对应报警通知等
根据指标创建对应图标展示,并自定义指标报警规则,配置SNS,推送报警消息