使用云监控实现本地日志监控

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 本地日志监控是什么?本地日志监控是指使用云监控的Agent在本地对日志进行格式化处理,然后将处理后的格式化数据上报到云监控的指标仓库。而不用上报原始日志。在本地处理日志(而非上报原日志)有几个重要的理由:1,上报原始日志需要消耗大量的云端存储和网络IO,甚至为了查询还需要创建索引,费用不低;2,部分场景下的原始日志涉及到商业数据,不便上报,如订单信息,客户信息等。本地日志被处理成指标数据上报到指标

本地日志监控是什么?

本地日志监控是指使用云监控的Agent在本地对日志进行格式化处理,然后将处理后的格式化数据上报到云监控的指标仓库。而不用上报原始日志。

在本地处理日志(而非上报原日志)有几个重要的理由:

1,上报原始日志需要消耗大量的云端存储和网络IO,甚至为了查询还需要创建索引,费用不低;

2,部分场景下的原始日志涉及到商业数据,不便上报,如订单信息,客户信息等。

本地日志被处理成指标数据上报到指标仓库,然后以符合Prometheus规范的方式将这些数据输出到云监控自建的Grafana,Prometheus报警等。甚至可以将这些数据对接到线下Grafana。

本地日志监控的主要过程是通过云监控的控制台设置日志解析的配置并下发到日志所在的机器,云监控Agent会根据这些配置对原始日志进行解析,之后会将解析所得的格式化的数据上报到云监控的指标仓库。

流程如下图(图1):

本地日志监控实现过程

本地日志监控实现具体流程如下:

1,在输出日志的机器上安装云监控Agent;

2,将该机器加入到应用分组中(之所以需要添加到应用分组中,是因为输出日志的一般不是单台机器,而是服务某个业务的多台机器,它们往往是动态创建和释放的。加入分组有利于实现自动化管理);

3,在云监控的控制台进行日志解析的配置;

4,查看及使用数据,如配置Grafana大盘,设置Prometheus报警等。

为了展示实现过程,以我们自己的一个真实的例子来详细说明。

我们有一个web服务,通过http的访问都会被记录在日志文件里,我们需要统计其中两类请求的访问量。

日志文件所在的目录下有多个文件,如下图(图2)所示,

其中,只有pre.cms.console.aliyun.com.XXXX-XX-XX.log文件是我们的目标日志文件。

目标日志文件的内容如下图(图3)所示,

我们的目标是实现统计VIPServer和KeepAliveClient这两类请求各自的访问量趋势。

根据上面的步骤,我们逐个展开来说,

1,在输出日志的机器上安装云监控Agent

安装Agent分两种情况,

(1)单机安装;

(2)应用分组内机器安装。

对于单机安装,参照云监控控制台上的文档行进行安装就行,

但有几点需要注意:

(1)安装Agent的机器需要能访问公网,因为下载Agent安装包和通过Agent上报指标数据都需要通过公网;

(2)安装的Agent版本号需要 大于等于 3.5.5,最好是安装最新版。

Agent安装文档在云监控控制台的主机监控页面可以找到,

https://cloudmonitornext.console.aliyun.com/hostMonitoring/all

如图:

安装完成后,通过 ps -aux | grep argusagent 看到如图所示,意味着Agent安装成功

通过/usr/local/cloudmonitor/bin/argusagent -v 可以查看Agent的版本号。

对于应用分组内的机器,只需要在创建应用分组的时候,打开“初始化安装监控插件”开关即可,具体见步骤2。

2,将该机器加入到应用分组中

创建一个应用分组(如果已经有可用应用分组,则不用创建),在创建的时候需要保持“初始化安装监控插件”开关处于打开状态,那么此后通过动态的方式添加进来的实例,都会自动安装Agent。见图

创建应用分组后会自动跳转到“组内资源”页面,然后点击“添加产品”,会弹出添加实例的页面。在该页面的产品选择框,选中“云服务器ECS”,然后搜索我们步骤1中安装了云监控Agent的机器,选中该机器,点击“确定”即可(如果是动态匹配规则添加,流程都类似)。

见图

3,添加日志解析的配置

在设置日志解析之前需要先创建指标仓库(如果已经创建则省去这步),用于储存上报的数据,这里我们使用一个已经创建好的指标库cangfan_test,见图

日志解析的配置入口有两个,分别是分组内的业务监控(见步骤2的图),和企业云监控的“业务监控”,见图,

点击“接入数据”,就会展开配置页面,见图

(1)任务名,根据提示规范填写即可。

(2)应用分组,既就是我们步骤2中创建的应用分组,分组内包含了输出日志和已经安装了云监控Agent的机器。

(3)日志路径,这个需要重点关注,它支持通配符(Linux系统)和根据一定的规则来过滤。例如我们这个例子中,我们的日志目录下有多个日志文件(见图2),其中只有pre.cms.console.aliyun.com.XXXX-XX-XX.log是我们的目标文件(例如需要排除error.log文件),可以使用@FUNC__DateFormat__yyyy-MM-dd@这种方式来过滤日志名称里面包含了日期的文件。

(4)匹配方式,目前支持完整正则模式,分隔符模式,和JSON模式,下面我们会详细介绍。

接下来看就是日志解析重头戏了,日志解析我们目前支持3种方式,分别是完整正则模式,分隔符模式,JSON模式。

我们逐个模式来介绍。

