注意:以下文档只适用于TOP接口,请谨慎使用!

文档中心 > 聚石塔

SLS日志采集接入

更新时间:2022/01/18 访问次数:527

一、集群中安装日志组件

聚石塔控制台-运维中心-集群管理,一键集成SLS,后台会在集群上安装SLS组件(集群管理的logtail)


成功集成后:

1.SLS侧会创建一个k8s-log-{集群id}的project

2.集群中运行一个alibaba-log-controller;

3.集群中运行一个logtail的DaemonSet,每个ECS节点上都会起一个logtail进程

image.png



二、应用日志接入

应用日志的采集,需要做一些配置才能接入,主要有三种方法,任选其一:

yaml中配置,原生的deployment中指定相关配置即可;

页面上部署配置进行配置;

SLS控制台手动配置;

注:前两种接入方式,比较快捷方便,但是默认为“极简模式”采集,SLS控制台手动配置可以满足更丰富的采集需求。各个接入方式请看下面的文档:


1.原生Yaml中配置

目前暂时不支持在页面中进行配置,只支持通过open api进行发布。通过指定容器中的env、volumns和volumeMounts来做一个采集配置。这里面具体涉及哪些主要的配置项呢,先看一个完整的例子:

apiVersion: apps/v1beta2
kind: Deployment
metadata:
  labels:
    app: tomcat-sls-file
  name: tomcat-sls-file
  namespace: tomcat
spec:
  replicas: 2
  selector:
    matchLabels:
      app: tomcat-sls-file
  template:
    metadata:
      labels:
        app: tomcat-sls-file
    spec:
      containers:
        - env:
        		# 设置环境变量,aliyun_logs_{key},key可以自己指定唯一标识,例如此处key为'tomcat-catalinaaa'
            # value值表示要采集的日志文件或目录。如果是采集标准输出,填stdout就行
            - name: aliyun_logs_tomcat-catalinaaa
              value: /usr/local/tomcat/logs/catalina.2020-01-19.log
            # 设置环境变量,aliyun_logs_{key}_logstore,key为上面一个env指定的
            # value值表示要采集到的logstore,没有的话会自动创建
            - name: aliyun_logs_tomcat-catalinaaa_logstore
              value: tomcat-catalinaaa
            # 设置环境变量,aliyun_logs_{key}_project,如果不设置该env,则使用的是k8s-log-{集群id}这个project
            # value值表示要采集到的project,没有的话会自动创建
            - name: aliyun_logs_tomcat-catalinaaa_project
              value: new-app-project
            # 设置环境变量,aliyun_logs_{key}_tags,设置sls 日志数据的标签,用于筛选
            # value值表示要设置的标签,键值对形式
            - name: aliyun_logs_tomcat-catalinaaa_tags
              value: app=app110
          image: 'tomcat:latest'
          name: tomcat-sls-file
          resources:
            requests:
              cpu: 250m
              memory: 512Mi
          # 容器中将需要采集的目录进行挂载
          volumeMounts:
            - mountPath: /usr/local/tomcat/logs/
              name: volumn-sls-catalina
      # 定义一个emptyDir的volume    
      volumes:
        - emptyDir: {}
          name: volumn-sls-catalina


文件挂载

主要是设置volumes和volumeMounts。如果是采集标准输出,则不需要设置。主要目的是将需要采集的容器文件目录挂载出来。

关于volumns和volumeMounts如何配置,这里不再赘述,参考例子就行。


容器ENV

对于环境变量,主要涉及这四个

aliyun_logs_{key},aliyun_logs_{key}_logstore,aliyun_logs_{key}_project,aliyun_logs_{key}_tags

需要注意的是点是,

如果需要用到后面三个变量,则第一个一定要指定,因为需要把key定义出来(value为要采集的文件或目录);image.png


如果不设置aliyun_logs_{key}_logstore,那么会把aliyun_logs_{key}中的key作为logstore,例如下面的配置

image.png

更多环境变量:环境变量高级配置


日志查询

可以看到,在我们指定的project new-app-project中,自动创建了一个logstore tomcat-catalinaaaa,日志记录上打上了相应的TAG.image.png


特别的,

如果不设置aliyun_logs_{key}_project变量去指定project,那么日志采集使用的project为 k8s-log-{集群id};

上述的logstore和采集配置均为自动创建,无需提前创建,采集配置为极简模式(按行),如果需要更丰富的采集方式,可以前往日志服务控制台进行“手动配置”


2.聚石塔控制台页面配置

配置采集

应用-发布-部署配置(编辑)

image.png

每一行代表一个日志采集任务,填写好logstore的名称和要采集的文件就行


注:

1.这里的日志默认存储到集群所对应的Project中

2.logstore的名称要符合阿里云SLS的命名标准

1.日志库名称仅支持小写字母、数字、连字符(-)
2.必须以小写字母和数字开头和结尾
3.名称长度为3-63个字符

3.日志路径要符合阿里云SLS的标准

指定文件夹下所有符合文件名称的文件都会被监控到(包含所有层次的目录),文件名称可以是完整名,也支持通配符模式匹配。
Linux文件路径只支持/开头,例:/apsara/nuwa/.../app.Log,
Windows文件路径只支持盘符开头,例如:C:\Program Files\Intel\...\*.Log

4.特别的,如果要采集容器标准输出,日志路径填写stdout

5.这里配置的采集均为"极简模式"


日志查询

聚石塔资源视图-日志服务 

找到集群对应的project,进入到刚刚配置的logstore下查看日志即可

image.png






3.SLS控制台手动配置

确定Project 配置机器组

1.如果使用默认的project,即k8s-log-{集群id},则不需要配置

2.如果指定别的project,则需要先创建好机器组(使用与默认project机器组相同的自定义标识)

image.png

默认project中,机器组的标识为k8s-group-{集群id},使用这个自定义标识创建的机器组才能动态的对应到集群ECS上的logtail

参考:https://help.aliyun.com/document_detail/28983.html


创建Logstore

创建logstore,并在此logstore上创建logtail配置


创建Logtail配置

1.数据类型选择自建软件 docker文件

image.png


2.数据源 

配置名称,日志路径,采集模式等就不说了,参考阿里云文档。

image.png

这里通过io.kubernetes.container.name这个key去筛选我们的目标容器,例子中我们的Deployment中配置的容器名为“tomcat-sls-file”。如果不是通过open api原生方式进行部署,而是通过控制台页面进行部署,容器名则为后台指定:jck-app-container-{appId},appId为应用id,不清楚的答疑群里咨询


3.关联机器组

关联的机器组为上面步骤中介绍的(或自己新建的)

FAQ

关于此文档暂时还没有FAQ
返回
顶部