使用Logtail采集Kubernetes上挂载的NAS日志

采集k8s挂载Nas后的日志

该文档主要介绍使用logtail以两种不同的方式进行k8s挂载Nas后的日志采集。两种采集方式的实现原理是一样的,都是通过将Logtail和业务容器挂载到相同的NAS上,使Logtail和业务容器的日志数据共享,以此实现日志采集。下面是两种采集方式的各自特点:

  1. SideCar模式。比较灵活、适合水平扩容,适用于数据量较大的场景;
  2. 单独部署Logtail的Deployment。资源消耗比较低、但灵活性以及伸缩性不强,适用于整体集群数据量较少的场景(建议整体日志量不超过每秒10M)。

1. Sidecar NAS采集方式

通过 链接 使用PV&PVC的方式配置挂载Nas的nas-pvc

  • 步骤一 创建pv
  • 步骤二 创建pvc
  • 步骤三 根据下面的yaml模板创建含有logtail的Pod,进行单个Pod的内部采集

sideCar模式实验yaml内容:

apiVersion: batch/v1
kind: Job
metadata:name: nginx-log-sidecar1-demo
spec:template:metadata:name: nginx-log-sidecar-demospec:# volumes配置volumes:- name: nginx-logpersistentVolumeClaim:claimName: nas-pvccontainers:# 主容器配置- name: nginx-log-demoimage: registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latestcommand: ["/bin/mock_log"]args: ["--log-type=nginx", "--stdout=false", "--stderr=true", "--path=/var/log/nginx/access.log", "--total-count=1000000000", "--logs-per-sec=100"]volumeMounts:- name: nginx-logmountPath: /var/log/nginx# Logtail的Sidecar容器配置- name: logtailimage: registry.cn-hangzhou.aliyuncs.com/log-service/logtail:latestenv:# user id- name: "ALIYUN_LOGTAIL_USER_ID"value: "${your_aliyun_user_id}"# user defined id- name: "ALIYUN_LOGTAIL_USER_DEFINED_ID"value: "${your_machine_group_user_defined_id}"# config file path in logtail's container- name: "ALIYUN_LOGTAIL_CONFIG"value: "/etc/ilogtail/conf/${your_region_config}/ilogtail_config.json"# env tags config- name: "ALIYUN_LOG_ENV_TAGS"value: "_pod_name_|_pod_ip_|_namespace_|_node_name_|_node_ip_"- name: "_pod_name_"valueFrom:fieldRef:fieldPath: metadata.name- name: "_pod_ip_"valueFrom:fieldRef:fieldPath: status.podIP- name: "_namespace_"valueFrom:fieldRef:fieldPath: metadata.namespace- name: "_node_name_"valueFrom:fieldRef:fieldPath: spec.nodeName- name: "_node_ip_"valueFrom:fieldRef:fieldPath: status.hostIP# 和主容器共享volumevolumeMounts:- name: nginx-logmountPath: /var/log/nginx# 健康检查livenessProbe:exec:command:- /etc/init.d/ilogtaild- statusinitialDelaySeconds: 30periodSeconds: 30restartPolicy: "Never"

SLS控制台采集配置设置如下图:

  • 日志路径与被采集容器的日志所在路径一致
  • 注意:由于NAS路径已经挂载到了Logtail容器上,所以不需要打开docker文件的按钮

采集上来的系统默认字段含义:

__source__:  pod容器内部IP
__tag__:__hostname__:  pod名称
__tag__:__path__:  日志路径
__tag__:__receive_time__:  采集时间
__tag__:__user_defined_id__:  用户自定义标识
__tag__:_namespace_:  pod所属namaspace
__tag__:_node_ip_:  pod所在Node的IP地址
__tag__:_node_name_:  pod所属Node的name
__tag__:_pod_ip_:  pod容器内部IP
__tag__:_pod_name_:  pod名称

用户参数:

 

参数

说明

${your_region_config}

该参数由日志服务Project所在Region以及网络类型决定,请根据网络类型输入正确的格式。包括:

  • 公网:region-internet。例如,华东一为cn-hangzhou-internet

  • 阿里云内网:region。例如,华东一为cn-hangzhou

其中,region为 表一,请根据Project地域选择正确的参数。

${your_aliyun_user_id}

用户标识,请替换为您的阿里云主账号用户ID。主账号用户ID为字符串形式,如何查看ID请参考 用户标识配置中的2.1节。

说明?用户标识一定是?主账号用户ID,子账号ID没有任何意义。

${your_machine_group_user_defined_id}

您集群的机器组自定义标识。需确保该标识在您的日志服务所在Region内唯一。详细内容可参考 创建用户自定义标识机器组。

 

2. 一个Logtail采集所有POD的NAS数据

注意项:副本数spec.replicas只能为1,不能更多,多了会重复采集。

首先,创建一个logtail的deployment,以下是本次使用的模板:

