Linux下使用Tomcat容器部署XXL客户端出现的问题

遇到的问题:公司因为断电导致内部服务器全部宕机,来电服务器全部自动重启之后,再去每台服务器中启动各种中间件,在启动完XXL服务器之后发现依然无法登陆客户端,以前碰到过这种问题是因为防火墙的问题,这次也想当然的以为是防火墙未关闭导致的问题,所以很轻松的去搞定了防火墙,并且一劳永逸的将防火墙开机自启动去掉,但是重新刷新XXL管理页面依然无法登陆,此时就很懵逼了,各种骚操作用上,然而然并卵。直到以为是自己设置的防火墙开机自启动影响了所以去执行 systemctl enabled firewalld.service 此时Linux报错“no space left on device”(磁盘空间不足),才反映过来是XXL运行日志太大而一直未清理导致的问题出现。

解决方法:为了使系统尽快运行起来,所以很简单粗暴的清空了tomcat运行日志的内容,但是如果下次再出现这种情况每次都需要手动操作就很浪费时间,所以就直接给XXL容器设置了开机自动启动,自动清理Tomcat日志,此次主要是为了记录实际操作过程的步骤以及碰到的问题。

一:关于防火墙的问题

1.如果不需要考虑太多安全性能方面的问题,建议可以直接关闭防火墙并设置为开机禁用。

  (1)设置开机启用防火墙:systemctl enable firewalld.service

(2)设置开机禁用防火墙:systemctl disable firewalld.service

(3)启动防火墙:systemctl start firewalld

(4)关闭防火墙:systemctl stop firewalld

(5)检查防火墙状态:systemctl status firewalld 

2.如果需要考虑安全性能问题,那就将当前Tomcat应用端口加入到防火墙通过端口中设置中。

(1)查看防火墙状态:firewall-cmd --state

(2)重新加载配置:firewall-cmd --reload

(3)查看开放的端口:firewall-cmd --list-ports

(4)开启防火墙端口:firewall-cmd --zone=public --add-port=9200/tcp --permanent

  firewall-cmd --zone=public --add-port=9000-9999/tcp --permanen

  命令含义:

  –zone #作用域

  –add-port=9200/tcp #添加端口,格式为:端口/通讯协议

  –add-port=9000-9999/tcp #指定端口范围通过防火墙,格式为:开始端口-结束端口/通讯协议

  –permanent #永久生效,没有此参数重启后失效

  注意:添加端口后,必须使用命令firewall-cmd --reload重新加载一遍才会生效

(5)关闭防火墙端口:firewall-cmd --zone=public --remove-port=9200/tcp --permanent

二:关于定时清除Tomcat运行日志的问题

1.手动清空日志文件

(1)先切换到tomcat日志目录

   cd /home/tomcat8/apache-tomcat-8.5.56/logs/ 

(2)查看tomcat输出日志大小

  du -sh catalina.out

(3)清空日志文件

  echo "" > catalina.out

2.使用脚本定时清理日志

(1)进入bin目录创建auto-deal-log.sh脚本

  echo '' > auto-deal-log.sh

(2)编写auto-deal-log.sh脚本

1  # 复制日志文件内容到新的文件中
2  cp /home/tomcat8/apache-tomcat-8.5.56/logs/catalina.out  /home/tomcat8/apache-tomcat-8.5.56/logs/catalina_`date -d '-1 days' +%Y%m%d`.log
3 
4  # 清空tomcat默认日志输出文件
5  echo "" > /home/tomcat8/apache-tomcat-8.5.56/logs/catalina.out
6 
7  # 查找并清理7天前的日志文件 
8  find /home/tomcat8/apache-tomcat-8.5.56/logs -mtime +7 -name "catalina_*.log" -exec rm -rf {} \;

 

(3)脚本授权

  chmod -R 777 /opt/sh/auto-deal-log.sh # 授权,便于执行脚本

 

 

(4)如果是生产环境建议备份日志,

   cp /home/tomcat8/apache-tomcat-8.5.56/logs/catalina.out /home/logs/backup_`date -d '-1 days' +%Y%m%d`.log

(5)测试脚本

   sh /home/tomcat8/apache-tomcat-8.5.56/bin/auto-deal-log.sh

3.设置crontab指令,指定每日定时任务 

 

1 crontab -l # 查看当前是否存在任务
2 crontab -e # 编辑 指定执行哪个脚本以及执行时间
3 0 0 * * * /opt/sh/auto-deal-log.sh     # 每日凌晨执行分割日志脚本
4 
5 
6 ps:A.编辑完成后,:wq保存并退出  

 

到这里定时清理日志已经完成了整个操作流程,以后再也不用担心会被日志把磁盘空间给占满了

三:关于设置Tomcat开机自启动的问题

(1)在/etc/init.d下新建一个文件tomcat(需要root操作权限)

  vi /etc/init.d/tomcat

(2)编辑上面创建的文件

 1 #!/bin/sh
 2 # chkconfig: 345 99 10
 3 # description: Auto-starts tomcat
 4 # /etc/init.d/tomcat
 5 # Tomcat auto-start
 6 # Source function library.
 7 #. /etc/init.d/functions
 8 # source networking configuration.
 9 #. /etc/sysconfig/network
10 RETVAL=0
11 export JRE_HOME=/home/jdk1.8.0_111
12 export CATALINA_HOME=/home/tomcat8/apache-tomcat-8.5.56
13 export CATALINA_BASE=/home/tomcat8/apache-tomcat-8.5.56
14 start()
15 {
16         if [ -f $CATALINA_HOME/bin/startup.sh ];
17           then
18             echo $"Starting Tomcat"
19                 $CATALINA_HOME/bin/startup.sh
20             RETVAL=$?
21             echo " OK"
22             return $RETVAL
23         fi
24 }
25 stop()
26 {
27         if [ -f $CATALINA_HOME/bin/shutdown.sh ];
28           then
29             echo $"Stopping Tomcat"
30                 $CATALINA_HOME/bin/shutdown.sh
31             RETVAL=$?
32             sleep 1
33             ps -fwwu tomcat | grep apache-tomcat|grep -v grep | grep -v PID | awk '{print $2}'|xargs kill -9
34             echo " OK"
35             # [ $RETVAL -eq 0 ] && rm -f /var/lock/...
36             return $RETVAL
37         fi
38 }
39 
40 case "$1" in
41  start)
42         start
43         ;;
44  stop)
45         stop
46         ;;
47 
48  restart)
49          echo $"Restaring Tomcat"
50          $0 stop
51          sleep 1
52          $0 start
53          ;;
54  *)
55         echo $"Usage: $0 {start|stop|restart}"
56         exit 1
57         ;;
58 esac
59 
60 exit $RETVAL

(3)设置权限

  chmod +x /etc/init.d/tomcat

(4)设置开机自启动

  chkconfig tomcat on

(5)验证是否设置成功

  chkconfig --list

重启服务器(reboot),然后查看tomcat端口是否存在

 

 

 

 

 

 

 

 

 

 

 

posted @ 2020-09-18 16:09  MR饶  阅读(278)  评论(0编辑  收藏  举报