偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何使用Zabbix的自動發(fā)現(xiàn)來監(jiān)控mongo數(shù)據(jù)庫

運維 系統(tǒng)運維
監(jiān)控mongo寫個模板其實挺快的,如果公司每個mongo使用的端口都一致的話,就可直接建立一套模板,然后這個模板鏈接到各個服務(wù)器上即可。但如果公司使用mongo的端口如果不一致的話,那建議使用zabbix的自動發(fā)現(xiàn)的功能,自動發(fā)現(xiàn)mongo監(jiān)聽的端口,并對它進行相關(guān)數(shù)據(jù)的收集。

監(jiān)控mongo寫個模板其實挺快的,如果公司每個mongo使用的端口都一致的話,就可直接建立一套模板,然后這個模板鏈接到各個服務(wù)器上即可。但如果公司使用mongo的端口如果不一致的話,那建議使用zabbix的自動發(fā)現(xiàn)的功能,自動發(fā)現(xiàn)mongo監(jiān)聽的端口,并對它進行相關(guān)數(shù)據(jù)的收集。

先看一下效果圖

此監(jiān)控圖是zabbix的篩選功能可能把相關(guān)的圖整合到一個頁面里面去。

具體的自動發(fā)現(xiàn)實現(xiàn)如下:

 

 

探索規(guī)則配置如上,機器上的zabbix agent配置如下:

UserParameter=mongo.discover,python /usr/local/zabbix/discover_mongo.py

其中/usr/local/zabbix/discover_mongo.py為自動發(fā)現(xiàn)的腳本,腳本內(nèi)容如下:

  1. #coding:utf-8 
  2. import simplejson as json 
  3. import commands 
  4.  
  5. (status, output) = commands.getstatusoutput('''sudo netstat -tlnp|grep 'mongod'|awk '{print $4}'|awk -F':' '{print $(NF)}'|sort -u|grep -v "^28"'''
  6. outputs = output.split('\n'
  7. ports = [] 
  8. for port in  outputs: 
  9.     ports += [{'{#MONGOPORT}': port}] 
  10.  
  11. print json.dumps({'data':ports},sort_keys=True,indent=4) 

使用系統(tǒng)命令netstat把監(jiān)聽的端口篩選出來,然后以json的格式進行輸出。定義到此就可以自動發(fā)現(xiàn)zabbix監(jiān)聽的端口。

注意:netstat一般zabbix用戶沒有權(quán)限,需要visudo進行對應(yīng)的設(shè)置,此腳本可能得針對自己的環(huán)境進行相對的調(diào)整。

探索完端口后,zabbix server就需要以端口為其中一個參數(shù)向zabbix agent取數(shù)據(jù),其中項目原型配置如下:

如果返回的{#MONGOPORT}有多個的話,那監(jiān)控項目就乘以幾。

其中mongo.status的定義如下(此定義還是zabbix agent下):

UserParameter=mongo.status[*],sh /usr/local/zabbix/check_mongo.sh -p $1 -k $2 -K $3

使用一個腳本傳入?yún)?shù)來獲取mongo的一些數(shù)據(jù)收集,后續(xù)可直接擴展此腳本(-p代表端口),mongo的serverStatus有多個參數(shù),采集的就用到opcounters等,-k和-K能具體獲取其數(shù)值。其中腳本如下:

  1. #!/bin/sh 
  2. while getopts "p:k:K:" opt 
  3. do 
  4.         case $opt in 
  5.                 p ) mongo_port=$OPTARG;; 
  6.                 k ) key1=$OPTARG;; 
  7.                 K ) key2=$OPTARG;; 
  8.                 ? ) 
  9.                 echo 'parameter is wrong!' 
  10.                 exit 1;; 
  11.         esac 
  12. done 
  13.  
  14. if [ ! "${mongo_port}" ] || [ ! "${key1}" ] || [ ! "${key2}" ];then 
  15.         echo "parameter is null"         
  16.         exit 1 
  17. fi 
  18.  
  19. echo "db.serverStatus().${key1}"|mongo --port=${mongo_port}|sed 's/,/\r\n/g'|grep "${key2}" |awk -F':|,|}' '{print $2}' 

部署完一個模板,把模板關(guān)聯(lián)到mongo的機器,就能收集相關(guān)的操作信息。在模板上再添加一個圖形原型,如下:

模板應(yīng)用完如果沒問題就可以在zabbix的篩選中把mongo集群的數(shù)據(jù)匯在一個網(wǎng)頁上進行查看。

責(zé)任編輯:武曉燕 來源: 開源博客
相關(guān)推薦

2014-05-21 14:37:27

Zabbix監(jiān)控MySQL

2014-04-09 11:43:54

Zabbix監(jiān)控Mysql數(shù)據(jù)庫

2023-09-06 18:16:14

自動發(fā)現(xiàn)Zabbix網(wǎng)絡(luò)

2015-04-01 11:36:25

SQL Server索SQL Server調(diào)數(shù)據(jù)庫索引

2011-01-20 08:35:23

SQL Server

2017-09-22 09:50:27

數(shù)據(jù)庫AWR報告性能

2010-04-14 09:54:56

Oracle數(shù)據(jù)庫

2010-05-04 11:58:38

Oracle數(shù)據(jù)庫

2011-03-30 08:56:44

Zabbix數(shù)據(jù)庫

2011-03-30 08:56:42

Zabbix數(shù)據(jù)庫

2011-04-19 09:41:22

數(shù)據(jù)庫

2011-03-30 08:56:43

Zabbix數(shù)據(jù)庫

2011-06-27 13:19:36

OMF托管文件ASM

2020-12-10 09:41:15

ZabbixOracle數(shù)據(jù)庫

2021-09-30 08:54:58

prometheus監(jiān)控遠(yuǎn)端服務(wù)

2011-03-17 11:38:35

2011-03-24 10:59:08

Nagios監(jiān)控數(shù)據(jù)庫

2021-02-05 10:58:28

數(shù)據(jù)存儲架構(gòu)

2021-07-13 07:12:04

Zabbix監(jiān)控網(wǎng)絡(luò)設(shè)備

2020-12-22 10:02:53

ZabbixMySQL數(shù)據(jù)庫
點贊
收藏

51CTO技術(shù)棧公眾號