Tomcat Manager 是 Tomcat 的运维管理界面,可以远程部署我们自己的应用、监控应用的运行情况。
今天我要向大家介绍如何通过 Manager 界面访问 Tomcat 日志以及指定目录下的文件,实现远程运维的需求。
安装 JDK
Tomcat 依赖 JDK,所以先安装 JDK,以下操作使用 root 用户。
- 创建 jdk 安装目录
mkdir -p /uer/local/jdk
- 上传 jdk-8u25-linux-x64.tar.gz 到上述目录
- 解压
tar -xvzf jdk-8u25-linux-x64.tar.gz> 得到 jdk1.8.0_25
- 设置系统环境变量
vi /etc/profile# 按 i 进入编辑模式,新增JAVA_HOME=/usr/local/jdk/jdk1.8.0_25/CLASSPATH=.:$JAVA_HOME/lib/tools.jarPATH=$JAVA_HOME/bin:$PATHexport PATH JAVA_HOME CLASSPATH# 按 Esc 退出编辑模式# 输入 :wq! 保存退出
- 让环境变量立即生效
source /etc/profile
- 查看 jdk 版本
java -version
出现图片中内容,即表示 jdk 已安装成功!
安装 Tomcat
- 使用 root 用户新建一个用户,默认用户目录为:/home/alex/
useradd alex
- 设置用户密码
passwd alex
- 切换为 alex 用户
su - alex
- 上传 Tomcat 安装包到用户目录下即:/home/alex/
- 解压
tar -xvzf apache-tomcat-8.5.42.tar.gz> 得到 apache-tomcat-8.5.42
- 赋予脚本执行权限
cd apache-tomcat-8.5.42/binchmod +x *.sh
- 启动 Tomcat
sh startup.sh
- 查看线程
ps -ef|grep java
- 浏览器访问 IP:8080 端口出现管理界面,表示 Tomcat 启动成功。
配置 Manager
此时若直接点击 【Manager App】会报 :403 Access Denied,页面提示需要添加 Tomcat 管理用户才能访问。
- 修改 tomcat-users.xml,添加Tomcat管理用户
cd /home/alex/apache-tomcat-8.5.42/confvi tomcat-users.xml# 按 i 进入编辑模式,新增# 按 Esc 退出编辑模式# 输入 :wq! 保存退出
- 修改 manager 的 context.xml ,默认只能本机访问,改为所有IP都可以访问
cd /home/alex/apache-tomcat-8.5.42/webapps/manager/META-INFvi context.xml# 按 i 进入编辑模式,修改 allow原来的:allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1"改为:allow="^.*$"# 按 Esc 退出编辑模式# 输入 :wq! 保存退出
- 重启Tomcat
cd /home/alex/apache-tomcat-8.5.42/bin# 停止sh shutdown.sh# 重启sh startup.sh
- 再次访问 Manager,出现登录界面
配置日志访问目录
走到这一步,我们这篇文章主题才真正开始
- 修改 tomcat/conf/web.xml,开启访问静态资源开关
- 修改 tomcat/conf/server.xml,新增 tomcat 日志访问路径
- 重启Tomcat
- 查看管理界面,已经有我们的tomcat 日志路径了
点击进入,显示了tomcat/logs 下面的文件
点击 catalina.out 即可查看日志内容。
以上,便实现了通过 tomcat 管理界面获取日志文件的需求。同理,server.xml里也可以设置其它文件地址,实现远程访问的效果。
附:使用Linux部署的同学,可能会出现下面两个问题
问题1:8080 端口不能访问
如果应用启动正常(线程存在、日志没有报错),那基本就是服务器防火墙没有开启 8080端口访问权限
# 使用 root 用户添加端口访问权限/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
问题2:Manger 界面加载很慢,需要十几秒钟
先说解决办法:出现这种问题,一般是我们重新设置了服务器主机名,但没有在hosts里配置映射信息。
- 查看主机名
hostname> 我这台服务器的主机名为:master
- 修改hosts
vi /etc/hosts在后面追加127.0.0.1 master
这个问题也是最近我生产部署项目出现的,上网查了资料也没有相关说明,排查了好久,最后不得已反编译了Manger,在源码中加了日志,才发现原因。
通过在源码中输出执行步骤,发现是获取host的巨慢:
使用 root 用户查看 /etc/hosts 配置,发现 主机名没有相应配置。
新增主机名映射
修改hosts后,7ms 即加载完页面,说明改对了,至此问题解决。