阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Cacti监控一台Web服务器上多个Tomcat端口的实现

104次阅读
没有评论

共计 8699 个字符,预计需要花费 22 分钟才能阅读完成。

因为一台 web 应用服务器上面安装了多台 tomcat,有多个端口,比如默认的 8080,还有后续追加的 9100,9300,9500 等等。一个 cacti_host_template_tomcat_server.xml 模板只能指定监控一个 tomcat 服务端口。

因此如果想要监控一台 web 服务器上的多个 tomcat 服务器,那么就必须另外想办法,按照一个 host 上面一个模板监控一个 tomcat 服务来说的话,要想在一个 host 上面监控多个 tomcat 服务就需要构建多个模板 xml 文件。目前想到 2 种方法:

(1),在 cacti 的 web 页面上一步步点击按钮操作添加新的 tomcat 端口监控选项。

(2),构建一个新的 xml 模板文件,重新加载进去。

准备工作:

Cacti 监控 Tomcat 服务器实现过程:http://www.linuxidc.com/Linux/2014-06/102897.htm

Cacti 使用安装详解: http://www.linuxidc.com/Linux/2014-05/102361.htm

 

相关阅读

RHEL6.4 中使用 Cacti+Spine 监控主机实现发送邮件报警 http://www.linuxidc.com/Linux/2013-11/92795.htm

RHEL6.4 中使用 Cacti+Spine 监控远程主机 http://www.linuxidc.com/Linux/2013-11/92796.htm

CentOS 5.5 完整安装 Cacti+Spine http://www.linuxidc.com/Linux/2011-12/49701.htm

CentOS 6 下 Cacti 搭建文档 http://www.linuxidc.com/Linux/2013-06/86595.htm

RHEL5.9 下 Cacti 监控部署详解 http://www.linuxidc.com/Linux/2013-06/85427.htm

CentOS 6.3 下 Cacti 安装详解 http://www.linuxidc.com/Linux/2013-05/84279.htm

CentOS Linux 下快速安装配置 Cacti 中文版 http://www.linuxidc.com/Linux/2013-03/81627.htm

1 人工在 web 界面添加多 tomcat 端口监控选项

看到 cacti 服务页面有 Add 按钮,可以一步步添加模板,所以首先在界面上手动添加另外一个 tomcat 9500 模板,大概步骤如下所示:

1.1 先建 Data Input Source 

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

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

1.2 建立 Data Tempate

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

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

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

【PS】:这里有 14 个 Data Source Item,手动一个个确实比较麻烦,而且一个端口需要建一个,一个端口 N 个服务,一个服务 14 个端口,如果都是手工一个个添加过来,那就到猴年马月了,在添加的过程中,还要注意一些下拉选项,很消耗时间和精力。

1.3 建立 Data Source

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现
​点击 Create 按钮,下一步:

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

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

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

 

1.4 建立 Graph Template

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

 

1.5 建立 Graph Tempate

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

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

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

(2) 点击 Graph Item Inputs标题栏后面的 Add 按钮,参考已经有的 Tomcat – Connection Rate 来添加数据来源选项。

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

1.6 进去 Graph Management 界面,创建 Graph 图,如下所示:

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

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

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

 

然后,去 Graphs 界面,查看创建的 rate 图,如下 9500 端口的数据出来了:

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

这种办法虽然笨拙耗时,但是总算一步步来,还是可以添加完成的。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-06/103620p2.htm

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

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

想要弄亲自构建另外一个 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 值换成新的,是否就可以加载成另外一个新的 tomcat 端口的 xml 模板呢?试试吧。

 

2.3 开始构建新的 hash 值

思路:先找出原有的 xml 模板中的所有 hash 值,将后四位截取换成 tomcat 端口号 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 位替换成 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 Input Methods 里面看到新添加上的 9500 Tomcat Status 选项,

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

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

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

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

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

 

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

因为一台 web 应用服务器上面安装了多台 tomcat,有多个端口,比如默认的 8080,还有后续追加的 9100,9300,9500 等等。一个 cacti_host_template_tomcat_server.xml 模板只能指定监控一个 tomcat 服务端口。

