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\n'
進去-->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
轉載于:https://www.cnblogs.com/zsychanpin/p/6722025.html
總結
以上是生活随笔為你收集整理的Cacti监控一台Webserver上多个Tomcatport的实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用alembic进行openstack
- 下一篇: 安装和卸载C#写的 windows se