早在去年已經出現MongoDB和Redis的Cacti模板,使用它,你可以對你的MongoDB和Redis服務進行流量監控。cacti的模板一直在更新,若企業已經用到nosql這種非關係數據庫如mongodb和redis。可按照以下教程,對mongodb和redis進行監控。
該模板可以監控以下資源:
mongodb:
redis:
一、下載模板:
wget http://mysql-cacti-templates.googlecode.com/files/better-cacti-templates-1.1.8.tar.gz
二、配置ssh公私鑰無需密碼登錄:
因爲cacti監控mongodb是需要登錄到mongodb的服務端運行mongo的狀態獲取命令,所以需要ssh連接登錄。
所以需要配置非交互式帳號密碼登錄。這裏採用公私鑰模式。
先在監控服務器生成一對公私鑰。
- ssh-keygen ##如果是root用戶,生成的默認目錄爲/root/.ssh下2個文件id_rsa(公鑰) id_rsa.pub(私鑰)
- cd /root/.ssh/ && chmod 600 id_rsa* 把這2個文件修改權限,爲600
- ssh-copy-id -i /root/.ssh/id_rsa [email protected] #加被監控節點公私鑰認證
把id_rsa.pub複製出來,放到被監控機器上,然後公鑰的內容追加到需要被監控的主機也就是mongodb和redis的服務端。追加到.ssh/authorized_keys
然後用ssh連接你所安裝mongodb或者redis的服務端,如果不需輸密碼連接上。則正常。下面就可以開始添加監控文件了。
三、配置監控腳本:
- mongodb或redis的監控所需到的是你下載目錄中的better-cacti-templates-1.1.8\scripts下的
- ss_get_by_ssh.php 這個腳本 這個腳本需要放在cacti的服務端。
- 如果你cacti是裝到/var/www/html/cacti/目錄下。
- 把該文件放在其下面的scripts目錄下。別忘了看下權限。要有執行權限。
然後修改該文件。主要修改一下選項,大概在40行。
- # ============================================================================
- $ssh_user = 'root'; # SSH username
- $ssh_port = 22; # SSH port
- $ssh_iden = '-i /root/.ssh/id_rsa'; # SSH identity
- ##修改根據你的配置,你的ssh連接用戶,還有認證私鑰的位置。
大該在50行,還可以修改其默認的去探測的端口(如果redis不是正常默認端口啓動需要修改這些)。
- $memcache_port = 11211; # Which port memcached listens on
- $redis_port = 6379; # Which port redis listens on
如果是mongodb不是正常端口啓動,則需要這樣修改。找到以下字段,添加紅色字段,這裏注意mongo這個命令一定要找對。
- function mongodb_cmdline ( $options ) {
- return “echo \”db._adminCommand({serverStatus:1, repl:1})\” | /usr/local/mongo/mongodb/bin/mongo –port 10000″;
- }
配置完後保存退出。
可以先用測試命令測一下。語法如下:
- php /var/www/html/scripts/ss_get_by_ssh.php --type mongodb --host 192.168.200.1 --items c,de,df,dg,dh,di,dj,dk,dl,dm,dn,do,dp,dq,dr,ds,dt,du
如果有數據輸出。則表示正常。
四、在cacti裏添加mongodb和redis模板:
4.1 模板導入
模板目錄爲better-cacti-templates-1.1.8\templates
4.2 導入後對被監控機添加模板:
4.3 添加後爲其繪圖:
五:實際效果測試:
此文凝聚筆者不少心血請尊重筆者勞動,轉載請註明出處。
http://freeze.blog.51cto.com/
喜歡linux,或者有問題還可以來QQ羣89342115交流。