大概記一下流程。
就拿擷取 bbs 站上人數來當作範例好了。一般 Maple 3 itoc 版本的 bbs 都會在 login 畫面 show 出目前站上人數,因此我們只要寫個 script 去抓這個數字,再依照 cacti 要吃的參數格式輸出就好。
1. 首先建立擷取資料的 script
以下是我用 php 寫的 script:(當然你可以用 python、ruby、shell script 都可以~)
(在 Debian 下,是存在 cacti 目錄底下的 scripts:/usr/share/cacti/site/scripts)
<?php $bbs_ip = 'xxx.xxx.xxx.xxx'; $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_connect($socket, $bbs_ip, 23); socket_recv($socket, $buffer, 1024, 0); socket_recv($socket, $buffer, 1024, 0); socket_recv($socket, $buffer, 1024, 0); socket_recv($socket, $buffer, 1024, 0); socket_recv($socket, $buffer, 1024, 0); socket_recv($socket, $buffer, 1024, 0); $buffer = iconv("big5","utf8",$buffer); preg_match('/\[([0-9]+)\]/', $buffer, $matches); printf('user:%s', $matches[1]); exit; ?>
filed1:value1 field2:value2 ...
2. 接著到 cacti [console]->[Collection Methods]->[Data Input Methods]
按右上角的[Add],
Name:Linux - BBS - Online Users(隨便你輸入) Input Type:Script/Command(雖然他有PHP專用的,但是沒差,用這個通用的就好) Input String:php <path_cacti>/scripts/bbs.php(就是你 script 的位置)之後按[save]儲存。
3. 儲存之後在點進去剛剛的 [Linux - BBS - Online Users],在 [Output Fields] 上點下 [Add]
Field [Output]:user(對照到你 script 的 filed1) Friendly Name: BBS Online Users(取一個比較好記的描述) Update RRD File:就打勾吧!
4. 接著到 [console]->[Templates]->[Data Templates],按下右上角的[Add],
[Data Templates] Name:Linux - BBS - Online Users(隨便你輸入) [Data Source] Name:Linux - BBS - Online Users(隨便你輸入) Data Input Method:Linux - BBS - Online Users(請選擇你剛剛建立的 Data Input Method) Associated RRA's:全選 Step:300(間隔秒數,五分鐘) Data Source Active:打勾 [Data Source Item] Internal Data Source Name:Online_Users(隨便你輸入) Minimum Value:0(先讓他預設是0) Maximum Value:0(先讓他預設是0) Data Source Type:GAUGE Heartbeat:600
5. 接著到 [console]->[Management]->[Data Source],按下右上角的[Add],
Selected Data Template:Linux - BBS - Online Users(選擇你剛剛建立的 Data Template) Host:(選要繪這個圖的主機)
6. 到 [console]->[Templates]->[Graph Templates],選擇 [Unix - Logged in Users] 後,按右下方的選單調到 [Duplicate] 然後按 [go]。
(以 Unix - Logged in Users 的圖為範本來建立新的圖)
Title Format:Linux - BBS - Online Users(請輸入圖的title)複製完畢後會跳進設定畫面
[Graph Template Items] 只留下 Item #1,把 Item #2 到 Item #4 砍掉。 [Graph Item Inputs] 基本上不用動,不過也可以點進去改顯示名稱 [Template] 就是改顯示名稱 [Graph Template] 顯示名稱可以改一改,以及下面的 [Upper Limit] 可以改成 0,讓他自動設定上限。
7. 接著在 [console]->[Management]->[Graph Management] 按下右上角的[Add],
Selected Graph Template:Linux - BBS - Online Users(選擇你剛剛建立的 Data Template) Host:(選要繪這個圖的主機)
8. 建立後會多出兩個選項
Legend Color:(隨便你改) Data Source:Linux - BBS - Online Users(就選剛剛建立的 Data Source)
9. 到這裡論上應該就建立完成了,如果圖片還是沒有出來的話,表示 rra 檔案可能有問題,
請先到 [console]->[Graph Management] 點進你剛剛建立的 Graph,然後開啟右上角的 [*Turn On Graph Debug Mode.],如果 RRDTool Says: 不是 ok,而是檔案不存在的話,可以到 [console]->[Management]->[Data Source],點進剛剛建立的 Data Source 並且開啟右上角的 [*Turn On Graph Debug Mode.],複製 Data Source Debug 的指令,並且進到系統直接複製貼上來建立這個檔案。
--
參考網站:http://blog.xuite.net/jyoutw/xtech/39869008?ref=rel
我看過另二個人寫的, 就你寫的言簡意賅而且還多了 [Duplicate] 作法, 不熟的人走到[Graph Templates]就差不多昏了.
回覆刪除(隨便你輸入)這句話有幫到我, 不然真不知要不要跟隨之前名單.
給你一個贊!
XD 原來有人有看我的網誌,對不起我是怠惰管理者同盟的一員
刪除能幫上您是我的榮幸~