zoukankan      html  css  js  c++  java
  • 阿里云ilogtail收集自建Kubernetes容器日志文件

    背景

    1,k8s属于自建。

    2,需要收集应用服务容器里面指定目录的日志。

    3,计划收集所有私有云php和nginx日志。

    4,日志格式化处理。

    思考

    1,一个私有云一个Project,还是统一放入一个Project。

    2,logstore 是一个日志类型一个还是一个私有云一个。

    3,logtail配置多个在一个logstore,还是在一个logstore。

    注:因为alibaba-log-controller 安装使用的是helm,所以集群需要有helm命令。helm就类似于yum   apt。

    传送门:helm安装

    一、介绍

    • 阿里云的日志服务SLS:https://sls.console.aliyun.com/lognext/profile 
    • 阿里云官方文档:https://help.aliyun.com/document_detail/48869.html
    • 日志服务SLS是云原生观测与分析平台,为Log、Metric、Trace等数据提供大规模、低成本、实时的平台化服务。
    • 日志服务一站式提供数据采集、加工、查询与分析、可视化、告警、消费与投递等功能,全面提升您在研发、运维、运营、安全等场景的数字化能力。
    • 日志服务提供50多种数据接入方案。
    • 一句话就是很牛逼。

        我今天要说的是,我公司的一个实际的需求:

    • 利用阿里云的ilogtail采集工具。
    • 收集我们本地idc机房。
    • 自建k8s集群。
    • 多个日志文件。

        再说一点为啥要用阿里云的ilogtail:

    • ilogtail可以收集容器里面指定目录下的文件。
    • 我们的日志文件没有挂载到宿主机。filebeat就做不到收集容器里面的日志。
    • 我们需要收集的文件有nginx的access   error。php的info,error.
    • 日志分类。

    二、安装阿里alibaba-log-controller

    2.1 新建Project

    1. 登录阿里云日志服务控制台https://sls.console.aliyun.com/lognext/profile
    2. 创建一个以k8s-log-custom-开头的Project。k8s-log-custom-all-pcloud
    3. k8s-log-custom-  这个是固定开头,但是我看阿里云的安装脚本,这个可以改一下试试。

    2.2 安装logtail组件

    安装脚本:点击下载脚本

    # 这个脚本是被我稍微改了一下,可以定义机器组,传入的最后一个参数就是定义机器组。
    
    bash ./alicloud-log-k8s-custom-install.sh all-pcloud cn-beijing 1234567890 ak sk pcloud-hkgc

     参数说明:

    参数 说明
    all-pcloud

    创建的Project的名称中的自定义部分。k8s-log-custom-all-pcloud,则此处填写all-pcloud

    cn-beijing

    Project所在的地域ID,传送门:点击

    1234567890

    阿里云账号ID,传送门:点击

    ak ak
    sk sk

    pcloud-hkgc

    Project的机器组名称,不同的私有云用不同的机器组区分,这个是我加的,方便区别机器组

    验证:

    helm  status alibaba-log-controller

    查看机器组:

    • 然后去阿里云SLS服务上面的Project里面看机器组。
    • 这个机器组就是pcloud-hkgc。
    • 可以看到这个机器组下面的机器都是在线的。

    2.3 收集日志

    ilogtail采集器安装完毕了之后就要配置规则去收集日志了。

    创建logstore:

    • logstore其实就是一个各种日志的集合。
    • 其实就是给你想要的日志分个组。
    • 很灵活,我就是按照一个私有云集群来分的。
    • 一个私有云一个logstore

    创建logtail配置:

    • logtail其实就是一组收集日志的规则。
    • 收集哪个目录 文件的日志,格式化日志。
    • 并且可以设置白名单,只收集哪个容器的,或者只收集那个namespaces的。官方文档:https://help.aliyun.com/document_detail/66655.html

    说一下我工作中实际的用法:

    • nginx    access     error文件各创建一个logtail配置
    • php    info    error文件各创建一个logtail配置
    • 因为我只收集zhumeng命名空间下的,所以我加上了io.kubernetes.pod.namespace:zhumeng 白名单。
    • 并且日志路径匹配那每次都会收集/var/www/html/storage/logs/schedule*.log,所以这里的需要过滤掉。采集黑名单文件路径。
    • config-operation-log  logstore不能删除。这个是logtail容器插件自己的心跳。

    下面再贴一个我收集php日志的截图

    三、展示

    • 我用机器组区分不同的k8s集群
    • 用logstore把集群的不同日志放到一个日志库里
    • 用logtail挂载到不同的机器组

  • 相关阅读:
    asp.net自带的异步刷新控件使用
    C#反射之创建对象实例
    用httpHandler实现简易ajax框架
    在配置文件中使用相对路径连接数据库文件
    C# 扩展方法
    JavaScript动态创建元素(老帖新发)
    为所有类型扩展一个深拷贝方法
    C#反射之获取程序集信息
    枚举类型的位运算
    SQL2005数据库还原到SQL2000的方法
  • 原文地址:https://www.cnblogs.com/fanfanfanlichun/p/15718692.html
Copyright © 2011-2022 走看看