apiVersion: apps/v1
kind: Deployment
metadata:name: logtail-deploymentnamespace: kube-systemlabels:k8s-app: nas-logtail-collecter
spec:replicas: 1selector:matchLabels:k8s-app : nas-logtail-collectertemplate:metadata:name: logtail-deploymentlabels:k8s-app : nas-logtail-collecterspec:containers:# Logtail的配置- name: logtailimage: registry.cn-hangzhou.aliyuncs.com/log-service/logtail:latestenv:# aliuid- name: "ALIYUN_LOGTAIL_USER_ID"value: "${your_aliyun_user_id}"# user defined id- name: "ALIYUN_LOGTAIL_USER_DEFINED_ID"value: "${your_machine_group_user_defined_id}"# config file path in logtail's container- name: "ALIYUN_LOGTAIL_CONFIG"value: "/etc/ilogtail/conf/${your_region_config}/ilogtail_config.json"volumeMounts:- name: nginx-logmountPath: /var/log/nginx# volumes配置volumes:- name: nginx-logpersistentVolumeClaim:claimName: pvc-test-nginx
  • __注意:__这里的 claimName: pvc-test-nginx 以及mountPath: /var/log/nginx 是将logtail的/var/log/nginx挂载了Nas下的/nginx文件夹
  • 相关参数设置请参考方案1中的表格说明

logtail运行成功之后,可以在SLS控制台根据模板中的ALIYUN_LOGTAIL_USER_DEFINED_ID创建对应的机器组,请参考方案1中的表格说明。

这里新建2个Pod来测试采集是否成功,其中一个POD的模板为:

apiVersion: v1
kind: Pod
metadata:name: "test-nginx-2"
spec:containers:- name: "nginx-log-demo"image: "registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest"command: ["/bin/mock_log"]args: ["--log-type=nginx", "--stdout=false", "--stderr=true", "--path=/var/log/nginx/access.log", "--total-count=1000000000", "--logs-per-sec=100"]volumeMounts:- name: "nas2"mountPath: "/var/log/nginx"volumes:- name: "nas2"flexVolume:driver: "alicloud/nas"options:server: "Nas挂载地址"path: "/nginx/test2"vers: "4.0"

另一个Pod将 /var/log/nginx 挂载在了 /nginx/test1 目录下;结合logtail的挂载情况,现在两个Pod分别挂载在 /nginx/test1 和 /nginx/test2,而logtail挂载在了 /nginx 下。

最后配置logtail的采集配置


因为logtail也挂载了相同的Nas,所以logtail只需要采集自身文件夹下的日志就可以了,这里的是否为docker文件选项关闭。
注意:由于NAS路径已经挂载到了Logtail容器上,所以不需要打开docker文件的按钮

 

#阿里云开年Hi购季#幸运抽好礼!
点此抽奖:https://www.aliyun.com/acts/product-section-2019/yq-lottery?utm_content=g_1000042901

原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519704.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux目录挂载

挂载前声明: 执行挂载后,源本地目录下的文件会不显示。 挂载前:需要提前将原目录下面的日志文件备份转移,挂载成功后,在转移到挂载的本地目录下面即可。操作流程如下: 1. 将/app/fis/xml中148G多的日志文件…

深度揭秘“蚂蚁双链通”

今年年初,蚂蚁金服ATEC城市峰会在上海举行。在ATEC区块链行业研讨会分论坛上,蚂蚁金服区块链高级产品专家杨俊带来了主题为《供应链金融,不止于金融:蚂蚁双链通——基于区块链的供应链协作网络》的精彩分享。 蚂蚁金服区块链高级产…

@程序员,不要瞎努力!比起熬夜更可怕的是“熬日”!

最近,笔者在经常后台看到小伙伴留言在问,想学Python,但不知道如何入门?其实对于这个问题,真是仁者见仁智者见智。有句老话说的好“一千个读者,就有一千个哈姆雷特”不过对于此疑惑,笔者就想直接…

配置nginx作为静态资源服务器 css,js,image等资源直接访问

1.传统的web项目,一般都将静态资源存放在 webroot 的目录下,这样做很方便获取静态资源,但是如果说web项目很大,用户很多,静态资源也很多时,服务器的性能 或许就会很低下了。这种情况下一般都会需要一个静态…

分布式事务中间件 Fescar - 全局写排它锁解读

前言 一般,数据库事务的隔离级别会被设置成 读已提交,已满足业务需求,这样对应在Fescar中的分支(本地)事务的隔离级别就是 读已提交,那么Fescar中对于全局事务的隔离级别又是什么呢?如果认真阅…

云+X案例展 | 民生类:京东云突破数据中心光互联瓶颈

本案例由京东云投递并参与评选,CSDN云计算独家全网首发;更多关于【云X 案例征集】的相关信息,点击了解详情丨挖掘展现更多优秀案例,为不同行业领域带来启迪,进而推动整个“云行业”的健康发展。随着数字化的进程&#…