因此如果想要监控一台 web 服务器上的多个 tomcat 服务器,那么就必须另外想办法,按照一个 host 上面一个模板监控一个 tomcat 服务来说的话,要想在一个 host 上面监控多个 tomcat 服务就需要构建多个模板 xml 文件。目前想到 2 种方法:

(1),在 cacti 的 web 页面上一步步点击按钮操作添加新的 tomcat 端口监控选项。

(2),构建一个新的 xml 模板文件,重新加载进去。

准备工作:

Cacti 监控 Tomcat 服务器实现过程:http://www.linuxidc.com/Linux/2014-06/102897.htm

Cacti 使用安装详解: http://www.linuxidc.com/Linux/2014-05/102361.htm

 

相关阅读

RHEL6.4 中使用 Cacti+Spine 监控主机实现发送邮件报警 http://www.linuxidc.com/Linux/2013-11/92795.htm

RHEL6.4 中使用 Cacti+Spine 监控远程主机 http://www.linuxidc.com/Linux/2013-11/92796.htm

CentOS 5.5 完整安装 Cacti+Spine http://www.linuxidc.com/Linux/2011-12/49701.htm

CentOS 6 下 Cacti 搭建文档 http://www.linuxidc.com/Linux/2013-06/86595.htm

RHEL5.9 下 Cacti 监控部署详解 http://www.linuxidc.com/Linux/2013-06/85427.htm

CentOS 6.3 下 Cacti 安装详解 http://www.linuxidc.com/Linux/2013-05/84279.htm

CentOS Linux 下快速安装配置 Cacti 中文版 http://www.linuxidc.com/Linux/2013-03/81627.htm

1 人工在 web 界面添加多 tomcat 端口监控选项

看到 cacti 服务页面有 Add 按钮,可以一步步添加模板,所以首先在界面上手动添加另外一个 tomcat 9500 模板,大概步骤如下所示:

1.1 先建 Data Input Source 

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

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

1.2 建立 Data Tempate

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

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

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

【PS】:这里有 14 个 Data Source Item,手动一个个确实比较麻烦,而且一个端口需要建一个,一个端口 N 个服务,一个服务 14 个端口,如果都是手工一个个添加过来,那就到猴年马月了,在添加的过程中,还要注意一些下拉选项,很消耗时间和精力。

1.3 建立 Data Source

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现
​点击 Create 按钮,下一步:

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

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

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

 

1.4 建立 Graph Template

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

 

1.5 建立 Graph Tempate

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

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

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

(2) 点击 Graph Item Inputs标题栏后面的 Add 按钮,参考已经有的 Tomcat – Connection Rate 来添加数据来源选项。

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

1.6 进去 Graph Management 界面,创建 Graph 图,如下所示:

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

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

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

 

然后,去 Graphs 界面,查看创建的 rate 图,如下 9500 端口的数据出来了:

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

这种办法虽然笨拙耗时,但是总算一步步来,还是可以添加完成的。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-06/103620p2.htm

2.5,报错处理

有报错如下:

RRDTool Says:

ERROR: Could not parse line ‘GPRINT::MAX:Maximum\:%8.2lf %s\n’

进去 –>Graph Templates

> 9500 Tomcat – Connection Rate –> Data Source [error_count] –> Item #4: GPRINT (MAX) 打勾选上,如下所示:

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

 

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

Cacti 监控一台 Web 服务器上多个 Tomcat 端口的实现

 

最后在进入后台 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 值,那么加载后就是新的监控选项。

假如你现在一个 web 服务器上又添加了一个 9300 的 tomcat 服务,你只需要把我分享的 9500 端口的 xml 中的 hash 末尾 9500 替换成 9300,那么就又是一个新的 xml 模板。

 

以此类推,现在喜欢在一个 linux 服务器上搭建 mysql 多实例,那么多实例 mysql 如何在 cacti 下监控,也可以用本文中类似的办法构建新的 mysql 的多端口模板 xml 文件来重新加载实现。

Cacti 的详细介绍:请点这里
Cacti 的下载地址:请点这里

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计8699字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中