既然做运维,软件环境搭建好了,接下来做的就是监控,针对tomcat都监控哪些指标,用哪些软件,什么都有,我觉得这个不错。
监控系统需要能够有效的支持白盒监控和黑盒监控。通过白盒监控能够了解其内部的实际运行状态,通过对监控指标的观察能够预判可能出现的问题,从而对潜在的不确定因素进行优化。而黑盒监控,常见的如HTTP探针,TCP探针等,可以在系统或者服务在发生故障时能够快速通知相关的人员进行处理。
监控的四个黄金指标可以在服务级别帮助我们更好地衡量终端用户体验、服务中断、业务影响等层面的问题。
主要关注以下四种类型的指标:错误,延迟,流量以及饱和度。
常见的500,403,404,访问错误,
延迟,完成一次请求的时间,
通过对黑盒、白盒监控的理解,结合监控的四个黄金指标,针对Tomcat的重要监控指标,可以从以下几个方面进行考虑:
连接:https://zhuanlan.zhihu.com/p/54226097
剩余的就是看脚本的能力了,用zabbix出好看的图,elk也可以搜索日志来实现kibana出图。
连接:https://juejin.im/post/5d691f2df265da03c128af42
这个连接不错https://zhuanlan.zhihu.com/p/52231137
通过设置一些简单权限,您可以立即开始使用Tomcat Manager查看Tomcat和JVM数据。一旦为JMX启用了远程连接,就可以使用JConsole等工具通过简单的图形界面监控Tomcat数据。Tomcat还在其访问和服务器日志中提供有关请求和服务器活动的基本诊断信息。
前期了解了基本的框架,搭建了tomcat9.0版本,因为面试提到了tomcat监控,顺便配置了一下tomcat欢迎界面的三个按钮,因为临时有工作忙活了一天,特别记录一下,网上好多资料都是马马虎虎的,
推荐一个官网的连接,写的比较好
https://tomcat.apache.org/tomcat-9.0-doc/manager-howto.html#Deploy_a_Directory_or_WAR_by_URL
环境
CentOS Linux release 7.3.1611 (Core)
tomcat9.0.27下载
jdk-8u191-linux-x64.tar.gz下载 密码v1hu
首先安装jdk,如果自带的jdk网上提示都要卸载了,我的jdk前期安装的比较乱,所以
rpm -qa | grep jdk
然后找到的已安装的给卸载了
yum remove XXXXX
tar -zxvf jdk-8u191-linux-x64.tar.gz
mv jdk-8u191-linux-x64 jdk13.0.1
添加.bash_profile JAVA_HOME
JAVA_HOME=/root/jdk13.0.1/
export PATH=$PATH:$JAVA_HOME/bin
[root@localhost ~]# tar -zxvf apache-tomcat-9.0.27.tar.gz
[root@localhost ~]# cp apache-tomcat-9.0.27 tomcat9.0.27
这样tomcat解压开就完成了,不用安装,拿来就用
[root@localhost tomcat9.0.27]# sh bin/startup.sh
Using CATALINA_BASE: /root/tomcat9.0.27
Using CATALINA_HOME: /root/tomcat9.0.27
Using CATALINA_TMPDIR: /root/tomcat9.0.27/temp
Using JRE_HOME: /usr
Using CLASSPATH: /root/tomcat9.0.27/bin/bootstrap.jar:/root/tomcat9.0.27/bin/tomcat-juli.jar
Tomcat started.
[root@localhost tomcat9.0.27]#
这样就是安装完成了,标记的地方有三个按钮
server status
manager app
host manager
点击任何一个都会提示
标记了三个地方:
第一行提示是否配置了context.xml 这个提示比较恶心啊 不注意看不知道是哪儿的context.xml,
找了一下
[root@localhost tomcat9.0.27]# find ./ -name context.xml
./conf/context.xml
./webapps/host-manager/META-INF/context.xml
./webapps/manager/META-INF/context.xml一直以为是CATALINA_BASE/conf下的,其实不是,人家英文提示了是manager下的,也就是CATALINA_BASE/webapps/manager/META-INF/context.xml 下的
第二个是配置tomcat-users.xml
第三个是怎么配置tomcat-users.xml
第一配置manger目录下的context.xml
<Context antiResourceLocking="false" privileged="true" >
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="d.\d+.\d+.\d+|::1|0:0:0:0:0:0:0:1" /> -->这一行我加了注释,原文是没有的,这个意思是谁可以访问,
<Manager sessionAttributeValueClassNameFilter="java.lang.(?:Boolean|Integer|Long|Number|String)|org.apache.catalina.filters.CsrfPreventionFilter\$LruCache(?:\$1)?|java.util.(?:Linked)?HashMap"/>
</Context>
第二是 conf/tomcat-users.xml 这个文件是CATALINA_BASE目录
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-status"/>
<role rolename="manager-jmx"/>
<user username="tomcat" password="s3cret" roles="admin-gui,manager-gui,manager-script,manager-status"/>
</tomcat-users> 这个是在tomcat-users标签里边添加的
说明一下这个host manger标签跟上边两个用的不是一个配置,host manger用的是/webapps/host-manager/META-INF/context.xml 个人理解这三个是一个是汇总,另外是针对某一个app的,就像水龙头,开的是最大的口而manger是三分的管,host-manger是五分的管,所以权限可以配置不一样的,
另外配置了一个案例官方的sample 这个是conf/server.xml
<Host name="sample" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。