Kubernetes 1.5 实践Tomcat日志NFS服务持久化

26 篇文章 0 订阅
17 篇文章 0 订阅
在配置Kubernetes1.5搭建内部测试环境后,日志一直是一个不好解决的问题,由于许多开发人员和测试人员对ELK不适应,推广起来也很费力。为此,在创建Tomcat时,也将日志持久出来,供开发人员和测试人员使用

使用ELK管理日志,

环境说明

*Kubernet 1.5, Centos 7

NFS服务器配置

1. 软件安装

服务安装
使用yum安装

yum -y install nfs-utils rpcbind  

2. 软件配置

修改/etc/exports,加入以下内容

/opt/tomcat7logs *(rw,no_root_squash,no_all_squash,sync)

3. 使配置生效

使用下面命令让配置生效。

exportfs -rv

4.节点操作

在每一个节点需要nfs-utils

yum install nfs-utils -y  


Tomcat配置

此部分参照网址https://my.oschina.net/newlife111/blog/729921

修改Tomcat配置

修改logging.properties

通过pod名和pod命名空间变量,唯一标识输出文件名。
给所有的log前缀加上{my.pod.name}_{my.pod.namespace}
比如:

1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina. 

改成

1catalina.org.apache.juli.AsyncFileHandler.prefix = ${my.pod.name}_${my.pod.namespace}_catalina.

修改 server.xml

也是通过pod名和pod命名空间变量,唯一标识输出文件名,这里标识的是localhost-access日志文件。
找到

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

这个节点,改成

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="${my.pod.name}_${my.pod.namespace}_localhost-access-log" suffix=".log"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

修改 catalina.sh

通过容器传入的变量在tomcat中并不能直接使用,需要在tomcat的启动脚本中,在java的启动命令中加上-D选项。找到所有有-Dcatalina.base=”\”$CATALINA_BASE\”” 的上方或下方

-Dmy.pod.name="$MY_POD_NAME" 
-Dmy.pod.namespace="$MY_POD_NAMESPACE" 

创建Deployment

在yaml文件中加入变量和nfs挂载

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: tomcat-dm
spec:
  replicas: 3
  selector:
    matchLabels:
      name: tomcat-dm
  template:
    metadata:
      labels:
        name: tomcat-dm
    spec:
      containers:
      - name: tomcat
        image: 192.168.7.248:5002/tomcat:1.1
        imagePullPolicy: Always
        volumeMounts:
        - name: logstomcat7
          mountPath:  /opt/tomcat7/logs
          readOnly: false
        env:
        - name: MY_POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: MY_POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        ports:
        - containerPort: 8080
      volumes:
      - name: logstomcat7
        nfs:
          server: 192.168.7.206
          path: /opt/tomcat7logs

测试完成

有什么问题可以直接评论.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值