自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

先看一下效果圖

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

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

 

 

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

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

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

  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) 

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

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

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

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

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

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

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

  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}' 

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

模板應用完如果沒問題就可以在zabbix的篩選中把mongo集群的數據匯在一個網頁上進行查看。

責任編輯:武曉燕 來源: 開源博客
相關推薦

2014-05-21 14:37:27

Zabbix監(jiān)控MySQL

2014-04-09 11:43:54

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

2023-09-06 18:16:14

自動發(fā)現Zabbix網絡

2015-04-01 11:36:25

SQL Server索SQL Server調數據庫索引

2011-01-20 08:35:23

SQL Server

2017-09-22 09:50:27

數據庫AWR報告性能

2011-03-30 08:56:42

Zabbix數據庫

2010-05-04 11:58:38

Oracle數據庫

2010-04-14 09:54:56

Oracle數據庫

2011-03-30 08:56:44

Zabbix數據庫

2011-04-19 09:41:22

數據庫

2020-12-10 09:41:15

ZabbixOracle數據庫

2011-03-30 08:56:43

Zabbix數據庫

2011-06-27 13:19:36

OMF托管文件ASM

2011-03-17 11:38:35

2021-02-05 10:58:28

數據存儲架構

2011-03-24 10:59:08

Nagios監(jiān)控數據庫

2020-12-22 10:02:53

ZabbixMySQL數據庫

2021-09-30 08:54:58

prometheus監(jiān)控遠端服務

2021-07-13 07:12:04

Zabbix監(jiān)控網絡設備
點贊
收藏

51CTO技術棧公眾號