zabbix如何監控mongodb

2021-12-29 21:53:59 字數 2564 閱讀 4545

mongodb如今越來越火,要做好對mongodb的監控就需要從它的安裝配置,到簡單的command語句使用,再到對它執行機制以及狀態獲取方法的掌握。

mongodb有三種基本的狀態獲取方式:

1.mongostat

2.開啟28017的監聽埠,curl

3.進入mongo執行db.serverstatus命令

我用的是第三種方法:

echo"db.serverstatus()"|/usr/local/mongodb/bin/mongo192.168.1.123:27017/foo--quiet

,"activeclients":

},"mem":,

"connections":,

"extra_info":,

"indexcounters":

},"backgroundflushing":,

"cursors":,

"network":,

"opcounters":,

"asserts":,

"writebacksqueued":false,--是否有從mongos執行的retry操作

"dur":

},"ok":1--serverstatus是否返回正確

}以上,我們把所需要的引數抽取出來就可以做成監控項了。

先定義鍵值:

#mongodb.conf

userparameter=mongodb_port_discovery,/usr/local/zabbix/exec/mongo_discovery.py

userparameter=mongodb_stats[*],/usr/local/zabbix/exec/mongo_status.sh$1$2$3$4$5

寫mongo_discovery.py指令碼(用於埠發現)

#!/usr/bin/envpython

#-*-coding:utf-8-*-

importjson

importsubprocess

json_data=

net_cmd='''sudonetstat-nlpt|awk'/mongo/'

'''p=subprocess.popen(net_cmd,shell=true,stdout=subprocess.pipe)

net_result=p.stdout.readlines()

forserverinnet_result:

dic_content=":server.split(':')[1].strip(),

"":server.split(':')[0].strip()

}json_data['data'].append(dic_content)

result=json.dumps(json_data,sort_keys=true,indent=4)

printresult

寫mongo_status.sh狀態檢測指令碼

#!/bin/bash

##mongo_status.sh##

##wuhf##

case$#in

3)output=$(/bin/echo"db.serverstatus().$3"|/usr/local/mongodb/bin/mongo$1:$2/foo--quiet)

;;4)

output=$(/bin/echo"db.serverstatus().$3.$4"|/usr/local/mongodb/bin/mongo$1:$2/foo--quiet)

;;5)

output=$(/bin/echo"db.serverstatus().$3.$4.$5"|/usr/local/mongodb/bin/mongo$1:$2/foo--quiet)

;;esac

if[["$output"=~"numberlong"]];then

echo$output|sed-n's/numberlong(//p'|sed-n's/)//p'

else

echo$output

fi許可權設定

chmod755/usr/local/zabbix/exec/*

chownzabbix.zabbix/usr/local/zabbix/exec/*

chownzabbix.zabbix/usr/local/zabbix/etc/zabbix_agentd.conf.d/*

echo"zabbixall=(root)nopasswd:all">>/etc/sudoers

sed-i's/^defaults.*.requiretty/#defaultsrequiretty/'/etc/sudoers

做mongodb模板

定義自動發現規則

定義監控項

最後新增觸發器和圖就完成了

注意:在mongodb.conf配置檔案裡定義了鍵值對應關係後要重啟zabbix服務才能生效

如何使用zabbix初級監控

如何用zabbix監控 初步使用 前提 必須啟動mysql 和zabbix目錄下的sbin中的zabbix agentd zabbix server,還有nginx以及php 否則會報錯,因為zabbix執行需要php環境,nginx是 伺服器裡面包含了zabbix。上述所提到的軟體,當你要使用za...

zabbix監控部署

一 環境,監控伺服器和被監控伺服器都關閉防火牆和selinux 二 監控伺服器安裝及配置 2 安裝好資料庫後啟動systemctl start mariadb,建立資料庫create database zabbix character set utf8 collate utf8 bin 建立賬戶並授...

Zabbix 監控日誌

監控伺服器指定日誌檔案,實現過濾日誌關鍵字報警。確保在被監控主機的配置檔案中 hostname 引數與前端頁面中的主機名匹配 serveractive 引數中指向zabbix伺服器ip 1 建立監控項 配置 主機 監控項 建立監控項 2 填寫監控項資訊 名稱 日誌czd.log 型別 zabbix客...