如果您需要对日志服务进行监控运维(监测Logtail状态和异常、查看消费组延迟、资源的操作记录等),可以对服务日志进行查询分析。
背景信息
开启服务日志功能时,您可以选择服务日志的类型,包括详细日志、重要日志、任务运行日志,不同日志类型的详细说明和字段说明请参见服务日志类型。
详细日志:详细日志会在您选择的Project创建名称为internal-operation_log的LogStore,在当前Project创建仪表盘。
重要日志:重要日志会在您选择的Project创建名称为internal-diagnostic_log的LogStore,记录消费组延迟和LogTail心跳日志等。
任务运行日志:任务运行日志会在您选择的Project创建名称为internal-diagnostic_log的LogStore,记录数据导入、定时SQL、投递任务的运行日志。
前提条件
已开通服务日志。更多信息,请参见开通服务日志。
监测Logtail心跳
查询Logtail状态日志
在名称为internal-diagnostic_log的Logstore的查询分析页面,执行如下查询语句。
__topic__: logtail_status
Logtail状态日志示例如下,字段说明请参见Logtail状态日志。
{ "os_detail": "Windows Server 2012 R2", "__time__": 1645164875, "__topic__": "logtail_status", "memory": "25", "os": "Windows", "__source__": "log_service", "ip": "203.**.**.110", "cpu": "0.010405", "project": "aliyun-test-project", "version": "1.0.0.22", "uuid": "bf00****688b0", "hostname": "iZ1****Z", "instance_id": "5897****4735", "__pack_meta__": "0|MTYzNjM1Mzk5NDExMTcxOTQzNw==|1|0", "user_defined_id": "", "user": "SYSTEM", "detail_metric": "{\n\t\"config_count\" : \"1\",\n\t\"config_get_last_time\" : \"2022-02-18 14:14:23\",\n\t\"config_prefer_real_ip\" : \"false\"... "status": "ok" }
监测Logtail心跳
统计Logtail心跳正常个数:在名称为internal-diagnostic_log的Logstore查询分析页面,参考下图步骤,统计Logtail心跳正常个数,并配置告警。
查询分析语句:
__topic__: logtail_status | SELECT COUNT(DISTINCT ip) as ip_count
配置告警规则:如果查询分析结果低于Logtail所绑定的机器组中的总机器数(此处假设总机器数为100)则触发告警。告警规则详细参数配置,请参见快速设置日志告警。
排查心跳异常的机器:如果产生告警,代表机器组中部分服务器没有心跳。您可以在日志服务控制台上查看机器组状态,排查思路请参见Logtail机器组问题排查思路(主机场景)。
监控Logtail异常情况
在名称为internal-diagnostic_log的Logstore的查询分析页面,执行__topic__: logtail_alarm
查询语句,即可查询Logtail告警日志,帮您及时发现Logtail异常状况,调整Logtail配置,确保日志不丢失。例如执行如下语句,查询分析15分钟内各种异常类型发生的次数。
__topic__: logtail_alarm | select sum(alarm_count)as errorCount, alarm_type GROUP BY alarm_type
查询消费组延时日志
日志示例
通过消费组消费数据时,您可以通过消费组延时日志了解当前的消费进度,当延时较大时,可以及时调整消费者个数等方式来改进消费速度。消费组延时日志示例如下,字段说明请参见消费组延迟日志。
{
"__time__": 1645166007,
"consumer_group": "consumerGroupX",
"__topic__": "consumergroup_log",
"__pack_meta__": "1|MTYzNjM1Mzk5NDExMTg5NjU2Mg==|3|0",
"__source__": "log_service",
"project": "aliyun-test-project",
"fallbehind": "9518678",
"shard": "1",
"logstore": "nginx-moni"
}
查询消费组延时日志
在名称为internal-diagnostic_log的Logstore的查询分析页面,执行查询语句__topic__: consumergroup_log
,即可查询消费组延时日志。例如执行如下语句,查询消费组名称为consumerGroupX
的消费组的消费延时情况。
__topic__: consumergroup_log and consumer_group: consumerGroupX | SELECT max_by(fallbehind, __time__) as fallbehind
查询Project下所有资源的操作日志
日志示例
Project内所有资源的创建、修改、更新、删除操作日志和数据读写日志,保存在名称为internal-operation_log的Logstore中,包括控制台、消费组、SDK等所有客户端发送的请求日志。 操作日志的示例如下,字段说明请参见详细日志。
{
"NetOutFlow": "1",
"InvokerUid": "1418****2562",
"CallerType": "Sts",
"InFlow": "0",
"SourceIP": "203.**.**.220",
"__pack_meta__": "0|MTYzNjM1Mzk5MzY1NDYwODQzMg==|2|1",
"RoleSessionName": "STS-ETL-WORKER",
"APIVersion": "0.6.0",
"UserAgent": "log-python-sdk-v-0.6.46, sys.version_info(major=3, minor=7, micro=3, releaselevel='final', serial=0), linux-consumergroup-etl-2bd3fdfdd63595d56b1ac24393bf5991",
"InputLines": "0",
"Status": "200",
"__time__": 1645167812,
"__topic__": "operation_log",
"NetInflow": "0",
"RequestId": "620F44C456458F67F72160A0",
"LogStore": "nginx-moni",
"__source__": "log_service",
"Method": "PullData",
"ClientIP": "203.**.**.330",
"Latency": "2191",
"Role": "aliyunlogetlrole",
"NetworkOut": "0",
"Project": "aliyun-test-project",
"AccessKeyId": "STS.NUE****1hm",
"Shard": "0"
}
用户信息分类如下表所示:
类型 | 字段 |
阿里云账号 |
|
RAM用户 |
|
Sts |
|
查询操作失败的请求数量
在internal-operation_log的Logstore查询分析页面,执行如下查询语句,查询操作失败(Status大于200)的请求数量。
Status > 200 | select count(*) as pv