完整正则模式

正则模式就是使用正则表达式来解析日志内容,支持两种方式,手动编写正则和系统自动生成正则。见图

输入示例日志后点击“确定输入”,就可以开始编写正则来匹配日志了,如果嫌麻烦,可以选择“自动生成正则表达式”切换到自动模式。见图

我们使用该方法,解析出三个字段,并根据字段意义输入每个字段的名称(key),见图

其中需要特别说明的是“列值翻译”,列值翻译就是将解析出来的日志字段换成另外一个值(被改变后的值)上报,

例如,我们对上图中的http_code进行列值转换,将http code转换成对应的实体字符串,见图

配置好日志解析后,接下来就是配置需要的监控项(指标)。

日志和监控项的关系是,日志用于产生原数据,而监控项则是对这些原数据进行统计和计算,例如计数,求和等。只有将这些原数据转换成指标,才能实现看图,报警等功能。

点击“监控项设置”下的“添加监控项”按钮,便会展开监控项设置,见图

配置好监控项之后,最后就剩下指标仓库的选择和标签的设置,见图

标签“__cms_app__”用于对指标进行分类,例如这里设置为“locallogtest”,具体使用见后面的数据查询及使用部分。

至此,完整正则模式解析日志就配置完成了。点击“确定”按钮,完成配置。

分隔符模式

分隔符模式与上面的完整正则模式配置类似,不同地方在于日志解析,分隔符模式是使用指定位置的指定字符来进行日志解析,具体操作见图

将匹配模式选为“分隔符模式”,然后点击“增加列”,展开列设置页面,见图

分隔符模式其它的设置同前面的完整正则模式是一样的,这里就不再赘述。

JSON模式

如果日志是按照JSON格式输出的,则可以采用JSON模式来解析,实现起来非常简单,只需要输入示例日志,系统会自动解析出字段,见图

其它的设置同前面的完整正则模式是一样的,这里同样不再赘述。

至此,日志配置部分就全部介绍完了,剩下的就是数据查看和使用了。

数据查看

查看数据,用于校验上报数据是否符合预期,以我们前面配置的解析为例,在本地日志页面找到我们刚才配置的解析任务,然后点击“查看数据”就会打开数据查看页面,见图

数据查看页面,选择指标

选择一个监控项,就会看到数据,见图

配置Grafana大盘

在数据查看页面,点击“管理Grafana大盘”,就会跳转到云监控自建的Grafana页面,然后就可以根据需要创建图表了,见图

设置Prometheus报警

在数据查看页面点击“另存为报警”,就会打开报警设置页面,见图

其中标签和注释(Annotations)用于报警通知中附带内容,例如上面截图配置的规则,

手机短信收到通知如下:

 

报警规则的其它设置项,如报警联系人,通道沉默等根据需要和提示正常设置就行。

对接线下Grafana

为了满足更多场景,云监控指标仓库的数据可以通过公网或VPC对接到到线下Grafana,见图

点击“对接线下”,就会打开操作文档,根据文档操作即可,见图

至此,使用云监控的本地日志监控就介绍完了,使用过程中如果遇到任何问题,请钉钉联系 云监控support群(群号:21705108)

相关实践学习
基于云监控实现的监控系统
通过阿里云云监控功能给非阿里云主机安装监控插件,从而实现对非阿里云主机的各项指标进行监控和管理,在配置报警规则和报警人的情况下,能对特定的场景做出报警反应通知到报警人的手机上。
目录
相关文章
|
消息中间件 存储 运维
Zabbix与ELK整合实现对安全日志数据的实时监控告警
Zabbix与ELK整合实现对安全日志数据的实时监控告警
Zabbix与ELK整合实现对安全日志数据的实时监控告警
|
3月前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的参数文件与告警日志文件
本文介绍了Oracle数据库的参数文件和告警日志文件。参数文件分为初始化参数文件(PFile)和服务器端参数文件(SPFile),在数据库启动时读取并分配资源。告警日志文件记录了数据库的重要活动、错误和警告信息,帮助诊断问题。文中还提供了相关视频讲解和示例代码。
107 1
|
8月前
|
运维 Serverless API
Serverless 应用引擎产品使用合集之sls日志告警调用函数计算,出现抛出的结果异常,是什么原因
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
8月前
|
存储 运维 Serverless
函数计算产品使用问题之日志告警不生效,一般是由于什么造成的
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
Web App开发 存储 监控
日志服务之告警接入与管理
本教程介绍如何使用日志服务接入NGINX模拟数据,并配置告警规则来对NGINX访问错误进行监控。
|
9月前
|
JSON Prometheus Cloud Native
Grafana 系列 -Loki- 基于日志实现告警
Grafana 系列 -Loki- 基于日志实现告警
|
Oracle 关系型数据库
Oracle自带adrci工具清理告警日志
Oracle自带adrci工具清理告警日志
687 0
Oracle自带adrci工具清理告警日志
|
监控 数据库
136 日志监控告警系统案例(代码实现)
136 日志监控告警系统案例(代码实现)
137 0
|
监控
135 日志监控告警系统案例(数据模型设计)
135 日志监控告警系统案例(数据模型设计)
224 0
|
消息中间件 监控 关系型数据库
134 日志监控告警系统案例(功能架构分析)
134 日志监控告警系统案例(功能架构分析)
186 0

热门文章

最新文章