UI2Code智能生成Flutter代码--整体设计篇

背景: 随着移动互联网时代的到来,人类的科学技术突飞猛进。然而软件工程师们依旧需要花费大量精力在重复的还原UI视觉稿的工作。 UI视觉研发拥有明显的特征:组件,位置和布局,符合机器学习处理范畴。能否通过机器视觉和深度学习等手…

如何成为优秀的技术主管?你要做到这三点

阿里妹导读:技术主管,又叫「技术经理」,英文一般是 Tech Leader ,简称 TL。随着工作经验的不断积累,能力的不断提升,每个人都有机会成为Team Leader。然而在机会到来前,我们必须提前做好准备&am…

达摩院2020十大科技趋势发布:云成IT技术创新中心

2020年第一个工作日,“达摩院2020十大科技趋势”发布。这是继2019年之后,阿里巴巴达摩院第二次预测年度科技趋势。 回望2019年的科技领域,静水流深之下仍有暗潮涌动。AI芯片崛起、智能城市诞生、5G催生全新应用场景……达摩院去年预测的科技…

SpringBoot Mybatisplus 多数据源使用

文章目录一、mybatisplus3.x1. 依赖2. 启动类添加注解3. 添加多数据源注解4. yml5. 测试类6. 源码地址为了适配新的需求,需要同时支持mysql和oracle数据库操作多数据源,因此项目中集成dynamic-datasource-spring-boot-starter,支持很多场景。 例如&#…

数据流被污染?数据质量不高?蚂蚁金服数据资产管理平台了解一下

今年年初,蚂蚁金服ATEC城市峰会在上海举办。金融智能专场分论坛上,蚂蚁金服数据平台部高级数据技术专家李俊华做了主题为《蚂蚁金服数据治理之数据质量治理实践》的精彩分享。 演讲中,李俊华介绍了蚂蚁金服数据架构体系的免疫系统——数据质…

努力≠上进!那些“熬夜”持续精进的人有多可怕!

经常听到一些同学说:某个公司薪资上调30-50%,我可以跳槽入吗?最近收到几个比较好的offer!该去哪家?纠结!目前岗位和环境对自己成长非常慢!更看不到公司的前景特别迷茫!想成为人工智能…

详解CPU几个重点基础知识

戳蓝字“CSDN云计算”关注我们哦!作者 | 骏马金龙责编 | 阿秃关于CPU和程序的执行1、程序的运行过程,实际上是程序涉及到的、未涉及到的一大堆的指令的执行过程。当程序要执行的部分被装载到内存后,CPU要从内存中取出指令,然后指令…

非web项目并且项目文件多java项目 使用tomcat发布的方式

文章目录1. 创建配置文件2. 新建一个web项目2. 新项目结构调整4. 项目结构整理5. 添加jdk和jar6. 等待编译1. 创建配置文件 在tomcat的cof下面创建一下目录 conf\Catalina\localhost这个xml文件的名称建议和项目名一样,作用是,浏览器访问的时候项目名称…

为拯救爸妈朋友圈,达摩院造了“谣言粉碎机”

生命不可能从谎言中开出灿烂的鲜花。 前几天,母上大人给我发了条消息,再三叮嘱帮忙扩散,随手解救癌症患者。 “速转!科学家发现:一味中药48小时可杀死60%癌细胞!” 回复框里,我打了一段长长的反驳文字。…

亲历!不要痴迷蓝牙耳机了,出门选这个准没错,99W+人的选择

01有一种耳机啊它是真的不适合在长途火车上使用那就蓝牙耳机除非你带充电宝还有一种耳机啊它是真的不适合丢那就是带有充电仓的耳机因为充电仓丢了这个耳机基本上就废了02这不,我就经历了,活生生的例子出差的路上在火车上把耳机充电仓给弄丢了只剩孤零零…

调整eclipse、SpringToolSuite4编辑器的内存大小以及显示

我们的Eclipse、SpringToolSuite4编辑器总是会因为内存太小发生卡顿或者卡死现象,我给大家提供一个方法来解决,希望能在这里帮到大家,谢谢!!! 设置内存大小 修改Eclipse的配置文件: 打开Eclip…

一元享移动怎么样_中国移动放大招!月租9元享200GB流量,网友:这套路谁敢用?...

中国移动放大招!月租9元享200GB流量,网友:这套路谁敢用?众所周知,自从携号转网政策实施以来,移动就面临巨大的压力,因为口碑相对最差,移动转出的用户是最多的,2个月时间就…

云+X案例展 | 传播类:富通云腾加速联通云数字化转型步伐

本案例由富通云腾投递并参与评选,CSDN云计算独家全网首发;更多关于【云X 案例征集】的相关信息,点击了解详情丨挖掘展现更多优秀案例,为不同行业领域带来启迪,进而推动整个“云行业”的健康发展。在云时代背景下&#…