普元数据资产管理平台 普元数据资产管理平台
  • 7.1GA
  • 7.1.1GA
  • 7.2GA
  • 7.3GA
产品简介
快速开始
安装指南
数据资产及目录
数据标准
数据模型
元数据管理
数据服务
数据安全
常见问题解答
开发指南
更新日志
  • 服务调用统计
  • 功能入口
  • 功能概述
  • 前提条件

# 服务调用统计

# 功能入口

【数据服务】-【服务管理】-【服务调用统计】 service28

# 功能概述

服务引擎记录了所有服务调用的日志信息,默认存放在服务引擎logs目录下的api.log文件。 目前记录的内容包括服务调用信息(调用时间、调用地址、调用服务名称、调用服务ID)、授权方信息(授权账号、授权部门、授权应用等),目前出于安全考虑,日志中不包含服务的调用的具体入参和出参信息。

# 前提条件

需要安装filebeat+logstash组件,采集服务日志并将服务信息存入elasticsearch。其中filebeat组件需要和服务引擎后端进程安装在同一台服务器上,如果采用集群方式安全,则每个服务引擎所在的服务器都需要安装,并指定具体的采集日志路径。

服务引擎的服务调用日志默认记录在服务引擎server的logs目录下,名称为api.log*。

以下配置可作为参考,可以根据实际情况调整。配置中是通过filebeat直接往logstash推送日志数据,如果考虑高并发场景,可以引入kafka,实现filebeat->kafka->logstash->elasticsearch的日志采集链路。

filebeat模版:

filebeat.inputs:
  - type: log
    paths: ['/opt/dataEngine/logs/api.log*']
    encoding: UTF-8
    fields:
      log-type: api-log
    tags: ['api-log']
    exclude_files: ['.gz$']
    json.keys_under_root: true
    json.add_error_key: true
    json.overwrite_keys: true
output:
  logstash:
    hosts: ['127.0.0.1:5044']

logstash配置文件:

input {
    beats {
        port => 5044
    }
}

filter {
    date {
        match => [ "time", "UNIX_MS" ]
        locale => "cn"
        timezone => "Asia/Shanghai"
        target => "covert-time"
    }

    # calculate time UTC + 8h -> Asia/Shanghai
    ruby {
        code => "event.set('covert-time', event.get('covert-time').time.localtime + 8*60*60)"
    }

    mutate {
        convert => ["covert-time", "string"]
    }

    # -----
    # replace logstash @timestamp with log timestamp, and output.elasticsearch create index use this time
    # -----
    date {
        match => [ "covert-time", "YYYY-MM-dd'T'HH:mm:ss.SSSZ", "ISO8601" ]
        locale => "cn"
        timezone => "Asia/Shanghai"
    }
}

output {
    elasticsearch {
        hosts => ["127.0.0.1:9200"]
		# 默认按天创建index,例如api-log-2023.01.03
        index =>  "%{[fields][log-type]}-%{+YYYY.MM.dd}"
        document_type => "log"
    }
}

服务日志数据格式如下:

{
	"_index": "api-log-2023.01.03",
	"_type": "QV6ouIUBRRLTd81_lFnE",
	"_id": "wu__tYYBGYJzibDjTZJC",
	"_score": 1.0,
	"_source": {
		"tags": [
			"api-log",
			"beats_input_raw_event"
		],
		"ok": true,
		"time": 1672733243440,
		"@version": "1",
		"covert-time": "2023-01-03T16:07:23.440Z",//调用时间
		"ecs": {
			"version": "1.0.0"
			},
		"path": "/api/sql-services/Test22/query",//调用服务地址
		"method": "POST",
		"pattern": "/api/sql-services/{id}/query",
		"input": {
			"type": "log"
		},
		"name": "RCM_TEST",//调用服务名称
		"fields": {
			"log-type": "api-log"
		},
		"agent": {
			"version": "7.0.0",
			"id": "ac7dfc12-cae7-41db-8ed5-48ff522f8e83",
			"ephemeral_id": "32707110-c4a0-447f-bcaa-e2f7bda0d052",
			"hostname": "localhost.localdomain",
			"type": "filebeat"
		},
		"log": {
			"offset": 245,
			"file": {
				"path": "/opt/ems/server/dataEngine/logs/api.log"
			}
		},
		"host": {
			"name": "localhost.localdomain"
		},
		"client": "acba7b4446184eeeb8550b9569538abe",//授权账号
		"org": "",//授权部门
		"serviceId": "Test22",//调用服务ID
		"elapsed": 98,
		"app": ""//授权应用
	}
}	
上次更新: 2024/6/25下午4:45:37

← 服务引擎监控 安全分类 →