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客...