Chinaunix首页 | 论坛 | 博客
  • 博客访问: 294890
  • 博文数量: 52
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 577
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-27 14:21
个人简介

知道自己该干嘛,知道自己能干嘛

文章分类

全部博文(52)

文章存档

2019年(1)

2018年(8)

2017年(2)

2016年(11)

2015年(3)

2014年(10)

2013年(17)

我的朋友

分类: 系统运维

2019-08-28 17:32:56

 
            第二次为kubernetest集群收集POD日志,kubernetes版本已更新为v1.14.2,还是选用sidecar模式旁挂filebeat, 通过 emptydir 共享日志目录,达到收集效果。同时测试一些env导入方式,引用downward api, 整合成一个filebeat配置文件。
                 
               
        此次收集filebeat.yml使用了很多env变量,配置文件自身是configmap, 通过valueFrom方式从Downward api , secret 导入数据,填充到环境变量中,来补全配置文件。话不多说配置文件奉上。

        filebeat连接集群所需要的用户名与密码

  1. apiVersion: v1
    kind: Secret
    metadata:
      name: essecret
      namespace: basic-plat
    type: Opaque
    data:
      ES_USERNAME: YWRtaW4=
      ES_PASSWORD: Y2FpNjYxMTM2

        filebeat.yml configmap  // 由于ES集群版本是v5.5. 所以filebeat 也选用v5.5.2 

  1. name: ${NODE_NAME}-${POD_IP}

  2. filebeat.prospectors:
  3. - input_type: log
  4.   paths:
  5.     - /usr/src/log/${SERVICE_NAME}_mpsp.log
  6.   fields:
  7.     service: ${SERVICE_NAME}_mpsp
  8.   fields_under_root: true

  9. - input_type: log
  10.   paths:
  11.     - /usr/src/log/${SERVICE_NAME}_detail.log
  12.   fields:
  13.     service: ${SERVICE_NAME}_detail
  14.   fields_under_root: true

  15. output.elasticsearch:
  16.   hosts: '${ES_HOSTS}'
  17.   username: '${ES_USERNAME}'
  18.   password: '${ES_PASSWORD}'
  19.   protocol: http
  20.   path: /
  21.   loadbalance: true
  22.   worker: 2
  23.   template.enabled: false
  24.   indices:
  25.     - index: "filebeat-${INDEX_NAME}_mpsp-log-%{+yyyy.MM.dd}"
  26.       when.contains:
  27.         service: "${SERVICE_NAME}_mpsp"
  28.     - index: "filebeat-${INDEX_NAME}_detail-log-%{+yyyy.MM.dd}"
  29.       when.contains:
  30.         service: "${SERVICE_NAME}_detail"

       业务与filebreat容器的yaml

  1. --- 业务配置内容省略

  2. - name: filebeat
  3.           image: 10.10.56.148/es-shipper-filebeat/filebeat:5.5.2
  4.           imagePullPolicy: IfNotPresent
  5.           command: ["filebeat"]
  6.           args: ["-e","-path.config=/usr/local/src/"]
  7.           env:
  8.             - name: ES_HOSTS
  9.               value: "10.10.38.18:9200,10.10.38.19:9200"
  10.             - name: SERVICE_NAME
  11.               value: "SaaSOperationPlatService"
  12.             - name: INDEX_NAME
  13.               value: "saasoperationplatservice"
  14.             - name: NODE_NAME
  15.               valueFrom:
  16.                 fieldRef:
  17.                   fieldPath: spec.nodeName
  18.             - name: POD_IP
  19.               valueFrom:
  20.                 fieldRef:
  21.                   fieldPath: status.podIP
  22.             - name: ES_USERNAME
  23.               valueFrom:
  24.                 secretKeyRef:
  25.                   name: essecret
  26.                   key: ES_USERNAME
  27.             - name: ES_PASSWORD
  28.               valueFrom:
  29.                 secretKeyRef:
  30.                   name: essecret
  31.                   key: ES_PASSWORD
  32.           volumeMounts:
  33.             - name: filebeat-config
  34.               mountPath: /usr/local/src
  35.             - name: logdir
  36.               mountPath: /usr/src/log
  37.       imagePullSecrets:
  38.         - name: harbor148key
  39.       volumes:
  40.         - name: my-xxxx-service-config-dir
  41.           configMap:
  42.             name: xxxx-operationplat-service
  43.         - name: logdir
  44.           emptyDir: {}
  45.         - name: filebeat-config
  46.           configMap:
  47.             name: filebeat-configmap
          通过downwad api 我们拿到了node节点的主机名称与POD_IP, 当出现问题时便于排障,通过secret导入所需的用户名密码,测试了新功能,收集日志成功。



                     
                                                                                   umpay_Cail



参考资料:

                                                                                                 
阅读(495) | 评论(0) | 转发(0) |
0

上一篇:ansible ad-hoc 屏蔽危险命令

下一篇:没有了

给主人留下些什么吧!~~