[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

使用 CloudWatch Logs 监控特定字符串!

*面店西村(大阪市鹤见区)

你好!
我是Beyond大阪事务所的拉面大王Hide。
这是我的第 6 篇文章。

上次,我写了有关使用 Chatbot 将 Cloudwatch 警报发送到 Slack 的文章。
我写了一篇关于使用名为 Chatbot 的有用工具进行通知的有趣文章,所以如果您有兴趣,请看一下!

使用 AWS 聊天机器人将 CloudWatch 警报通知给 Slack!

CloudWatch Logs 中的字符串监控是什么?

CloudWatch Logs 是 CloudWatch 的一部分,它监控 AWS 资源,并允许您轻松从 Amazon EC2 收集应用程序和访问日志并将其保存在云上。

由于它可以保存在云端,因此您可以在需要检查特定日志时轻松搜索它们。
另一个吸引人的功能是收集的日志可以通过一个服务集中管理,因此管理不需要太多精力。

接下来,字符串监控涉及监控应用程序和实时收集的访问日志,以提高业务效率,如果检测到某种输出格式或特定字符串,则通信是指通知工具的监控方式。即使在极少数情况下出现问题,也可以及早发现,从而使您能够快速解决问题。

使用 CloudWatch Logs 实施日志监控非常简单,所以让我们一起逐步完成这些步骤!

配置图

在 EC2 中安装用于 CloudWatch Logs 的代理,该代理会将 EC2 中存在的日志发送到控制台。

接下来,将根据包括控制台中设置的特定字符串的条件发送警报。看配置我觉得并没有那么难,所以我们尽力去设置一下吧。

施工步骤

① 创建IAM角色

①-①:进入IAM > 角色,点击【创建角色】

 

①-②:选择以下内容,点击【下一步】

● 可信实体类型:AWS 服务
● 使用案例:EC2

①-③:选择【CloudWatchFullAccess】,点击【下一步】

①-④:填写角色名称和描述,点击【创建角色】

 

①-⑤:EC2 > 选择创建的实例 > 操作 > 安全 > 单击更改 IAM 角色

①-⑥:选择您之前创建的IAM角色,点击【更新IAM角色】

*如果创建的实例的安全选项卡显示以下状态,则表示申请已完成。

② CloudWatch Logs 代理设置

②-①:登录服务器

②-②:安装 CloudWatch Logs 代理

*对于 Amazon Linux,您可以使用以下命令进行安装。

yum 安装 amazon-cloudwatch-agent

*对于 Amazon Linux 以外的操作系统,安装方法有所不同。
对于CentOS,官方文档描述

1.下载CloudWatch代理

*下载链接因操作系统而异,请参阅此处。

wget https://s3.amazonaws.com/amazoncloudwatch-agent/centos/amd64/latest/amazon-cloudwatch-agent.rpm

2.安装CloudWatch代理

rpm -U ./amazon-cloudwatch-agent.rpm

*此外,以下代理被弃用,因此请使用上述步骤安装它们。

百胜安装 awslogs

②-③:启动设置向导

/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard

②-④:配置代理设置

=================================================== ============== = 欢迎使用 Amazon CloudWatch 代理配置管理器 = = = = CloudWatch 代理允许您从主机收集指标和日志 = = 并将其发送到 CloudWatch 其他 CloudWatch =。 = = ========================================= 可能会收取费用。 ==================== 您计划在哪个操作系统上使用代理? 1. linux 2. windows 3. darwin 默认选择:[1]:*选择 1对于 Linux 1 尝试根据 ec2 元数据获取默认区域...您使用的是 EC2 还是本地主机?) 1. EC2 2. 本地默认选择:[1]: *为 EC2 1 哪个用户选择 1您打算运行代理吗?(StatsD) 1.是 2.否 默认选择:[1]:*需要收集自定义指标,因此选择 1 您想要 StatsD 守护程序的端口监听?(StatsD 守护进程监听哪个端口? ) 默认选择:[8125] *如果没有问题请按 Enter。 1. 10s 2. 30s 3. 60s 默认选择:[1]: *如果没有问题请选择 1。 1 StatsD 守护进程收集指标的聚合间隔是多少? 1. 不聚合 2. 10 秒 3. 30 秒 4. 60 秒 默认选择: [4]:​​*如果您同意,请选择 4 4 是否要警告:必须安装 CollectD,否则代理将无法启动?警告:如果未安装 CollectD,代理将无法启动) 1. 是 2. 否 默认选择:[ 1]: *选择 2,因为我们只使用 cloudwatchlogs 2 您想监控任何主机指标吗?例如 CPU、内存等。 1. 是 2. 否 默认选择: [1]: *因为我们只使用 cloudwatchlogs 选择 2 2 您是否有任何现有的 CloudWatch Log Agent (http://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AgentReference.html) 配置文件可供导入以进行迁移? 是否有适用于现有 CloudWatch Log Agent 的配置文件? (http://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AgentReference.html) 使用? ) 1. yes 2. no 默认选项: [2]: *cloudwatchlogs 没有配置文件,所以选择 2 2 是否要监控任何日志文件? 1 . yes 2. no 默认选项: [1]: *请选择 1,因为需要 cloudwatchlogs 配置文件 1 日志文件路径: *请输入您要指定的日志的路径 /var/log/messages 日志组名称: *输入您要指定的日志组名称 默认选择: [messages] cloudwatchlogs-test 日志流名称:*输入您要指定的日志流名称 默认选项:[{instance_id}] /var/log/ messages 日志组保留天数 1. -1 2. 1 3. 3 4 . 5 5. 7 6. 14 7. 30 8. 60 9. 90 10. 120 11. 150 12. 180 13. 365 14. 400 15. 545 16. 731 17. 1827 18. 2192 19. 2557 20. 2 922 21. 3288 22. 3653 默认选项: [1]: *请输入您要指定的日志保留期限(-1 表示无限制) 1 您要指定要监视的任何其他日志文件 1. 是 2. 否 默认值?选择: [1]: *设置 如果您不想将文件 2 保存的配置文件成功添加到 /opt/aws/amazon-cloudwatch-agent/bin/config.json 当前配置如下: { "agent。 ": { "run_as_user": "root" }, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/var/log/messages", "log_group_name": "cloudwatchlogs-test", " log_stream_name": "/var/log/messages", "retention_in_days": -1 } ] } } }, "metrics": { "metrics_collected": { "statsd": { "metrics_aggregation_interval": 60, "metrics_collection_interval": 10 , "service_address": ":8125" } } } } 请检查配置的上述内容。配置文件也位于 /opt/aws/amazon-cloudwatch-agent/bin/config .json。如果需要,请手动编辑它。是否要将配置存储在 SSM 参数存储中? ) 1. 是 2. 否 默认选择: [1]: *如果您不需要向SSM 注册,请选择2 2 程序立即退出。

*补充材料

● 参考: StatsD
● 参考:CollectD

②-⑤:启动代理

/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c 文件:/opt/aws/amazon-cloudwatch-agent/bin/config.json

②-⑥:查看代理状态

systemctl 状态 amazon-cloudwatch-agent

 

● amazon-cloudwatch-agent.service - Amazon CloudWatch 代理已加载:已加载(/etc/systemd/system/amazon-cloudwatch-agent.service;已启用;供应商预设:已禁用) 活动:自 2022 年 8 月星期五起活动(正在运行) 05 06:33:34 UTC;3 分钟 46 秒前 主要 PID:1352 (amazon-cloudwat) CGroup:/system.slice/amazon-cloudwatch-agent.service mq1352 /opt/aws/amazon-cloudwatch-agent/bin/amazon- cloudwatch-agent -config /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml -envconfig /opt/aws/amazon-cloudwatch-agent/etc/env-config.json -pidfile /opt/ aws... Aug 05 06:33:34 ip-172-31-39-31.ap-northeast-1.compute.internal systemd[1]:已启动 Amazon CloudWatch 代理 8 月 05 日 06:33:34 ip-172 -31-39-31.ap-northeast-1.compute.internal start-amazon-cloudwatch-agent[1352]:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json 不存在或无法阅读。 Aug 05 06:33:34 ip-172-31-39-31.ap-northeast-1.compute.internal start-amazon-cloudwatch-agent[1352]:我! 。

③ 检查控制台是否采集到

③-①:勾选并点击cloudwatch > 日志组中指定的日志组

③-②:确认日志以指定的日志流名称保存,点击

③-③:检查日志是否正确采集

④ 创建指标过滤器

④-① 点击【创建指标过滤器】

④-②:定义过滤模式

*定义模式的方法有很多种,请参考这里

④-③:测试过滤模式,如果没有问题,点击【下一步】

*测试方法
1. 从选择要测试的日志数据中选择[自定义日志]或[日志流名称]。

2.创建与[日志事件消息]中的过滤模式匹配的日志,然后单击[测试模式]

3. 一旦测试结果反映,该过程就完成了。

④-④:填写以下信息。

● 过滤器名称:过滤器本身的名称
● 指标命名空间:CloudWatch 向其发送指标的命名空间的名称
● 指标名称:在指定命名空间下创建的指标的名称
● 指标值:将要发送的指标的名称发布为指标 数值
● 默认值:模式不匹配时发布到指标的值,如果留空则不发布任何值

④-⑤:如果没有问题,点击【创建Metric Filter】

④-⑥:创建完成,如下图

⑤ 设置SNS

⑤-①:点击SNS > 主题中的【创建主题】

⑤-②:设置以下信息,点击【创建主题】

● 类型:标准
● 名称/描述:请随意指定

⑤-③:点击【创建订阅】

⑤-④:填写以下信息,点击【创建订阅】

● 协议:电子邮件
● 端点:您的电子邮件地址

⑤-⑤:您会收到一封确认邮件,点击【确认订阅】

⑤-⑥:出现以下信息时完成

⑥ 创建CloudWatch报警

⑥-①:将包含特定字符串的日志输出到服务器上指定的日志文件中作为测​​试。

由于指定了 *messages,因此使用了 logger 命令,但任何可以输出日志的命令都可以。
*我们正在测试,因为如果某个指标一次都无法被指标过滤器检测到,那么您在创建警报时将无法选择该指标。

记录器“错误”

⑥-②:在CloudWatch > 报警中点击【创建报警】

⑥-③:已创建的命名空间>无量纲指标>选择已创建的指标名称,点击【选择指标】

⑥-④:设置条件,点击【下一步】

*下面的条件是,如果检测到特定字符串一次或多次,则发出警报。

⑥-⑤:指定您创建的主题,点击【下一步】

*由于是字符串监控,因此不需要恢复通知设置。

⑥-⑥:输入创建的报警名称,点击【下一步】

⑥-⑦:如果设置没有问题,点击【创建报警】

⑦ 操作确认

⑦-①:将包含特定字符串的日志输出到服务器上指定的日志文件中作为测​​试。

由于指定了 *messages,因此使用了 looger 命令,但任何可以输出日志的命令都可以。

记录器“错误”

⑦-②:检查报警是否处于【报警状态】

⑦-③:检查您是否收到报警邮件。

*如果警报电子邮件已发送到您的电子邮件地址,则该过程已完成。

概括

你怎么认为?我认为在指标过滤器中设置特定字符串来通知 CloudWatch Logs 收集的日志作为警报并不是那么困难。

在AWS上监控字符串时,您可以轻松使用CloudWatch,因此请尝试使用它进行操作监控!

除了电子邮件之外,通知还可以发送到 Slack、Teams 和 Chatwork。我在之前的博客中写过如何设置,有兴趣的可以看看!

非常感谢!

◇ 我尝试将 CloudWatch 警报通知给 Teams/Chatwork!

◇ 使用 AWS 聊天机器人将 CloudWatch 警报通知到 Slack!

如果您觉得这篇文章有帮助,请点赞!
10
加载中...
10 票,平均:1.00 / 110
20,104
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

写这篇文章的人

关于作者

隐藏@基础设施工程师

这一切都始于一次非常有趣的采访。
大阪系统解决方案部门的一名职业中期员工。我的
工作是构建和运营服务器和云!
我拥有 LPIC1、AWS SAA 和 OCI 架构师助理资格。

其实我很喜欢拉面,
已经调查过大阪100多家店了(。-∀-)我要努力成为Nibi Beyond

我也在Twitter,所以请关注我(´∇`)
点击右上角的Twitter标记! !