[Cacti] mongodb效能監控實戰

來源:互聯網
上載者:User

標籤:style   blog   http   color   io   os   使用   ar   for   



 前言:

         為了更好的使用mongodb,需要監控出mongodb的一些基礎使用方式,比如Flush數、串連數、記憶體使用量率、Index操作,Slave延遲等等,這些可以通過配置cacti監控mongodb的模板來完成。
 

1,在cacti介面匯入模板

在電腦本地,下載此tgz包:http://mysql-cacti-templates.googlecode.com/files/better-cacti-templates-1.1.8.tar.gz

解壓到任意目錄,然後開啟cacti的web介面,選擇"Import/Export" — "Improt Templates",點擊"選擇檔案",將cacti_host_template_x_mongodb_server_ht_0.8.6i-sver1.1.8.xml,匯入到cacti裡,這樣,cacti的圖形模板裡就可以選擇使用mongodb的圖形項目了。


2,在cacti伺服器端配置監控指令碼

[[email protected] soft]#  wget http://mysql-cacti-templates.googlecode.com/files/better-cacti-templates-1.1.8.tar.gz

[[email protected] soft]# tar zxvf better-cacti-templates-1.1.8.tar.gz

[[email protected] soft]# cd better-cacti-templates-1.1.8

[[email protected] better-cacti-templates-1.1.8]#  cp scripts/ss_get_by_ssh.php /var/www/html/cacti/scripts/ss_get_by_ssh.php

[[email protected] better-cacti-templates-1.1.8]# chown –R apache /var/www/html/cacti/scripts/ss_get_by_ssh.php

 

修改監控指令碼ss_get_by_ssh.php

[[email protected] better-cacti-templates-1.1.8]# vim /var/www/html/cacti/scripts/ss_get_by_ssh.php

$ssh_user   = ‘root‘;                          # SSH username

$ssh_port   = 22;                               # SSH port

$ssh_iden   = ‘-i /var/www/html/cacti/id_rsa‘;  # SSH identity

 

這裡mongodb由於使用了30000連接埠不是預設連接埠27018,所以還需要修改連接埠配置

  function mongodb_cmdline ( $options ) {

  return “echo \”db._adminCommand({serverStatus:1, repl:2})\” | /usr/local/mongo/mongodb/bin/mongo --port 30000″;

  }

之後,重啟cacti服務

[[email protected] templates]# service httpd restart

停止 httpd:                                               [確定]

正在啟動 httpd:                                           [確定]

[[email protected] templates]#

 

3,使用SSH的方式登入監控

(1):建立SSH遠曾登入帳號

使用ssh-keygen命令產生秘鑰,斷行符號後輸入key的路徑/var/www/html/cacti/id_rsa,然後2個斷行符號,密碼為空白,如下:

[[email protected] squid-2 soft]# ssh-keygen

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa): /var/www/html/cacti/id_rsa

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /var/www/html/cacti/id_rsa.

Your public key has been saved in /var/www/html/cacti/id_rsa.pub.

The key fingerprint is:

73:8e:77:45:a0:54:ef:c8:a4:2d:62:50:8d:da:d8:e4 [email protected]

The key‘s randomart image is:

+--[ RSA 2048]----+

|        .o..o    |

|       .o... o   |

|      .B  . . o  |

|      o.E  = +   |

|        S + + o  |

|       . * . .   |

|        . o .    |

|         . .     |

|                 |

+-----------------+

 

把key檔案許可權改成cacti的使用使用者可以訪問的許可權:

[[email protected] squid-2 soft]# chown -R cacti_user /var/www/html/cacti/id_rsa*

[[email protected] squid-2 soft]#

將key加入到遠程mongodb伺服器上,也可在遠程伺服器建立一個cacti_user使用者,將key加上到cactiuser目錄下

[[email protected] squid-2 soft]# ssh-copy-id -i /var/www/html/cacti/id_rsa [email protected]

 

(2):配置各種參數

  修改ss_get_by_ssh.php,設定好私密金鑰檔案路徑:

  $ssh_user   = ‘root‘;                          # SSH username

  $ssh_port   = 22;                               # SSH port

  $ssh_iden   = ‘-i /var/www/html/cacti/id_rsa‘;  # SSH identity

  如果mongodb不使用預設連接埠,需要修改下面一段,把連接埠加上即可:

  function mongodb_cmdline ( $options ) {

  return “echo \”db._adminCommand({serverStatus:1, repl:2})\” | /usr/local/mongo/mongodb/bin/mongo --port 30000″;

  }


