美文网首页
关于 OpenShift 应用日志落盘实践

关于 OpenShift 应用日志落盘实践

作者: ragpo | 来源:发表于2019-09-29 16:26 被阅读0次

概要

客户应用在容器化上 Openshift的时候日志方面做了些改造,容器化之前在虚拟机的某个路径下读取日志进行故障分析,容器化后通过在web-console查看实时日志和通过EFK查看日志;在这里客户有个需求,主要还是金融行业有这种需求,需要做日志审计,说白了就是把明文的日志文件打包好交给审计部门去审计,这样的话就要求需要单独生成这么一份日志,也方便有问题的时候查看,有些开发与运维人员不喜欢看kibana。我的思路就是将宿主机的路径挂载到容器内,容器将日志打到某个路径下,日志文件就映射到了宿主机的路径下,宿主机配置个定时任务,晚上的时候去收集日志,发送到某个地方去归档。

关于日志文件名称的问题,一般情况下日志文件的名称都是 app.log什么的,如何做到日志文件都一样呢?比如有多个pod,默认生成的日志文件名称是一样的,这时候写日志就会冲突,我的做法是在容器启动的时候,去替换 app.log为pod的名称,比如一个pod的名称叫做ABC,那么日志的名称就叫ABC.log,具体的方法下面会说明。

1、在node节点创建目录
mkdir /APP_LOGS/demo/demo
2、修改目录权限
chmod -R 775 demo
3、登录openshift命令行,oc project切换到指定项目
oc project demo-test
4、给sa分配权限
oc adm policy add-scc-to-user privileged -z default
5、编辑DC yaml文件,与 volumeMounts 同一级,添加以下内容:
          securityContext:
            privileged: true
6、编辑DC yaml文件,添加volume
      volumes:
        - hostPath:
            path: /APP_LOGS/demo/demo
            type: ''
          name: logs
7、编辑DC yaml文件,将volume进行mount
          volumeMounts:
            - mountPath: /projects/logs
              name: logs
8、修改应用日志相关配置文件(configmap),将configmap内的文件名修改为application-bak.yaml文件,并且把日志文件名称使用一个大写单词进行替换,如demoLOG
logging:
  level:
    root: info
  file: demoLOG.log
  path: /projects/logs/

9、编辑DC yaml文件,将application.yml相关的修改为bak
          volumeMounts:
            - mountPath: /projects/configs/application-bak.yml
              name: application-bak-yml
              subPath: application-bak.yml
      volumes:
        - configMap:
            defaultMode: 511
            name: demo-application.yml-v1
          name: application-bak-yml
10、在应用启动脚本里面添加一个sed替换文件,将默认的application-bak.yml内容中的demoLOG修改为pod的主机名,并生成一个新的文件
sed "s#demoLOG#${HOSTNAME}#g" /projects/configs/application-bak.yml >>/projects/configs/application.yml
11、这时候在pod内的/projects/logs/路径下就能看到日志,并且在node宿主机的/APP_LOGS/demo/demo路径下也能看到
pod内:
sh-4.2$ pwd
/projects/logs
sh-4.2$ ls
demo-66-qv92q.log  demo-66-tm9j9.log  demo-67-6xkqm.log  demo-67-8l4sr.log  demo-67-bh87t.log  daily
node宿主机内:
[root@node01 demo]# pwd
/APP_LOGS/demo/demo
[root@node01 demo]# ls
demo-66-qv92q.log  demo-66-tm9j9.log  demo-67-6xkqm.log  demo-67-8l4sr.log  demo-67-bh87t.log  daily

相关文章

网友评论

      本文标题:关于 OpenShift 应用日志落盘实践

      本文链接:https://www.haomeiwen.com/subject/etofpctx.html