• 日志安装

    日志服务聚集各个服务日志通过elasticsearch存储和提供高可用,高效率的日志查询和聚合服务,日志服务和监控服务相互补充构建一个完整的监控日志分析服务,对集群和服务的健康稳定运行,常规业务分析起着不可忽视的作用。


    日志架构图

    日志架构图如下

    日志架构图

    fluent-bit以daemonSet的方式运行在每一个节点上,并且绑定日志目录,fluent-bit收集日志同时调用kubernetesApi获取日志所属的容器信息随后加工压缩日志。经过加工后的日志发送到fluentd上,fluentd会进一步缓冲日志并发送到elasticsearch集群中。Elasticsearch 是一个分布式、可扩展、实时的搜索与数据分析引擎。 它能从项目一开始就赋予你的数据以搜索、分析和探索的能力。若要查看日志可以在kibana中查看。

    为什么使用jsonfile存储日志: docker存储日志有多种形式,其中一种为fluentd可以直接发送给fluentd,看上去fluent-bit变得有点多余,但是我们考虑到了一点就是多行日志的处理问题,如果docker直接发送给fluentd则日志的顺序就会存在错乱的风险,处理多行日志就会变得异常复杂,而使用文件存储则可以安照顺序依次读取日志,判断处理多行日志。


    安装

    安装前准备

    使用我们的部署脚本部署kubernetes集群已默认配置了上述选项无需再次配置

    下载安装脚本

      $ wget https://rdc.hand-china.com/gitlab/rdc_hip/devops-install-docs/raw/master/devops/monitoring/install_logging.sh 
    

    编辑参数

      $ vim install_logging.sh
    

    参数说明

    参数 说明 默认值
    NAMESPACE 日志服务所在的命名空间 logging
    REQUEST_MEMORY 每个es节点请求的内存大小 4Gi
    LIMIT_MEMORY 每个es节点限制的内存大小 8Gi
    SCRAPE_INTERVAL prometheus收集指标间隔 10s
    SCRAPE_TIMEOUT prometheus收集指标超时 10s
    BASE_URL 服务的基础地址,如想要elasticsearch的地址为elasticsearch.example.com则BASE_URL的值应该设置为example.com
    NFS_SERVER 如果需要nfs存储日志数据则需要制定nfs服务器地址

    运行前注意事项

    ---
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      labels:
        pv: ${name}
      name: ${name}
    spec:
      accessModes:
      - ReadWriteMany
      capacity:
        storage: ${storage_size}Gi
      nfs:
        path: ${dataPath}
        server: ${NFS-SERVER}
    

    运行脚本

      $ sh install_logging.sh
    
    根据提示输入相关参数
    
    - Do you want use pvc to storage elasticsearch/kibana data (default is no) yes/no:   
      是否使用pvc存储elasticsearch/kibana数据
    
    - which node you run with elasticsearch/kibana 
    
      选择elasticsearch/kibana可以运行的节点,根据提示的节点选择如`node1 node3`
    
    - what nfs size do you want assign to elasticsearch (unit Gi)
    
      如果使用pvc,输入分配给prometheus的空间大小单位是Gi
    

    查看服务

    服务 地址
    elasticsearch elasticsearch.example.com
    kibana kibana.example.com