简单实用的Tomcat集群搭建技法及排错
Posted Friends of the wind
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单实用的Tomcat集群搭建技法及排错相关的知识,希望对你有一定的参考价值。
简介
Tomcat集群的主要特性:
负载均衡:把任务均衡地分布到集群环境下的节点服务器,在并发访问量大的环境下,加快了访问响应速度。
高可用:处理某个任务的服务故障,另一服务实体中执行同一任务的服务接着完成任务,保证业务不中断。
一、Tomcat集群配置
- 搭建实验环境
需求:Tomcat实现群集功能,以nginx做代理,同时用zabbix监控Tomcat服务。可以开启多台虚拟机,每台都安装Tomcat服务,用另一种方法,一台服务器安装多个Tomcat服务,以端口号区分,实现群集搭建。
服务 | IP |
---|---|
Tomcat | 192.168.2.130 |
nginx | 192.168.2.134 |
zabbix | 192.168.2.135 |
- tomcat多实例(本质是复制多个tomcat目录,然后修改为不同的端口并启动,代码一致,但是公用一个数据库,一台服务器模拟多个Tomcat服务器)
Tomcat安装教程(安装Tomcat参考上期内容)
在Tomcat服务器操作
复制目录
cd /opt/
cp -a apache-tomcat-8.5.43 tomcat_01
cp -a apache-tomcat-8.5.43 tomcat_02
修改配置文件,修改端口号
sed -i ‘s#8005#8006#g’ tomcat_01/conf/server.xml
sed -i ‘s#8009#8010#g’ tomcat_01/conf/server.xml
sed -i ‘s#8080#8081#g’ tomcat_01/conf/server.xml
sed -i ‘s#8005#8007#g’ tomcat_02/conf/server.xml
sed -i ‘s#8009#8011#g’ tomcat_02/conf/server.xml
sed -i ‘s#8080#8082#g’ tomcat_02/conf/server.xml
启动多实例
若之前启动过Tomcat,会报错建议杀死所有Java进程,再启动
pkill -9 java
/opt/tomcat_01/bin/startup.sh
/opt/tomcat_02/bin/startup.sh
查看服务是否启动,有实例Tomcat_01、Tomcat_02的端口
ss -lntup|grep java - 安装配置nginx服务器(用Nginx做正向代理)
yum方式安装的Nginx配置:
把默认配置改名:
mv default.conf default.conf.bak
创建代理配置文件
vim /etc/nginx/conf.d/proxy.conf
upstream java {
server 192.168.2.130:8081;
server 192.168.2.130:8082;
}
server {
listen 80;
server_name www.jpress.com;
root html;
index index.html index.htm;
location / {
proxy_pass http://java;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
检查配置语法:Nginx -t
启动服务:systemctl start nginx
源码安装Nginx配置方式和此不一样,需要多添加几个配置,省略
源码安装Nginx报错:
解决:另一个配置文件里面,默认指向的是Nginx.conf,改名之后不能找到,要么改成原名Nginx.conf,要么去另一个文件改成proxy.conf
- 网页访问验证:多访问几次
随便开一台虚拟机验证:
修改主机hosts文件:vim /etc/hosts
查看Tomcat服务 日志:实现了负载均衡,默认是轮巡,第一次请求转发给Tomcat_01,第二次请求转发给Tomcat_02
Tomcat_01记录:
Tomcat_02记录:
二、zabbix监控Tomcat
1.配置tomcat服务器
1)安装zabbix-agent服务
vim /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.134.26
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/*.conf
2)配置文件开启远程监控功能(相当于Tomcat打开12345端口,提供给zabbix用来连接监控)
vim /opt/tomcat/bin/catalina.sh
添加如下参数,注意:参数整体放在一行,建议放在最前面(方便阅读教程,分开)
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=tomcat自身IP"
如图:
重启zabbix-agent、Tomcat
systemctl start zabbix-agent
/opt/tomcat/bin/startup.sh
检查端口号:ss -lntup|grep 12345
2.配置zabbix服务器
1)必须有Java环境,并且和当前需要监控的Java版本匹配
若没有使用命令安装:yum install java-1.8.0 -y
2)安装并启动zabbix-java-gateway服务
yum install zabbix-java-gateway.x86_64 -y
报错:国外服务器,不稳定,确定yum源没有配置错误的情况,重复操作一次解决!
解决:yum install zabbix-java-gateway.x86_64 -y
修改zabbix_server.conf 配置文件:添加对Java配置的支持
vim /etc/zabbix/zabbix_server.conf
启动服务:
systemctl start mariadb.service httpd.service zabbix-server.service zabbix-java-gateway.service
3.zabbix管理网页添加监控Tomcat
1)流程:配置-主机-创建主机,填写以下内容
2)点选更新,查看JMX是否绿色。
报错:配置都没问题,但是JMX显示红色
解决:关闭页面,再次访问,即可!更新数据没有传递过来。
3)能看到正常颜色显示JMX,查看Tomcat检测数据
以上是关于简单实用的Tomcat集群搭建技法及排错的主要内容,如果未能解决你的问题,请参考以下文章
Redhat/CentOS7-环境虚拟机简单搭建Nginx+Tomcat负载均衡集群