前言:
為了更好的使用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”button,為主機加入進監控圖,例如以下所看到的:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcukzMnxmM3cjN5QjMxQTMfdTO1AzMyYjMvwVNvwFMxQTMwIzLcRnbl1GajFGd0F2LcRXZu5iY1BHdp5yZvxmYvw1LcpDc0RHaiojIsJye.png)
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/