(3)檢測監控指令碼

[[email protected] templates]# php /var/www/html/cacti/scripts/ss_get_by_ssh.php  --type mongodb --host 10.254.3.62 --items dc,de,df,dg,dh,di,dj,dk,dl,dm,dn,do,dp,dq,dr,ds,dt,du

dc:57 de:0 df:401604608 dg:-1 dh:-1 di:-1 dj:-1 dk:-1 dl:-1 dm:-1 dn:-1 do:46268320 dp:5245 dq:0 dr:6 ds:52 dt:46697435 du:-1[[email protected] templates]#

[[email protected] templates]#

看到有資料了,檢測OK。


4,使用Mongodb遠端連線的方式來監控

4.1. 修改mongodb_cmdline函數,通過授權帳號密碼、指定連接埠進行登入。

function mongodb_cmdline ( $options ) {

   // return "echo \"db._adminCommand({serverStatus:1, repl:2})\" | mongo";

   return "echo \"db._adminCommand({serverStatus:1, repl:2})\" | /usr/local/mongodb/bin/mongo admin --port $options[port2] --username pluser --password !378zm13yt";

}

 

4.2. 修改get_command_result函數,採用遠程登入的方式,而非預設SSH的方式。(資料庫本來就可以遠端連線), 大概在558行

// $final_cmd = $use_ssh ? "$ssh ‘$cmd‘" : $cmd;

$final_cmd = "$cmd --host $options[host]";

 

4.3 修改Data Input Methods

         選擇“Console”,在左側功能表列選擇“Data Input Methonds”,再選擇mongodb監控項串連“X Get Mongodb Stats…”,在中間的“Input String”後面的輸入框裡面,帶上參數符合,如下所示:

<path_php_binary> -q <path_cacti>/scripts/ss_get_by_ssh.php --host <hostname> --type mongodb –port2 30000 --username pluser --password !378zm13yt --items dk,dl,dm,dn


4.4. 執行指令碼進行測試,結果如下:

[[email protected] ~]# php ss_get_by_ssh.php --type mongodb --host 10.254.3.62 --port2 30000 --items jc,jd

PHP Parse error:  syntax error, unexpected T_STRING in /var/www/html/cacti/scripts/ss_get_by_ssh.php on line 1265

[[email protected] ~]#

指令碼有全形亂碼,去掉,再執行指令碼進行測試,結果如下:

[@cacti scripts]# php ss_get_by_ssh.php --type mongodb --host 10.254.3.62 --port2 30000 --items jc,jd

jc:4 jd:5497683968

 

5,產生監控圖

在介面,選擇“Device”,選擇mongodb伺服器串連“3.X2_mongodb”,再選擇右上方的“Create Graphs for this Host”,在“Graph Types”後的下拉框裡面選擇Mongodb服務項,就會看到列表中有mongodb監控服務,然後打勾選上,點擊右下角的“Create”按鈕,為主機添加進監控圖,如下所示:


PS:在添加Device裝置的時候,如果勾選了MongoDB的模板,需要指定Port2參數。


  
6,查看mongodb監控映像
    添加完畢之後,會有一下系列監控圖,如下所示:


(1)MongoDB Background Flushes GT


 

(2)MongoDB Commands GT

   

 

(3)MongoDB Connections GT

 

(4)MongoDB Index Ops GT

 

(5)MongoDB Memory GT

 

(6) MongoDB Slave Lag GT

?

 

----------------------------------------------------------------------------------------------------------------

<著作權,文章允許轉載,但必須以連結方式註明源地址,否則追究法律責任!>
?本文章地址原始地址:http://blog.csdn.net/mchdba/article/details/39805039

----------------------------------------------------------------------------------------------------------------

參考文章地址:
http://blog.chinaunix.net/uid-21505614-id-3186756.html

http://c20031776.blog.163.com/blog/static/68471625201341424117630/


 

[Cacti] mongodb效能監控實戰

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.