共计 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
1.2 建立 Data Tempate
在 Data Input Method 一项选择 step 1 建立的 Tomcat 9500 Status
在这里要特别注意 Data Source Type 的选择,是 Count 还是 GAUGE,不要选错,选错了,就是 NAN 值,图上出不来数据。
【PS】:这里有 14 个 Data Source Item,手动一个个确实比较麻烦,而且一个端口需要建一个,一个端口 N 个服务,一个服务 14 个端口,如果都是手工一个个添加过来,那就到猴年马月了,在添加的过程中,还要注意一些下拉选项,很消耗时间和精力。
1.3 建立 Data Source
点击 Create 按钮,下一步:
看到有提示准备生成 <path_rra>/web-9_bytes_received_568.rrd 的 rrd 绘图文件,点击 Save 按钮保存,看到已经建立好了:
1.4 建立 Graph Template
1.5 建立 Graph Tempate
之后,还需要建立显示图画颜色等的 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 图,如下所示:
点击 Create 之后,进去选择好 Graph Item Fields,打开 Debug Mode 模式,就可以看到 RRDTool Commands 以及出来的 debug 图片数据,如下所示:
然后,去 Graphs 界面,查看创建的 rate 图,如下 9500 端口的数据出来了:
这种办法虽然笨拙耗时,但是总算一步步来,还是可以添加完成的。
更多详情见请继续阅读下一页的精彩内容: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 选项,
记得点击 9500 超链接进去,把 Input String 换成 9500 端口的访问连接,这样这个 9500 端口监控所获取的所有数据都是从 9500 端口的 tomcat 服务器上而来,如下图所示:
在 Console –> Templates –> Data Templates/Graph Templates 上面也可以看到新添加上的 9500 Tomcat Status 选项,如下图所示:
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
1.2 建立 Data Tempate
在 Data Input Method 一项选择 step 1 建立的 Tomcat 9500 Status
在这里要特别注意 Data Source Type 的选择,是 Count 还是 GAUGE,不要选错,选错了,就是 NAN 值,图上出不来数据。
【PS】:这里有 14 个 Data Source Item,手动一个个确实比较麻烦,而且一个端口需要建一个,一个端口 N 个服务,一个服务 14 个端口,如果都是手工一个个添加过来,那就到猴年马月了,在添加的过程中,还要注意一些下拉选项,很消耗时间和精力。
1.3 建立 Data Source
点击 Create 按钮,下一步:
看到有提示准备生成 <path_rra>/web-9_bytes_received_568.rrd 的 rrd 绘图文件,点击 Save 按钮保存,看到已经建立好了:
1.4 建立 Graph Template
1.5 建立 Graph Tempate
之后,还需要建立显示图画颜色等的 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 图,如下所示:
点击 Create 之后,进去选择好 Graph Item Fields,打开 Debug Mode 模式,就可以看到 RRDTool Commands 以及出来的 debug 图片数据,如下所示:
然后,去 Graphs 界面,查看创建的 rate 图,如下 9500 端口的数据出来了:
这种办法虽然笨拙耗时,但是总算一步步来,还是可以添加完成的。
更多详情见请继续阅读下一页的精彩内容: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) 打勾选上,如下所示:
去 Graphs 窗口查看效果,在同一个 web- 9 服务器上,一个基本端口 8080 一个 9500 端口的图像都出来了,如下所示:
最后在进入后台 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 的下载地址:请点这里