k8s使用阿里云日志服务sls收集日志

2020-10-20

需求背景

需求:
k8s的应用日志解决方案,不同项目组的日志要采集到不同的logstore,并且只采集指定环境的日志(dev/test/prd)

方案:

  1. logtail使用daemonset方式
  2. 通过crd来自定义日志采集

1. 部署helm v3

helm: https://github.com/helm/helm/releases

wget https://get.helm.sh/helm-v3.3.4-linux-amd64.tar.gz \
&& tar xf helm-v3.3.4-linux-amd64.tar.gz \
&& \cp -a linux-amd64/helm /usr/local/bin/helm \
&& helm version

2. 部署logtail-daemonset

安装Logtail日志组件:https://help.aliyun.com/document_detail/157317.html

开通一个子账号专门用于管理日志服务,并创建project k8s-log-custom-logtail,官方推荐"k8s-log-custom-"开头,咨询客服得知这个其实是可以随便自定义的

wget http://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/kubernetes/alicloud-log-k8s-custom-install.sh; \
&& chmod 744 ./alicloud-log-k8s-custom-install.sh; \
&& sh ./alicloud-log-k8s-custom-install.sh {your-project-suffix} {region-id} {aliuid} {access-key-id} {access-key-secret}

查看

helm status alibaba-log-controller

3. 配置aliyunlog-crd

file极简采集方式,配置多个crd来支持不同项目组使用不同logstore,容器的环境变量需要包含 ENVGROUP,用于筛选需要采集日志的容器

log-crd-dev-demo.yml

apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
  # 资源名,在集群内唯一
  name: log-demo
  namespace: log-crd
spec:
  # [可选]Project名称,默认为安装时设置的Project,若指定Project请确保该Project未被使用
  # project: k8s-log-custom-logtail
  # Logstore名称,不存在时自动创建
  logstore: k8s-demo
  # [可选]Shard数量,默认为2,支持1-10
  shardCount: 2
  # 详细配置
  logtailConfig:
    # 采集的数据源类型,file(文本文件)或plugin(标准输出)
    inputType: file
    # 采集配置的名称,与资源名(metadata.name)保持一致
    configName: log-demo
    inputDetail:
      # 极简模式日志,logType设置为"common_reg_log"
      logType: common_reg_log
      # 日志文件夹
      logPath: /var/log/app
      # 文件名, 支持通配符,例如log_*.log
      filePattern: "*.log"
      # 采集容器内的文件,dockerFile设置为true
      dockerFile: true
      # 只采集包含指定环境变量的容器日志,多个变量时,只要满足其中一个就会被采集
      dockerIncludeEnv:
        GROUP: demo
      # 排除包含指定变量
      dockerExcludeEnv:
        ENV: "^test|prd$"

查看

kubectl -n log-crd get aliyunlogconfigs

参考链接

K8S 日志采集最佳实操
https://www.cnblogs.com/lihanlin/p/12657680.html
Kubernetes中Logtail日志采集CRD配置详解
https://blog.csdn.net/weixin_34406061/article/details/89700948
安装Logtail日志组件
https://help.aliyun.com/document_detail/157317.html
通过DaemonSet-CRD方式采集日志
https://help.aliyun.com/document_detail/74878.html
Logtail配置
https://help.aliyun.com/document_detail/29058.html


标题:k8s使用阿里云日志服务sls收集日志
作者:fish2018
地址:http://devopser.org/articles/2020/10/10/1602324992778.html