欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    Kubernetes业务日志收集与监控探析.docx

    • 资源ID:1353390       资源大小:209.92KB        全文页数:15页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Kubernetes业务日志收集与监控探析.docx

    随着容器技术以及容器编排技术的成熟,越来越多的中小型企业也在将服务迁移到KUbenIeteS中,更智能,更便捷的管理服务,降低运维成本,而在迁移过程中,业务日志的收集以及业务服务的监控,集群状态的监控就变得很重要了。本问主要讲述在将服务迁移到Kubernetes中是如何收集业务日志以及监控集群、业务状态的。集群业务日志收集我司规模不大、运维人员较少,所以在业务迁移到Kubernetes中整体的日志收集流程并没有大改,只做出了部分调整。由于前期日志目录以及日志名称规范很好,所以调整起来也很方便。在业务迁移KUbenIeteS之前日志收集流程如下图图1旧E1.K架构旧的日志收集架构其实存在一些问题:当1.ogstash挂了之后就存在丢失日志问题,之前跨大版本升级1.ogstash失败就丢失了一段时间日志。当1.ogStaSh后的消费程序挂了其一,例如ES挂了,会导致日志写文件和写InfluxDB都有问题并且由于Filebeat会不断推送日志给1.ogStaSh从而导致日志丢失。以上两个问题都说明组件之间耦合严重,所以在迁移Kubernetes时我们对架构做了一些调整,调整后的日志收集架构如下图2。图2新E1.K架构在Filebeat和1.ogstash之间增加Kafka用于临时缓存日志,并用于解耦日志消费者。启动多个1.ogStaSh实例分别处理写文件、连接ES、写InfIUXDB从而解耦日志消费程序耦合。因为业务迁移要求快、时间短,没有时间将日志都打在容器StdOUt输出,所以采用将容器日志映射到宿主机上,再通过FiIebeat收集,实现KUbenleteS中业务日志收集。这里给出1、3点变化的配置变更:第1点带来的配置变化对比如下图3。变更股争-1.ogstashoutputoutput.IogstasK:9The1.09stashhostshosts:(,IP三5e44,j变更后:Kafkaoutputoutput.kafka:hosts:(MIP:9e92M)topic:*M!fields.topic*key:<(beat.hostname'version:,l.l.e,enabled:trueIogstashconf中input变化:Wl=inputbeatsport三>5044SJ三input(Skafka(bootstrp.srvers=>HIP:9092Mtopics三>("xotgroup-ld三>"IogstashofilterJSonsource三>Fcsge''JJg二墨,皂/1#幽量延WflwQD些模处电星母tt取不到日志内容,没书之加注一行无法将慢敷却8式图3接入Kaflca后配置变更重点分享下第3点变化:最开始公司内部新增一个服务都需要将该服务的所有日志类型的收集规则直接写入filebeat.yml文件,然后使用Ansible下发到所有业务机上重启并Filebeat。这样导致filebeat.yml文件越来越长、难以维护并且一个配置不正确会导致Filebeat起不来,造成日志无法及时收集。后来我们将每个业务日志收集规则拆分成一个个小yaml文件存放在etcf11ebeatinputs.d中,业务Filebeat收集规则则由一个自动生成配置脚本从Kubernetes集群获取业务namespace和服务日志路径来自动生成业务Filebeat配置再通过Ansible将配置下发到指定目录。第3点配置变化对比如下图4中3部分。图4FiIebeat收集变化通过以上几点修改我们快速的完成了业务日志在Kubernetes集群中的收集工作,并且提高了日志系统的稳定性,为以后常规化升级日志系统带来了便利。当然我们的系统也有不足之处,现在我们的Filebeat还是使用Systemd启动,每新增一个Node,都需要安装一次FiIebea3并且需要让自动脚本检索到这个节点给节点下发配置,后期我们打算使用KubernetesDaemonSet模式来部署Filebeat并且当有新服务加入自动更新Filebeat配置、使用Kubernetes的方法来完成FiIebeat安装、配置更新。集群状态监控以及业务状态监控我们在集群状态监控以及业务状态监控方面,采用的是PrometheusOperator的一揽子开源工具解决方案。先介绍下各个组件作用:PrometheusOperator:PrometheUS是主动去拉取监控数据的,在KUbemeteS里Pod因为调度原因导致IP不断变化,人工不可能去维持,自动发现又是基于DNS的,但是新增还是有点麻烦。PrometheusOperator的本职就是一组用户自定义的CRD资源以及Controller的实现,PrometheusOperator这个controller有RBAC权限、负责监听这些自定义资源的变化,并且根据这些资源的定义自动化的完成如PrometheusServer自身以及配置的自动化管理工作。Kube-state-metrics:能够采集绝大多数KUbenleteS内置资源相关数据,例如Pod、Deploy.SerViCe等。同时它也提供自己的数据,主要是资源采集个数和采集发生的异常次数统计。例如我调度了多少个RePliCas?现在可用的有几个?多少个Pod是running/stopped/terminated状态?Pod重启了多少次?等等这些状态值都可以通过添加Prometheusrule来产生报警,及时通知运维和开发人员。Prometheus:用于收集集群组件Metric和集群中各类资源状态Metric以及自定义实现的监控Metric数据。AlertManager:处理由PrOmetheUS服务器等客户端发来的警报。它负责删除重复数据、分组,并将警报通过路由发送到正确的接收器,比如电子邮件、Webhook等。在Kubernetes中部署业务前,监控系统和日志收集系统都需要提前安装好,因为业务分地区等原因我司内部存在多套集群环境,每套集群部署地区都不一致,所以在部署监控服务时,我们采取的方案是在每个集群中都创建一套完整的监控系统,因为我们的业务不属于PV很大的业务且集群规模较小,所以每个集群一套监控系统是比较合理的。监控系统中的各组件服务存放在个单独的namespace中,直接采用YAM1.方式安装,没有使用helm安装。集群监控架构图如下图5。图5Kubernetes集群监控架构从图中可以看出我们主要收集了三个方面监控数据:集群组件:我们收集了API、Controller>Scheduler>KubeletsCoreDNS五个组件的Metrics,由于我司集群采用二进制方式安装的,所以部分组件Metric(Controller>Scheduler)数据的获取需要自己配置EndPOintS并配合SerViCe和ServiceMonitor完成Metric的收集。下面给出Controller的Endpoints>Service>ServiceMonitor配置如下图6。apiVersion:vlkind:Endpointsmetadata:labels:k8s-app:kube-controller-nanagername:kube-controller-managernanespace:kube-systemsubsets:-addresses:- ip:IPl- ip:IP2- ip:IP3ports:- name:http-metricsport:10252protocol:TCP,SerViCe配置.apiVersion:vlkind:Servicemetadata:nanespace:kube-syste<nane:kube-controtIer-managerlabels:k8s-app:kube-controller-managerspec:9selector:*component:kube-controlier-managertype:ClusterIPClusterIP:Noneports:-name:http-metricsport:1252targetPort:10252protocol:TCP#ServiceMonitorEfi:apiVersion:labels:k8s-app:kube-controller-managername:kube-controtIer-managernanespace:monitoringspec:endpoints:-interval:3sportshttp-metricsjob1.abel:k8s-appnanespaceSelector:BatchNames:-kube-systemselector:atch1.abels:k8s-app:kube-contro1.1.er-anager图6Controller配置Pod状态和资源状态:这两个方面的Metric由kube-state-metrics组件完成收集,至于kube-state-metrics的功能我就不多介绍了网上和官方都有很好的介绍。而关于PrometheusOperator>Prometheus>AIertmanager、kube-state-metrics的部署,网上教程也很多,大家自己搭建碰到问题自己解决也是很有乐趣的,也可以查看我的GitHUb仓库,参考安装。这里重点说下Prometheus存储,由于Prometheus部署在Kubernetes集群中而Pod是随时消亡的,所以直接本地存储是不合适的,当然也可以使用PV来存储,不过现在有很多很好也很完善的Prometheus远程存储方案可供选择,建议使用远程存储方案。我司采用InfIUXDB作为Prometheus远程存储方案,单机InfklXDB性能已经很强基本满足日常需求,但由于他的集群方案是不开源的,存在单点故障问题。所以大家可以选择其他远程存储解决方案避免这个问题。Prometheus连接InfIUXDB配置如下图7。#在PrOfnetheUS的StatefUlSet.yaml中配置:apiVersion:baseimage:quay.io/prometheus/prometheus#baseimage:-UrI:http:IP:8086/api/vlpro11l/read?db=库名&u=用户名&p=密码readRecent:trueremoteWrite:#f'"url:http:1P:8086/api/vl/pro11write?db=库名&u=用户名&p=密码ServiceAccountNaine:prometheus-k8sServiceMonitorflamespaceSelectors冏ServiceMonitorSelector:ruleselector:match1.abels:prometheus:k8srole:alert-rulesresources:requests:memo

    注意事项

    本文(Kubernetes业务日志收集与监控探析.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开