日志服务提供服务日志功能,用于记录操作日志、消费组延迟日志、Logtail告警日志、Logtail采集日志和Logtail状态日志,帮助您实时掌握日志服务的使用状况,提高运维效率。
前提条件
背景信息
- 详细日志:记录Project内所有资源创建、修改、更新、删除等操作日志和数据读写日志。将保存在Logstore名称为internal-operation_log的指定Project中。
- 重要日志:包括Logstore粒度的消费组消费延时日志、Logtail心跳日志。将保存在Logstore名称为internal-diagnostic_log的指定Project中。
监控Logtail心跳
您可以通过Logtail状态日志,检查Logtail的工作状态。
- 查询Logtail状态日志
在internal-diagnostic_log Logstore的查询分析页面,执行
__topic__: logtail_status
。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所绑定的机器组中的总机器数则触发告警。
- 查询语句
__topic__: logtail_status | SELECT COUNT(DISTINCT ip) as ip_count
- 配置告警规则(此处假设总机器数为100)
告警规则详细参数配置请参见快速设置日志告警。
如果产生告警,您可以在日志服务控制台上查看机器组状态,排查心跳异常的机器。更多信息,请参见Logtail机器组无心跳排查思路。
- 查询语句
查看消费组延时
在日志服务中,除了查询分析日志外,还可以通过消费组对日志进行消费。更多信息,请参见通过消费组消费日志数据。
在使用消费组消费时,您可以通过消费组延时日志了解当前的消费进度,当延时较大时,可以及时调整消费者个数等方式来改进消费速度。消费组延时日志示例如下:
{ "__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
监控Logtail异常情况
您可以通过Logtail告警日志,及时发现Logtail异常状况,调整Logtail配置,确保日志不丢失。
在internal-diagnostic_log Logstore查询分析页面,执行
__topic__: logtail_alarm
查询语句,即可查询Logtail告警日志。例如执行如下语句,查询分析15分钟内各种异常类型发生的次数。__topic__: logtail_alarm | select sum(alarm_count)as errorCount, alarm_type GROUP BY alarm_type
操作审计
日志服务Project下所有资源的操作日志保存在internal-operation_log Logstore中,可用于操作审计。每条操作日志记录了操作相关的信息,例如创建机器组会记录机器组名称,操作Logstore会记录Logstore名称等,还记录了操作对应的用户信息。用户信息分类如下表所示:
操作日志的示例如下:
类型 | 字段 |
---|---|
阿里云账号 |
|
RAM用户 |
|
Sts |
|
{ "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" }
在internal-operation_log Logstore查询分析页面,查询操作失败(Status大于200)的请求数量。
Status>200 |select count(*) as pv