通过服务日志监测日志服务

如果您需要对日志服务进行监控运维(监测Logtail状态和异常、查看消费组延迟、资源的操作记录等),可以对服务日志进行查询分析。

背景信息

开启服务日志功能时,您可以选择服务日志的类型,包括详细日志重要日志任务运行日志,不同日志类型的详细说明和字段说明请参见服务日志类型

  • 详细日志:详细日志会在您选择的Project创建名称为internal-operation_log的LogStore,在当前Project创建仪表盘。

  • 重要日志:重要日志会在您选择的Project创建名称为internal-diagnostic_log的LogStore,记录消费组延迟和LogTail心跳日志等。

  • 任务运行日志:任务运行日志会在您选择的Project创建名称为internal-diagnostic_log的LogStore,记录数据导入、定时SQL、投递任务的运行日志。

前提条件

已开通服务日志。更多信息,请参见开通服务日志

监测Logtail心跳

查询Logtail状态日志

  1. 在名称为internal-diagnostic_log的Logstore的查询分析页面,执行如下查询语句。

    __topic__: logtail_status
  2. 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心跳

  1. 统计Logtail心跳正常个数:在名称为internal-diagnostic_log的Logstore查询分析页面,参考下图步骤,统计Logtail心跳正常个数,并配置告警。

    image

    查询分析语句:

    __topic__: logtail_status | SELECT COUNT(DISTINCT ip) as ip_count
  2. 配置告警规则:如果查询分析结果低于Logtail所绑定的机器组中的总机器数(此处假设总机器数为100)则触发告警。告警规则详细参数配置,请参见快速设置日志告警

    image

  3. 排查心跳异常的机器:如果产生告警,代表机器组中部分服务器没有心跳。您可以在日志服务控制台上查看机器组状态,排查思路请参见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"
}

用户信息分类如下表所示:

类型

字段

阿里云账号

  • InvokerUid:阿里云账号ID

  • CallerType:Parent

RAM用户

  • InvokerUid:RAM用户的UID

  • CallerType:Subuser

Sts

  • InvokerUid:阿里云账号ID

  • CallerType:Sts

  • RoleSessionName:session名称

查询操作失败的请求数量

internal-operation_log的Logstore查询分析页面,执行如下查询语句,查询操作失败(Status大于200)的请求数量。

Status > 200 | select count(*) as pv