Tomcat 配置和监控
2016-03-28 13:14
627 查看
一:jdk和tomcat基础
apache有两种方式运行php,一是使用模块,二是使用fastcgi
nginx也可以通过fastcgi处理动态请求,也可以转发至tomcat
tomcat监控主要是监控JVM,优化主要是外部和内部,内部的有最大空闲,最小空闲等
J2EE:java的企业版和嵌入式
J2SEE:java的标准版
JME2:手机版的java
jdk和jre:jdk是一个开发工具包,一般会包含jre,jre仅是一个java运行环境,sdk是一个开发工具
tomcat 下载地址:
http://tomcat.apache.org/download-80.cgi
jdk下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
二:通过saltstack 批量安装jdk和tomcat,并配置环境变量:
1、salt客户端:
yum install salt-minion -y
vim /etc/salt/minion
/etc/init.d/salt-minion start
2、salt 服务端:
yum install salt-minion -y
vim /etc/salt/master
cd /srv/
mkdir salt
/etc/init.d/salt-master restart
salt-key -A
cd /srv/salt/
[root@node5 salt]# mkdir jdk tomcat
[root@node5 salt]# vim jdk/install.sls
[root@node5 salt]# mkdir jdk/files
[root@node5 salt]# cp /root/jdk-8u77-linux-x64.tar.gz jdk/files/
[root@node5 salt]# mkdir tomcat/files
[root@node5 salt]# cp /root/apache-tomcat-8.0.33.tar.gz tomcat/files/
[root@node5 salt]# vim top.sls
执行即结果:
[root@node5 salt]# salt "*" state.highstate
三:客户端验证:
server.xml ,对服务和引擎的配置文件:
tomcat-users.xml web管理,不建议打开:
[root@node6 tomcat]# vim conf/tomcat-users.xml
四:tomcat安全规范:
1.telnet管理端口保护
2.ajp连接端口保护
3.禁用管理端
4.降权启动
5.文件列表访问控制
6.版本信息隐藏
7.server header重写
8.启停脚本权限回收
9.访问日志格式规范
五:tomcat监控:
tomcat监控主要是监控jvm,JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
jps命令:是jdk包里面的,只显示java进程
jstack:jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:
如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的
JVM 故障排除:
1、jps获取java进程的PID
2、jstack $PID >> xx.txt 导出占用CPU比较高的进程线程栈
3、top -H -p $PID #查看对应进程的那个线程占用CPU过高
#这里假如其中一个线程ID 为9235的CPU使用率高
4、echo "obase=16;$PID"|bc #将线程较高的的PID转换为16进制并在输出,是因为步骤2是16进制的
#9235的16进制为2413
5、在第二步导出的xx.txt中查找转换为16进制的线程PID,找到对应的线程栈
[root@node6 tomcat]# vim 9213.txt #找到相对应的16进制2413即可
6、分析负载较高的线程栈都是什么业务操作,优化程序并处理问题。
zabbix监控tomcat:
从Zabbix 2.0开始,软件包中自带了一个用于监控JMX应用的程序,称为"Zabbix Java GateWay",非常方便使用其来监控JMX
六:tomcat优化:
外部调优:
操作系统:
JVM:
代理-Nginx:
内部调优:
禁用DNS查询:
调整线程数:
压缩
七:通过zabbix监控tomcat
Server端配置java tomcat gateway:
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5
apache有两种方式运行php,一是使用模块,二是使用fastcgi
nginx也可以通过fastcgi处理动态请求,也可以转发至tomcat
tomcat监控主要是监控JVM,优化主要是外部和内部,内部的有最大空闲,最小空闲等
J2EE:java的企业版和嵌入式
J2SEE:java的标准版
JME2:手机版的java
jdk和jre:jdk是一个开发工具包,一般会包含jre,jre仅是一个java运行环境,sdk是一个开发工具
tomcat 下载地址:
http://tomcat.apache.org/download-80.cgi
jdk下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
二:通过saltstack 批量安装jdk和tomcat,并配置环境变量:
1、salt客户端:
yum install salt-minion -y
vim /etc/salt/minion
master: 192.168.10.205 #salt 服务器的地址
/etc/init.d/salt-minion start
2、salt 服务端:
yum install salt-minion -y
vim /etc/salt/master
file_roots: #指定工作目录 base: - /srv/salt
cd /srv/
mkdir salt
/etc/init.d/salt-master restart
salt-key -A
cd /srv/salt/
[root@node5 salt]# mkdir jdk tomcat
[root@node5 salt]# vim jdk/install.sls
jdk-install: file.managed: - name: /usr/local/src/jdk-8u77-linux-x64.tar.gz - source: salt://jdk/files/jdk-8u77-linux-x64.tar.gz - user: root - group: root - mode: 755 cmd.run: - name: cd /usr/local/src/ && tar xvf jdk-8u77-linux-x64.tar.gz && mv jdk1.8.0_77 /usr/local/jdk && chown -R root.root /usr/local/jdk -R - unless: test -d /usr/local/jdk - require: - file: jdk-install jdk-conconfig: file.append: - name: /etc/profile - text: - export JAVA_HOME=/usr/local/jdk - export PATH=$JAVA_HOME/bin:$PATH - export PATH=$TOMCAT_HOME/bin:$PATH
[root@node5 salt]# mkdir jdk/files
[root@node5 salt]# cp /root/jdk-8u77-linux-x64.tar.gz jdk/files/
include: - jdk.install tomcat-install: file.managed: - name: /usr/local/src/apache-tomcat-8.0.33.tar.gz - source: salt://tomcat/files/apache-tomcat-8.0.33.tar.gz - user: root - group: root - mode: 755 cmd.run: - name: cd /usr/local/src && tar xvf apache-tomcat-8.0.33.tar.gz && mv apache-tomcat-8.0.33 /usr/local/tomcat && chown -R root.root /usr/local/tomcat - unless: test -d /usr/local/tomcat - require: - file: tomcat-install tomcat-config: file.append: - name: /etc/profile - text: - export TOMCAT_HOME=/usr/local/tomcat
[root@node5 salt]# mkdir tomcat/files
[root@node5 salt]# cp /root/apache-tomcat-8.0.33.tar.gz tomcat/files/
[root@node5 salt]# vim top.sls
base: '*': - tomcat.install
执行即结果:
[root@node5 salt]# salt "*" state.highstate
三:客户端验证:
server.xml ,对服务和引擎的配置文件:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" reloadable="true" docBase="/opt/apache-tomcat-6.0.37/webapps/mobile/" />
tomcat-users.xml web管理,不建议打开:
[root@node6 tomcat]# vim conf/tomcat-users.xml
<role rolename="manager-gui"/> <role rolename="admin-gui"/> <user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
四:tomcat安全规范:
1.telnet管理端口保护
1、<Server port="8005" shutdown="SHUTDOWN"> #将端口和 命令改了,或不启用,因为telnet到本端口可以使用默认SHUTDOWN将tomcat关闭。 #例如: [root@node6 tomcat]# ss -tnl | grep 8080 LISTEN 0 100 :::8080 :::* [root@node6 tomcat]# telnet 127.0.0.1 8005 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]' SHUTDOWN #会将tomcat服务停止 Connection closed by foreign host. [root@node6 tomcat]# ss -tnl | grep 8080
2.ajp连接端口保护
#更改ajp的端口,在8000-8999之间,如不使用ajp可以禁用
3.禁用管理端
#可以删除webapp里面的所有默认目录文件
4.降权启动
#使用非root启动tomcat
5.文件列表访问控制
#conf/web.conf文件中default部分listing的配置必须为false,false为不能列出目录文件,true为允许,默认为false
6.版本信息隐藏
7.server header重写
#在server.conf中的http部分加入 server=“xxx”,隐藏tomcat包头息信息 <Connector port="8080" protocol="HTTP/1.1" server="webserver" connectionTimeout="20000" redirectPort="8443" />
8.启停脚本权限回收
#将启动和关闭的脚本权限改为744
9.访问日志格式规范
五:tomcat监控:
tomcat监控主要是监控jvm,JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
jps命令:是jdk包里面的,只显示java进程
-m输出传递给main方法的参数,如果是内嵌的JVM则使出为null -l 输出应用程序主类的完整包名,或者是应用程序JAR文件的完整路径 -v 输出传给JVM的参数
jstack:jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:
如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的
jstack [ option ] pid jstack [ option ] executable core jstack [ option ] [server-id@]remote-hostname-or-IP 1)、options: executable Java executable from which the core dump was produced. (可能是产生core dump的java可执行程序) core 将被打印信息的core dump文件 remote-hostname-or-IP 远程debug服务的主机名或ip server-id 唯一id,假如一台主机上多个远程debug服务 2)、基本参数: -F当’jstack [-l] pid’没有相应的时候强制打印栈信息 -l长列表. 打印关于锁的附加信息,例如属于java.util.concurrent的ownable synchronizers列表. -m打印java和native c/c++框架的所有栈信息. -h | -help打印帮助信息 pid 需要被打印配置信息的java进程id,可以用jps查询.
JVM 故障排除:
1、jps获取java进程的PID
2、jstack $PID >> xx.txt 导出占用CPU比较高的进程线程栈
3、top -H -p $PID #查看对应进程的那个线程占用CPU过高
#这里假如其中一个线程ID 为9235的CPU使用率高
4、echo "obase=16;$PID"|bc #将线程较高的的PID转换为16进制并在输出,是因为步骤2是16进制的
#9235的16进制为2413
5、在第二步导出的xx.txt中查找转换为16进制的线程PID,找到对应的线程栈
[root@node6 tomcat]# vim 9213.txt #找到相对应的16进制2413即可
6、分析负载较高的线程栈都是什么业务操作,优化程序并处理问题。
zabbix监控tomcat:
从Zabbix 2.0开始,软件包中自带了一个用于监控JMX应用的程序,称为"Zabbix Java GateWay",非常方便使用其来监控JMX
六:tomcat优化:
外部调优:
操作系统:
JVM:
代理-Nginx:
内部调优:
禁用DNS查询:
调整线程数:
压缩
七:通过zabbix监控tomcat
Server端配置java tomcat gateway:
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5
相关文章推荐
- How to install Tomcat 8 on a CentOS 6 VPS
- win10配置tomcat7
- Linux下安装Tomcat
- tomcat源代码解读
- 将tomcat添加为linux系统服务 开机自启动
- Tomcat 管理时需要登录信息验证
- linux下启动tomcate
- Tomcat7.0源码分析——类加载体系
- eclipse远程调试Tomcat方法[转]
- Tomcat性能调优理论
- linux系统使用tomcat服务器部署web项目
- 在一台服务器运行两个或多个tomcat
- solr5.5教程-tomcat布署
- IDEA -- IntelliJ IDEA14 创建JavaWeb工程 配置Tomcat 部署 运行
- nginx 与 tomcat 集群 一二事 (0) - 简单介绍
- 深入理解Tomcat之七:详解URL请求
- 深入理解Tomcat系列之六:Servlet工作原理
- 深入理解Tomcat系列之五:Context容器和Wrapper容器
- 深入理解Tomcat系列之四:Engine和Host容器
- 深入理解Tomcat系列之三:Connector