设为首页 收藏本站
查看: 1332|回复: 0

[经验分享] cacti监控一个web上的多个tomcat-7240173

[复制链接]

尚未签到

发表于 2018-12-7 06:11:45 | 显示全部楼层 |阅读模式
  cacti监控一个web上的多个tomcat
  第二部分
  2,看到手动在web界面添加cacti的tomcat模板文件,太耗时太麻烦,所以另选途径再构造一份cacti下的tomcat模板文件。
  2.1 直接替换tomcat字符串在后面加9500端口
  想要弄亲自构建另外一个tomcat监控的模板文件,可以以现在的cacti_host_template_tomcat_server.xml为基础来实现。打开模板文件,可以看到很多标签,先检索到带Tomcat的标签,替换成Tomcat 9500然后保存,在界面加载Import成功后,Console --> Collection Methods --> DataInput Methods里面还是只有一个选项9500 Tomcat Status,原来的Tomcat Status没有了,也就是说原来的Tomcat Status被后来的9500的模板xml直接覆盖了,这一种方式走不通。
  2.2 继续从后台的cacti数据库里面的数据进行研究
  研究tomcat的模板配置文件,进去cacti后台数据库的模板表里,查看导入的tomcat模板表:

  •   mysql> SELECT * FROM `data_template` WHERE NAME LIKE \'%tomcat%\';
  •   +-----+----------------------------------+--------------------+

  •   |>
  •   +-----+----------------------------------+--------------------+
  •   | 101 | 5a135ee7b52669e39cd51a89a2870f66 | 9300 Tomcat Status |
  •   | 102 | b58769ff71c16b0126014efdf8f5892c | Tomcat Status |
  •   +-----+----------------------------------+--------------------+
  •   2 rows in set (0.00 sec)

  •   mysql>
  5a135ee7b52669e39cd51a89a2870f66在xml文件中存在,而且是
  
  9500Tomcat Status
  
  ……
  其中’hash_01’是标示,中间的’0012’是cacti版本号码,在后面的一系列散乱的字符串’5a135ee7b52669e39cd51a89a2870f66’就是中的后面数字。
  分析到这里,想到决定是否新加一个模板的关键应该就是这些hash数据,如果把模板xml里面的hash值换成新的hash值,是否就可以加载成另外一个新的tomcat端口的xml模板呢?试试吧。
  2.3 开始构建新的hash
  思路:先找出原有的xml模板中的所有hash值,将后四位截取换成tomcat端口号9500。
  2.3.1 linux下用grep命令获得所有cash
  执行shell命令取得锁喉hash数据行:

  •   [root@mysqlvm2 ~]# more cacti_host_template_tomcat_server.xml |grep hash > cacti_hash.xml
  这里的cacti_hash.xml里面包含的内容如下所示:

  •   [root@mysqlvm2 ~]# more cacti_hash2.xml |more
  •   
  •   hash_0000121df1e862da7c09e91e3d9ccc3f359500|hash_0000123810995e1194c890f50a09388efc9500|hash_000012cf60b10d60b07078fe1429a0575c9500|hash_000012892489f6e4de56c
  •   7762e90d52cc39500
  •   
  •   
  •   
  •   …
  •   
  •   hash_08001217cef337fc98ed9edbf507407eb19500
  •   hash_060012e9c43831e54eca8069317a2ce8c69500
  •   
  •   …..
  看到其中还有许多等等之类的标签,直接用shell命令
  :%s///以及 :%s///之类的替换命令删除掉,之后所有的xml标签都替换掉了,只剩下所有的hash值。这里注意对于几个用|符号链接起来的hash值,需要单独去掉|符号再换行,确保一个hash值是一行。
  最终得到一行一行的hash值的cacti_hash.xml文件。
  2.3.2 遍历hash值文件,生成新的hash值xml模板。
  原理是写shell脚本遍历cacti_hash.xml文件,遍历hash值,然后去原来的模板文件里面cacti_host_template_tomcat9500_server.xml找到对于的hash值,将后4位替换成tomcat端口号9500,shell命令如下所示:
  (1),Copy一个副本xml文件

  •   [root@mysqlvm2 ~]#
  •   cp cacti_host_template_tomcat_server.xml cacti_host_template_tomcat9500_server.xml
  (2),写一个循环shell脚本

  •   [root@mysqlvm2 ~]# more cacti2.sh
  •   for i in `cat cacti_hash.xml`
  •   do
  •   # echo $i;
  •   port=\'9500\';
  •   new_hash=${i:0:39}$port;
  •   # echo $new_hash;
  •   sed -i \"s/$i/$new_hash/\" cacti_host_template_tomcat9500_server.xml
  •   done;
  •   [root@mysqlvm2 ~]#
  (3),执行shell命令,生成新的9500模板
  [root@mysqlvm2 ~]# sh cacti2.sh
  2.4 copy出行的9500端口文件,在界面加载
  加载完成后,就会在Console --> Collection Methods --> Data InputMethods里面看到新添加上的9500 Tomcat Status选项,

  记得点击9500超链接进去,把Input String换成9500端口的访问连接,这样这个9500端口监控所获取的所有数据都是从9500端口的tomcat服务器上而来,如下图所示:

  在Console --> Templates --> Data Templates/GraphTemplates上面也可以看到新添加上的9500 Tomcat Status选项,如下图所示:


  OK,现在就可以去Console--> Create --> Management --> Graph Management添加tomcat另外一个9500端口的监控选项,点击按钮的时候,记得在Selected Graph Template下拉选框上选择9500标示的模板,添加完后如下所示:

  2.5,报错处理
  有报错如下:
  RRDTool Says:
  ERROR: Could notparse line 'GPRINT::MAX:Maximum\:%8.2lf %s\n'
  进去 Console-->Graph Templates --> 9500Tomcat - Connection Rate --> Data Source [error_count] --> Item #4:GPRINT (MAX) 打勾选上,如下所示:

  去Graphs窗口查看效果,在同一个web-9服务器上,一个基本端口8080一个9500端口的图像都出来了,如下所示:

  最后在进入后台cacti数据库去查看下我们的验证:

  •   mysql> SELECT * FROM `data_template` WHERE NAME LIKE \'%tomcat%\';
  •   +-----+----------------------------------+--------------------+

  •   |>
  •   +-----+----------------------------------+--------------------+
  •   | 101 | 5a135ee7b52669e39cd51a89a2870f66 | 9300 Tomcat Status |
  •   | 102 | b58769ff71c16b0126014efdf8f5892c | Tomcat Status |
  •   +-----+----------------------------------+--------------------+
  •   2 rows in set (0.00 sec)

  •   mysql> SELECT * FROM `data_template` WHERE NAME LIKE \'%tomcat%\';
  •   +-----+----------------------------------+--------------------+

  •   |>
  •   +-----+----------------------------------+--------------------+
  •   | 101 | 5a135ee7b52669e39cd51a89a2870f66 | 9300 Tomcat Status |
  •   | 102 | b58769ff71c16b0126014efdf8f5892c | Tomcat Status |
  •   | 104 | 5a135ee7b52669e39cd51a89a2879500 | 9500 Tomcat Status |
  •   +-----+----------------------------------+--------------------+
  •   3 rows in set (0.00 sec)
  看id为101以及104的hash值和name描述,hash值后四位从0f66变成9500了。
  总结:
  所有加载的cacti模板文件中,核心区分点所一个个hash值,如果构造出新的一组hash值,那么加载后就是新的监控选项。
  假如你现在一个web服务器上又添加了一个9300的tomcat服务,你只需要把我分享的9500端口的xml中的hash末尾9500替换成9300,那么就又是一个新的xml模板。
  以此类推,现在喜欢在一个linux服务器上搭建mysql多实例,那么多实例mysql如何在cacti下监控,也可以用本文中类似的办法构建新的mysql的多端口模板xml文件来重新加载实现。
  附件如下:


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-644072-1-1.html 上篇帖子: tomcat 登录时用户名和密码的查看及设置 下篇帖子: Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web mod
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表