如何从零部署Tomcat并实现外部监控

本教程适用于通过Tomcat和JRE软件包部署的Centos系统,YUM装的Tomcat当我没说,加油。

前提条件:

防火墙是关的

Selinux是关的

下载Tomcat

1
2
搁这官网下
https://tomcat.apache.org/download-80.cgi

安装JRE环境

没有JRE环境是运行不了tomcat的

1
2
搁这官网下
https://www.oracle.com/java/technologies/downloads/#java8
1
2
3
4
5
下载下来的是个gz的压缩包,这边直接在/user/local目录下解压缩
tar -xvf jdk-8u333-linux-x64.tar.gz -C /usr/software

解压出来个文件夹
jdk1.8.0_333
1
2
去写环境变量
vim /etc/profile

注意jdk1.8.0_333看清除你上面解压出来的名字和具体目录是啥

1
2
3
4
#set java environment
JAVA_HOME=/usr/local/jdk1.8.0_333
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
1
2
应用一下环境变量
source /etc/profile

这时候输入java回车,能看到内容就说明JRE环境准备好了。

安装Tomcat

1
2
3
4
5
6
7
8
反正下载下来的是个gz的压缩包
apache-tomcat-8.5.81.tar.gz

我这边在/user/local目录下解压缩
tar -zxvf apache-tomcat-8.5.81.tar.gz -C /usr/software

解压出来一个文件夹
apache-tomcat-8.5.81
1
2
3
4
5
6
7
初始化Tomcat
cd /usr/local/apache-tomcat-8.5.81/bin
这里面有个
catalina.sh
还有开关用的两个文件
shutdown.sh
startup.sh
1
2
3
4
5
先去把GUI的manager用户密码创建了
cd /usr/local/apache-tomcat-8.5.81/conf

vim tomcat-users.xml
在</tomcat-users>的上面加上以下这些内容:
1
2
<role rolename="manager-gui"/>
<user username="root" password="root" roles="manager-gui"/>
1
2
输入./startup.sh就可以辣
ss -tunlp | grep 8080应该是可以看到端口启用了

顺便说一句,有一个自带的资源使用情况的url,可以输入这个看看
http://192.168.192.132:8080/manager/status

发现管理页面的Manager APP点击403无权限怎么办

选看,没啥事就不用管

1
2
3
vim /usr/local/apache-tomcat-8.5.81/webapps/manager/META-INF
这是因为tomcat进行了ip限制,还需要将限制取消掉。
把最下面括号内的内容删除或者注释掉,比如下面这样,就完事
1
2
<Context antiResourceLocking="false" privileged="true" >
</Context>

配置Tomcat外部监控(无用户名密码验证版)

操作前,先把Tomcat停用,到bin目录

1
./shudown.sh

目前目录在:/usr/local/apache-tomcat-8.5.81/bin

1
2
3
4
5
6
7
vim catalina.sh
输入以下内容
注意先找到
# ----- Execute The Requested Command ----这个位置

192.168.192.132 改成实际配置中的这台服务器的IP地址
12345 改成实际需要的端口号,就是别和在用的重复就行
1
2
3
4
5
6
CATALINA_OPTS="${CATALINA_OPTS} -Djava.rmi.server.hostname=192.168.192.132"
CATALINA_OPTS="${CATALINA_OPTS} -Djavax.management.builder.initial="
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote=true"
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.port=12345"
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.ssl=false"
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.authenticate=false"

现在你可以启动了,到bin目录

1
./startup.sh

看端口号应该可以发现有8080与12345同时存在,说明成功

Jconsole验证

用JDK8的Jconsole进行验证

1
2
使用远程进程,写上地址是192.168.192.132:12345
用户名密码不用输入

监控成功

WRD-NMS验证

网瑞达NMS,中间件监控,Tomcat

1
2
3
4
名称:192.168.192.132
地址:192.168.192.132
端口号:12345
用户名,密码不填

确定,监控成功

配置Tomcat外部监控(有用户名密码验证版)

操作前,先把Tomcat停用,到bin目录

1
./shudown.sh

目前目录在:/usr/local/apache-tomcat-8.5.81/bin

1
2
3
4
5
6
7
vim catalina.sh
输入以下内容
注意先找到
# ----- Execute The Requested Command ----这个位置

192.168.192.132 改成实际配置中的这台服务器的IP地址
12345 改成实际需要的端口号,就是别和在用的重复就行
1
2
3
4
5
6
7
8
CATALINA_OPTS="${CATALINA_OPTS} -Djava.rmi.server.hostname=192.168.192.132"
CATALINA_OPTS="${CATALINA_OPTS} -Djavax.management.builder.initial="
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote=true"
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.port=12345"
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.ssl=false"
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.authenticate=true"
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password"
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access"

注意准备好认证的用户名密码文件:

1
2
3
4
5
6
7
回到这个目录/usr/local/apache-tomcat-8.5.81/conf

cp -ap /usr/local/jdk1.8.0_333/jre/lib/management/jmxremote.access ./
cp -ap /usr/local/jdk1.8.0_333/jre/lib/management/jmxremote.password.template ./

顺便把复制完的jmxremote.password.template改名为jmxremote.password
mv jmxremote.password.template jmxremote.password
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
vim jmxremote.access
到最底下,取消注释,虽然本来就没有注释

就是这个模样:
monitorRole readonly
controlRole readwrite \

vim jmxremote.password

到最底下,取消注释,这个要取消喔

就是这个模样:前面是用户名,后面是密码。用户名必须与access同步,一般来说改个密码差不多得了
monitorRole QED
controlRole R&D

特别注意

权限!权限!权限!一定要把权限改成600
如果权限不对,Tomcat是不会启动的!!!!!!注意下属组权限是root:root就行

现在你可以启动了,到bin目录

1
./startup.sh

看端口号应该可以发现有8080与12345同时存在,说明成功

Jconsole验证

用JDK8的Jconsole进行验证

1
2
3
使用远程进程,写上地址是192.168.192.132:12345
用户名:monitorRole
密码:QED

监控成功

WRD-NMS验证

网瑞达NMS,中间件监控,Tomcat

1
2
3
4
5
名称:192.168.192.132
地址:192.168.192.132
端口号:12345
用户名:monitorRole
密码:QED

确定,监控成功

效果截图

如何从零部署Tomcat并实现外部监控-WRD-NMS
如何从零部署Tomcat并实现外部监控-JVM