SkyWalking
使用Logtail发送到阿里云
# 获取日志服务所在的阿里云账号(主账号)ID
https://help.aliyun.com/document_detail/49007.htm?spm=a2c4g.11186623.0.0.2c3b3d0a5tscUJ#task-arl-ynt-qy
使用日志服务所在的阿里云账号(主账号)登录阿里云 (opens new window)。
执行以下命令,获取日志服务所在的阿里云账号(主账号)ID。
echo $ALIBABA_CLOUD_ACCOUNT_ID 1241177606124115
1
2
# 创建Trace实例
https://help.aliyun.com/document_detail/208892.htm?spm=a2c4g.11186623.0.0.2c3b7312NlMUwk#task-2060211
日志服务Trace实例用于管理各类已采集到的Trace数据,包括查询和分析Trace数据、查看Trace数据详情、查看服务指标等。本文介绍创建Trace实例的操作步骤。
# 操作步骤
在日志应用区域的智能运维页签下,单击Trace服务。
单击创建实例。
在创建实例页面,配置如下参数,然后单击确定。
参数 描述 Trace实例名称 Trace实例的名称。 Trace实例描述 Trace实例的描述信息。 项目Project 用于存储Trace数据的Project。如果您还没有可用的Project,请单击立即创建,创建一个Project。更多信息,请参见创建Project (opens new window)。 实例ID Trace实例的ID。 角色权限 接入Trace数据后,Trace服务中将生成Scheduled SQL任务,用于从存储Trace数据的Logstore中读取数据,计算聚合指标。该Scheduled SQL任务需通过系统角色AliyunLogETLRole读取数据,即当前账号无系统角色AliyunLogETLRole时,您需要先根据页面提示,完成授权。
# 部署Logtail容器
https://help.aliyun.com/document_detail/66659.html?spm=a2c4g.11186623.6.633.8b789951rpravM
拉取Logtail镜像。
docker pull registry.cn-hangzhou.aliyuncs.com/log-service/logtail
1您需要根据实际情况替换 registry.cn-hangzhou.aliyuncs.com,地域信息请参见 Logtail安装参数 (opens new window)。
说明 如果您的服务器处于阿里云VPC网络中,需将 registry修改为 registry-vpc。
启动Logtail容器。
重要 请在配置参数前执行以下任意一种配置,否则删除其他container时可能出现错误
container text file busy
。- Centos 7.4及以上版本(除Centos 8.0以外),需设置fs.may_detach_mounts=1。更多信息,请参见Bug 1468249 (opens new window)、Bug 1441737 (opens new window)和issue 34538 (opens new window)。
- 为Logtail授予
privileged
权限,即在启动参数中添加--privileged
。更多信息,请参见docker run命令 (opens new window)。
根据实际情况替换模板中的3个参数
${your_region_name}
、${your_aliyun_user_id}
和${your_machine_group_user_defined_id}
。docker run -d -v /:/logtail_host:ro -v /var/run:/var/run --env ALIYUN_LOGTAIL_CONFIG=/etc/ilogtail/conf/${your_region_name}/ilogtail_config.json --env ALIYUN_LOGTAIL_USER_ID=${your_aliyun_user_id} --env ALIYUN_LOGTAIL_USER_DEFINED_ID=${your_machine_group_user_defined_id} registry.cn-hangzhou.aliyuncs.com/log-service/logtail
1参数 参数说明 ${your_region_name}
请根据日志服务Project所在地域及网络类型填写。其中,地域信息请参见Logtail安装参数 (opens new window),网络类型选择请参见选择网络 (opens new window)。如果为公网,格式为 region-internet
。例如华东 1(杭州)为cn-hangzhou-internet。如果为阿里云内网,格式为region
。例如华东 1(杭州)为cn-hangzhou。${your_aliyun_user_id}
您的日志服务所在的阿里云账号(主账号)ID。获取方法,请参见获取日志服务所在的阿里云账号(主账号)ID (opens new window)。 ${your_machine_group_user_defined_id}
设置机器组的用户自定义标识,例如log-docker-demo。重要请确保该标识在您的Project所在地域内唯一。在步骤二 (opens new window)中创建机器组时,您需要在用户自定义标识中输入此处设置的用户自定义标识。 重要
如果您要自定义配置Logtail容器的启动参数,只需保证以下前提条件。
- 启动时,必须配置3个环境变量
ALIYUN_LOGTAIL_USER_DEFINED_ID
、ALIYUN_LOGTAIL_USER_ID
、ALIYUN_LOGTAIL_CONFIG
。 - 将宿主机上的/var/run目录挂载到Logtail容器的/var/run目录。
- 将宿主机根目录挂载到Logtail容器的
/logtail_host
目录。 - 如果Logtail日志(/usr/local/ilogtail/ilogtail.LOG)中出现
The parameter is invalid : uuid=none
的错误日志,请在宿主机上创建一个product_uuid文件,在其中输入任意合法UUID(例如169E98C9-ABC0-4A92-B1D2-AA6239C0D261
),并把该文件挂载到Logtail容器的/sys/class/dmi/id/product_uuid目录。
# ConfigMap
kind: ConfigMap
apiVersion: v1
metadata:
name: birenchong-devops-tool-logtail-conf
namespace: birenchong-devops
annotations:
kubesphere.io/creator: admin
data:
ALIYUN_LOGTAIL_CONFIG: /etc/ilogtail/conf/ap-southeast-1-internet/ilogtail_config.json
ALIYUN_LOGTAIL_USER_DEFINED_ID: birenchong-server-api
ALIYUN_LOGTAIL_USER_ID: '1241177606124115'
2
3
4
5
6
7
8
9
10
11
12
# Service
kind: Service
apiVersion: v1
metadata:
name: birenchong-devops-tool-logtail
namespace: birenchong-devops
labels:
app: birenchong-devops-tool-logtail
version: v1
annotations:
kubesphere.io/creator: admin
kubesphere.io/serviceType: statelessservice
spec:
ports:
- name: tcp-11800
protocol: TCP
port: 11800
targetPort: 11800
selector:
app: birenchong-devops-tool-logtail
clusterIP: 10.100.110.224
clusterIPs:
- 10.100.110.224
type: ClusterIP
sessionAffinity: None
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
internalTrafficPolicy: Cluster
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Deployment
kind: Deployment
apiVersion: apps/v1
metadata:
name: birenchong-devops-tool-logtail-v1
namespace: birenchong-devops
labels:
app: birenchong-devops-tool-logtail
version: v1
annotations:
deployment.kubernetes.io/revision: '1'
kubesphere.io/creator: admin
spec:
replicas: 1
selector:
matchLabels:
app: birenchong-devops-tool-logtail
version: v1
template:
metadata:
creationTimestamp: null
labels:
app: birenchong-devops-tool-logtail
version: v1
spec:
containers:
- name: logtail
image: 'harbor.birenchong.cn/devops/logtail:v1.0'
ports:
- name: tcp-11800
containerPort: 11800
protocol: TCP
env:
- name: ALIYUN_LOGTAIL_CONFIG
valueFrom:
configMapKeyRef:
name: birenchong-devops-tool-logtail-conf
key: ALIYUN_LOGTAIL_CONFIG
- name: ALIYUN_LOGTAIL_USER_DEFINED_ID
valueFrom:
configMapKeyRef:
name: birenchong-devops-tool-logtail-conf
key: ALIYUN_LOGTAIL_USER_DEFINED_ID
- name: ALIYUN_LOGTAIL_USER_ID
valueFrom:
configMapKeyRef:
name: birenchong-devops-tool-logtail-conf
key: ALIYUN_LOGTAIL_USER_ID
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
securityContext:
privileged: true
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
nodeSelector:
env: devops
serviceAccountName: default
serviceAccount: default
securityContext: {}
imagePullSecrets:
- name: harbor-devops
schedulerName: default-scheduler
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 25%
revisionHistoryLimit: 10
progressDeadlineSeconds: 600
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# 创建用户自定义标识机器组
https://help.aliyun.com/document_detail/28983.html
在Project列表区域,单击目标Project。
在左侧导航栏中,选择资源> 机器组。
选择机器组右侧的**
> 创建机器组**。
在创建机器组对话框中,配置如下参数,单击确定。
参数 说明 名称 设置机器组的名称。注意 创建后,不支持修改机器组名称,请谨慎填写。 机器组标识 选择用户自定义标识。 机器组Topic 机器组Topic用于区分不同服务器产生的日志数据。更多信息,请参见日志主题 (opens new window)。 用户自定义标识 配置为2 (opens new window)中配置的用户自定义标识。 查看机器组状态。
在机器组列表中,单击目标机器组。
在机器组配置页面,查看使用相同用户自定义标识的服务器及其心跳状态。
机器组状态中的IP列表,即为使用相同用户自定义标识的服务器的IP地址。例如:
假设当前为用户自定义标识机器组,用户自定义标识为userdefined,机器组状态中的IP分别为10.10.10.10、10.10.10.11、10.10.10.12。则表示您在这三个服务器上创建了相同的用户自定义标识userdefined。如果您需要新增10.10.10.13服务器,则只需要在该服务器上创建用户自定义标识userdefined,即可在机器组状态中看到该服务器。
心跳为OK表示服务器上的Logtail实例与日志服务的连接正常,如果显示FAIL请参见Logtail机器组无心跳 (opens new window)处理。
# 接入SkyWalking Trace数据
https://help.aliyun.com/document_detail/208914.html?spm=5176.2020520112.help.dexternal.7b9a34c0pyva1C#step-fn9-9yq-89g
# 配置数据接入
- 登录日志服务控制台。
- 在接入数据区域,选择SkyWalking。
- 选择Project:bi-renchong,然后选择Logstore: birenchong-api-trace-traces
- 创建机器组。
- 如果您已有可用的机器组,请单击使用现有机器组。
- 如果您还没有可用的机器组,请执行以下操作(以ECS为例)。
- 在ECS页签中,选中目标ECS实例,单击立即执行。更多信息,请参见安装Logtail(ECS实例) (opens new window)。
- 如果是自建集群、其他云厂商服务器,需要手动安装Logtail。更多信息,请参见安装Logtail(Linux系统) (opens new window)或安装Logtail(Windows系统) (opens new window)。
- 安装完成后,单击确认安装完毕。
- 创建机器组,单击下一步。日志服务支持创建IP地址机器组和用户自定义标识机器组,详细参数说明请参见创建IP地址机器组 (opens new window)和创建用户自定义标识机器组 (opens new window)。
- 选中目标机器组,将该机器组从源机器组移动到应用机器组,单击下一步。 注意 如果创建机器组后立刻应用,可能因为连接未生效,导致心跳为FAIL,您可单击自动重试。如果还未解决,请参见Logtail机器组无心跳 (opens new window)进行排查。
- 创建Logtail配置,单击下一步。
- 注意:若您的Logtail本地11800端口被占用,可替换为其他可用端口,同时需修改SkyWalking上报的端口号。
{
"inputs" : [
{
"detail" : {
"Address" : "0.0.0.0:11800"
},
"type" : "service_skywalking_agent_v3"
}
],
"aggregators" : [
{
"detail" : {
"MetricsLogstore" : "birenchong-api-trace-metrics",
"TraceLogstore" : "birenchong-api-trace-traces"
},
"type" : "aggregator_skywalking"
}
],
"global" : {
"AlwaysOnline" : true,
"DelayStopSec" : 300
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 配置SkyWalking客户端
配置SkyWalking客户端,将数据发送到Logtail监听的地址,详细说明如下:
- 如果您使用的是Java Agent,则替换其中的collector.backend_service参数。具体操作,请参见Java Agent配置 (opens new window)。
- 如果您使用的是.net core Agent,则使用
dotnet skyapm config ${service}${endpoint}
命令生成配置文件。其中,${service}需替换为实际的服务名,${endpoint}需替换为步骤5 (opens new window)中配置的机器组IP地址及对应的端口号。具体操作,请参见SkyAPM-donet (opens new window)。 - 如果您使用的是其他Agent或SDK发送数据,需将后端地址替换为步骤5 (opens new window)中配置的机器组IP地址及对应的端口号。