• Cacti监控一台Webserver上多个Tomcatport的实现


    由于一台web应用server上面安装了多台tomcat,有多个port。比方默认的8080,还有兴许追加的9100,9300,9500等等。一个cacti_host_template_tomcat_server.xml模板仅仅能指定监控一个tomcat服务port。

    因此假设想要监控一台webserver上的多个tomcatserver,那么就必须另外想办法,依照一个host上面一个模板监控一个tomcat服务来说的话。要想在一个host上面监控多个tomcat服务就须要构建多个模板xml文件。

    眼下想到2种方法:

    (1)。在cacti的web页面上一步步点击button操作加入新的tomcatport监控选项。

    (2),构建一个新的xml模板文件,又一次载入进去。

    准备工作:

    Cacti监控Tomcatserver实现过程:http://blog.csdn.net/mchdba/article/details/29372347 

    Cacti使用安装具体解释: http://blog.csdn.net/mchdba/article/details/27120605


    1 人工在web界面加入多tomcatport监控选项

    看到cacti服务页面有Addbutton,能够一步步加入模板。所以首先在界面上手动加入另外一个tomcat 9500模板,大概过程例如以下所看到的:

    1.1 先建Data Input Source

    Data Input Method 一项选择 step1建立的Tomcat 9500 Status


    1.2 建立 Data Tempate

    在Data Input Method 一项选择 step 1建立的Tomcat 9500 Status


    在这里要特别注意 Data Source Type的选择。是Count还是GAUGE,不要选错。选错了,就是NAN值,图上出不来数据。

    【PS】:这里有14个Data Source Item,手动一个个确实比較麻烦,并且一个port须要建一个,一个portN个服务。一个服务14个port,假设都是手工一个个加入过来。那就到猴年马月了,在加入的过程中。还要注意一些下拉选项。非常消耗时间和精力。

    1.3 建立Data Source


    ​点击Create button,下一步:


    看到有提示准备生成<path_rra>/web-9_bytes_received_568.rrd的rrd画图文件。点击Savebutton保存,看到已经建立好了:


    1.4 建立Graph Template

     


    1.5 建立Graph Tempate


     


    之后,还须要建立显示图画颜色等的Item以及Item Input

    (1)     点击当前页面的Graph Template Items [edit: 9500 Tomcat – Connection Rate] 标题栏后面的Addbutton,參考已经有的Tomcat – Connection Rate来创建一模一样的item。

    (2)     点击 Graph Item Inputs标题栏后面的Addbutton,參考已经有的Tomcat – Connection Rate来加入数据来源选项。

    (3)     确保全部的选项值跟原有的一样,特别是Unit Grid Value (--unit/--y-grid)的值为0。之后点击Savebutton保存。

    1.6 进去Graph Management界面。创建Graph图,例如以下所看到的:


    点击Create之后,进去选择好Graph Item Fields。打开Debug Mode模式,就能够看到RRDTool Commands以及出来的debug图片数据,例如以下所看到的:


    然后,去Graphs界面,查看创建的rate图。例如以下9500port的数据出来了:


    这样的办法尽管笨拙耗时。可是总算一步步来,还是能够加入完毕的。

    2,看到手动在web界面加入cacti的tomcat模板文件。太耗时太麻烦。所以另选途径再构造一份cacti下的tomcat模板文件。

    2.1 直接替换tomcat字符串在后面加9500port

    想要弄亲自构建另外一个tomcat监控的模板文件。能够以如今的cacti_host_template_tomcat_server.xml为基础来实现。打开模板文件,能够看到非常多标签,先检索到带Tomcat的标签,然后保存。在界面载入Import成功后。Console --> Collection Methods --> Data Input 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%';

    +-----+----------------------------------+--------------------+

    | id  | hash                             | name               |

    +-----+----------------------------------+--------------------+

    | 101 | 5a135ee7b52669e39cd51a89a2870f66 | 9500 Tomcat Status |

    | 102 | b58769ff71c16b0126014efdf8f5892c | Tomcat 9500 Status |

    +-----+----------------------------------+--------------------+

    2 rows in set (0.00 sec)

    mysql>

    5a135ee7b52669e39cd51a89a2870f66在xml文件里存在,并且是

    <hash_0100125a135ee7b52669e39cd51a89a2870f66>

                       <name>9500 Tomcat Status</name>

                       <ds>

    ……

    当中’hash_01’是标示,中间的’0012’是cacti版本码,在后面的一系列散乱的字符串’5a135ee7b52669e39cd51a89a2870f66’就是中的后面数字。

    分析到这里。想到决定是否新加一个模板的关键应该就是这些hash数据,假设把模板xml里面的hash值换成新的,是否就能够载入成另外一个新的tomcatport的xml模板呢?试试吧。

    2.3 開始构建新的hash值

    思路:先找出原有的xml模板中的全部hash值,将后四位截取换成tomcatport号9500,

    2.3.1 在linux下用grep命令获得全部cash值

    [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_020012b1ced03706b799b82f1d62146d959500>

      <graph_templates>hash_0000121df1e862da7c09e91e3d9ccc3f359500|hash_0000123810995e1194c890f50a09388efc9500|hash_000012cf60b10d60b07078fe1429a0575c9500|hash_000012892489f6e4de56c

    7762e90d52cc39500</graph_templates>

             </hash_020012b1ced03706b799b82f1d62146d959500>

             <hash_0000121df1e862da7c09e91e3d9ccc3f359500>

                                <hash_100012aa019bdbe34704dbd5d57a3bccef9500>

    <hash_1000121690bcb932496d12d6c31c1614799500>

                                         <task_item_id>hash_08001217cef337fc98ed9edbf507407eb19500</task_item_id>

                                         <gprint_id>hash_060012e9c43831e54eca8069317a2ce8c69500</gprint_id>

                                </hash_1000121690bcb932496d12d6c31c1614799500>

    …..

    看到当中还有很多<task_item_id> </gprint_id >等等之类的标签,直接用shell命令

    :%s/<task_item_id>//以及 :%s/</ gprint _id>//之类的替换命令删除掉。之后全部的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位替换成tomcatport号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出行的9500port文件。在界面载入

       载入完毕后,就会在Console --> Collection Methods --> Data Input Methods里面看到新加入上的9500 Tomcat Status选项,


        记得点击9500超链接进去,把Input String换成9500port的訪问连接,这样这个9500port监控所获取的全部数据都是从9500port的tomcatserver上而来,例如以下图所看到的:


       在Console --> Templates --> Data Templates/Graph Templates上面也能够看到新加入上的9500 Tomcat Status选项,例如以下图所看到的:



       OK,如今就能够去Console --> Create --> Management --> Graph Management加入tomcat另外一个9500port的监控选项。点击button的时候,记得在Selected Graph Template下拉选框上选择9500标示的模板,加入完后例如以下所看到的:


    2.5。报错处理

    有报错例如以下:

    RRDTool Says:

    ERROR: Could not parse line 'GPRINT::MAX:Maximum:%8.2lf %s '

    进去-->Graph Templates

    >    9500 Tomcat - Connection Rate --> Data Source [error_count] --> Item #4: GPRINT (MAX) 打勾选上,例如以下所看到的:


    去Graphs窗体查看效果,在同一个web-9server上,一个基本port8080一个9500port的图像都出来了,例如以下所看到的:


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

    mysql> SELECT * FROM `data_template` WHERE NAME LIKE '%tomcat%';

    +-----+----------------------------------+--------------------+

    | id  | hash                             | name               |

    +-----+----------------------------------+--------------------+

    | 101 | 5a135ee7b52669e39cd51a89a2870f66 | 9500 Tomcat Status |

    | 102 | b58769ff71c16b0126014efdf8f5892c | Tomcat 9500 Status |

    +-----+----------------------------------+--------------------+

    2 rows in set (0.00 sec)

    mysql> SELECT * FROM `data_template` WHERE NAME LIKE '%tomcat%';

    +-----+----------------------------------+--------------------+

    | id  | hash                             | name               |

    +-----+----------------------------------+--------------------+

    | 101 | 5a135ee7b52669e39cd51a89a2870f66 | 9500 Tomcat Status |

    | 102 | b58769ff71c16b0126014efdf8f5892c | Tomcat 9500 Status |

    | 104 | 5a135ee7b52669e39cd51a89a2879500 | 9500 Tomcat Status |

    +-----+----------------------------------+--------------------+

    3 rows in set (0.00 sec)

    看id为101以及104的hash值和name描写叙述,hash值后四位从0f66变成9500了。


    总结:

    全部载入的cacti模板文件里,核心区分点所一个个hash值,假设构造出新的一组hash值,那么载入后就是新的监控选项。

    假如你如今一个webserver上又加入了一个9300的tomcat服务,你仅仅须要把我分享的9500port的xml中的hash末尾9500替换成9300,那么就又是一个新的xml模板。


    以此类推,如今喜欢在一个linuxserver上搭建mysql多实例,那么多实例mysql怎样在cacti下监控。也能够用本文中相似的办法构建新的mysql的多port模板xml文件来又一次载入实现。


     cacti下监控tomcat多port模板文件下载地址:http://download.csdn.net/detail/mchdba/7531125

  • 相关阅读:
    vuex插件
    axios
    token登录验证
    mysql模糊查询
    Koa2+Mysql搭建简易博客
    正则匹配器
    编码
    Maven学习
    防止重复提交保证幂等的几种解决方案
    策略模式优化if-else
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/6722025.html
Copyright © 2020-2023  润新知